본문 바로가기
컴퓨터학부 4학년/인턴(6개월)

20200129 - 인턴 일지(보안)

by infra_kim 2020. 1. 29.

회사에서 인턴을 하면서 학습한 정보보안 관련 용어 또는 느낀 점을 기록

하루에 용어 3개씩 포스팅할 예정이지만 상황에 따라 달라질 수도 있습니다!

출처

https://12bme.tistory.com/80 [정보보안] SSL(Secure Socket Layer) 이란
http://www.tipssoft.com/bulletin/board.php?bo_table=FAQ&wr_id=529 OSI 7 Layer 사진

https://hanjungv.github.io/2017-11-07-1_CS_SSL/ SSL Handshake 사진

 

1. 보안 소켓 계층(SSL, Secure Socket Layer)

넷스케이프(Netscape) 사에서 개발한 인터넷 보안 프로토콜로, Web Server와 Browser 통신에 사용되는 http 프로토콜의 보안상 취약점을 보완하기 위해 만들었다.

 

※ SSL을 관리하는 기관이 Netscape에서 표준화 기구인 IETF로 변경되면서 TLS(Transport Layer Sceurity Protocol)라는 이름으로 바뀌었습니다. TLS 1.0은 SSL 3.0을 계승하고 있습니다. 따라서 SSL이랑 TLS랑 같은 이름이라고 생각해도 크게 문제가 없을 것 같습니다.

 

- SSL은 Certificate Authority(CA)라 불리는 서드 파티로부터 서버(Server)와 클라이언트(Client)의 인증을 하는데 사용된다.

- SSL은 OSI 6 Layer에 속한 계층으로 동일 Layer로는 ASCII가 있다.

 

SSL Architecture 구조

 

단순 프로토콜인 HTTP 프로토콜에 비대칭키 암호화를 기반으로 통신을 하기 위한 SSL 프로토콜의 아키텍처이다.

 

HTTP + 비대칭키 암호화 알고리즘

그러면 비대칭키에 대해 간략하게 살펴보자.

더보기

보내야 하는 데이터를 송신자가 수신자의 공개키로 암호화를 걸어 놓고 데이터를 받은 수신자가 자신의 개인키로 복호화를 하는 방법

대표적인 알고리즘 방식으로 RSA, DSA 등이 있다.

SSL 인증서

클라이언트(Client)와 서버(Server) 간의 통신을 제 3자가 보증해주는 전자화된 문서

 

SSL + 인증서 데이터 흐름

  • 클라이언트(Client)가 접속한 서버(Server)가 신뢰할 수 있는 서버임을 보장
  • SSL 통신에 사용할 공개키를 클라이언트(Client)에게 제공

 

CA

인증서의 역할은 클라이언트(Client)가 접속한 서버(Server)가 클라이언트(Client)가 의도한 서버가 맞는지 보장하는 역할을 한다. 이러한 역할을 담당하는 기업을 CA(Certificate Authorit) 또는 Root Certificate라고 부른다.

  • Symantec
  • Comodo
  • AWS
  • .....

공인된 CA가 제공하는 인증서를 사용하면 브라우저의 주소창이 안전 표시를 해준다.

SSL 인증서에는 다음과 같은 정보가 포함되어 있다.

  1. 서비스 정보 (인증서를 발급한 CA, 서비스의 도메인, etc.)
  2. 서버 측 공개키 (공개키의 내용, 공개키의 암호화 방법)

 

오른쪽 그림은 SSL 인증서를 사용한 SSL handshake 방법이다.

 

※ Tcp 3-way handshake, 4-way handshake와 다른 handshake 방법이므로 혼동하지 말자!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

추후에 웹 애플리케이션을 개발하고 실제 론칭을 위한 클라우드 상에 애플리케이션을 배포를 하는 작업을 하게 된다면 이러한 네트워크 보안 지식을 알고 있어야 한다고 들었다. TCP/IP, UDP와 SSL에 대한 지식은 전산학의 기본 지식이라고 생각되니 꼼꼼하게 공부해야될 것 같다.

 

2. 경량 디렉터리 액세스 프로토콜(LDAP, Lightweight Directory Access Protocol)

TCP/IP 위에서 디렉터리 서비스를 조회 및 수정하는 응용 포로토콜

 

그러면 TCP/IP 기반 통신에 대해 간략하게 살펴보겠습니다.

설명은 http 프로토콜을 기반으로 샤용자가 전송한 데이터가 어떻게 서버로 전송되는지 보여드리겠습니다.

1. OSI Layer 7

A 웹 애플리케이션에서 데이터를 입력하여 이를 ResponseBody에 담고, JSON 파일로 파싱한 다음 http 프로토콜에 담는다.

 

2. OSI Layer 6

http 프로토콜에 대한 보안을 위해 https 프로토콜로 변환하기 위한 SSL(Secure Socket Layer) 인증서를 헤더에 담기

 

3. OSI Layer 5

https 포트 번호(443)을 통해 Socket을 열기

 

4. OSI Layer 4

TCP 헤더에 OSI Layer 5까지의 헤더를 담기

 

5. OSI Layer 3

TCP 헤더를 잘게 분해하여 목적지의 IP 주소에 해당하는 앤트포인트(EndPoint)에 데이터를 전송한다.

 

 

3. Active Directory Directory Service

해당 용어를 정의하기 위해서는 아래 두 가지 개념이 필요하다.

 

  1) Active Directory

  2) Directory

위 두 가지 개념을 간략하게 정의하면

 

1) Active Directory

중심 데이터베이스에 있는 정보를 저장하고 보안과 관련된 permission과 서비스를 윈도우 서버 환경에서 제공하는 것

더 쉽게 말하면, "Windows 서버 상에서 디렉터리에 사용자 또는 컴퓨터 계정을 저장하고 각각에 대한 보안을 위해서 permission 및 서비스를 제공하는 기능"이라고 보면 된다.

 

다음 개념인 Directory를 보기 전에 Object에 대한 개념을 먼저 적립하자.

Object

정보를 비즈니스에 맞게 가공한 데이터

즉, 정돈되지 않은 데이터를 비즈니스 가치를 뽑아내기 위한 데이터로 만들기 위해 가공한 것이다.

2) Directory

가공된 데이터(Object)를 저장하는 공간

정의에서 알 수 있듯이 객체(Object)에 대한 개념을 선행해야 해당 개념을 이해할 수 있다.

 

위 두 가지를 통해 Active Directory Directory Service를 다시 정의하면

보안과 관련된 permission과 서비스를 윈도우 서버 환경에서 제공하며, Domain Controller에 User Account, Computer Account를 DB(Directory)에 스키마(Scheme) 형식으로 저장한다.

 

그렇다면 Domain Controller는 무엇일까?

 

Domain Controller(DC) : Active Directory(AD)를 제어하는 서버

 ex) Samba Server, Domain Name Server, Web Server, ...

 

그렇다. DC는 Windows 상에서 서버(Server) 역할을 수행하며, User Account 또는 Computer Account를 DC에 Scheme 형식으로 등록하고 관리할 수 있다. 또한 Third Party SW이기 때문에, 어떠한 비즈니스 제품이든지 Domain Controller를 통합할 수 있다.

Domain Controller(DC)는 User들을 Groups에 등록하여 Group별 permission 등록 및 관리를 할 수 있으며 위에 설명한 것과 같이 DB 역할을 수행하는 Directory에 저장한다.

 

Groups는 Organization Unit이 가지는 제어권을 Group 단위로 할당할 수 있다.

 

Organization Unit

Active Directory의 Container 역할을 하며 사용자, 컴퓨터, 프린터, 다른 OU, 그룹 등을 포함할 수 있다.

ex) Marketing OU, Account OU, Development OU, ... (부서 별로 OU를 구분)

 

Domain

Active Directory의 최소 단위로, 하나의 트리는 1개 이상의 Domain을 가진다.

 

실무에서는 본사(HQ)를 Primary Domain으로, 지역 별 공장(인천, 대구, 광주, .. )을 Sub Domain으로 나눈다.

Domain로 구성된 인프라 구조

primary Domain(Master)가 Sub Domain(Slaves)에 대한 부모 역할을 해준다,

  • 특정 sub domain에서 root domain에 대한 read 권한을 가지고 있다면, root domain을 부모로 가지는 또다른 sub domain에도 접근이 가능하다.

위와 같은 인프라 구조를 가지기 때문에, A 회사가 B회사를 M&A(인수 합병)할 때, 해당 시스템을 AD의 주요 특성인 SSO를 활용하여 A 회사에 Account 등록을 하지 않아도 마치 하나의 회사인 것처럼 사용할 수 있다.

'컴퓨터학부 4학년 > 인턴(6개월)' 카테고리의 다른 글

20200121 - 인턴 일지(보안)  (0) 2020.01.21
2020-01-20 인턴 기록(보안)  (0) 2020.01.20