저번 시간에는 HTTPS 통신에 대해 알아보았습니다. (궁금하면 아래로 링크로!)
=> http://run-it.tistory.com/27?category=673442
그에 이은 HTTPS 2탄! SSL, 대칭키와 비대칭키에 대하여 알아보도록 하겠습니다
1. SSL[Secure Socket Layer]이란?
SSL은 Netscape사에서 만든 계층, 프로토콜로 웹서버와 브라우저 사이의 보안을 담당하는 역할을 맡고 있습니다.
그리고 Certificate Authority(CA)라고 불리는 서드 파티로부터 서버와 클라이언트의 인증을 하는데 사용됩니다.
2. SSL 인증서
SSL 인증서는 클라이언트와 서버 간의 통신을 제3자가 보증해주는 전자화된 문서입니다.
웹 사이트가 믿을 만 한가에 대한 지표가 됩니다. 인증서는 트리(Tree) 구조를 이루는데요.
최상위 인증서를 Root Certification Authority(줄여서 Root CA)라고 부르며, 인증서를 발행한 기관을 말합니다.
3. 대칭키
클라이언트와 서버 모두 동일한 키를 가지고 데이터를 암/복호화 하는 방식을 말합니다.
Private Key/Public Key를 이용한 암호화는 하나의 키로 암호화하고 나머지 다른 하나로 복호화하는 방식입니다.
앞에서 암호화한 키로만 암호화 할 수 있는 것이 아니라 반대 방향으로 복호화한 키로도 암호화할 수도 있습니다.
4. 비대칭키
클라이언트와 서버 모두 다른 키를 가지고 데이터를 암/복호화 하는 방식을 말합니다.
하나의 키로 암호화를 하면 또다른 키로 복호화를 할 수 있는 것을 말합니다.
즉, 하나의 키로 암/복호화를 할 수 없습죠!
자, 이제 위의 내용들을 토대로 SSL 통신 과정을 살펴봅시다!
[SHOW TIME! BAAAAAM!]
5. SSL 통신 과정
웹 브라우저에서 웹서버로 SSL통신을 요청합니다.
웹서버는 인증서를 전송합니다.
[여기서 잠깐! 인증서에는 Public key도 포함되어 있어요!]
웹브라우저는 웹서버로부터 받은 인증서가 신뢰할 수 있는 것인지 확인합니다.
[인증서 내용 중에 공개키 보이시나요~?!?!?!]
이제, 웹브라우저는 웹서버로부터 받은 public key를 사용해서 랜덤한 대칭키 및 http 데이터들을 암호화하여 웹서버로 전송합니다.
웹서버는 자신의 개인키를 이용해서 랜덤 대칭키와 http 데이터를 복호화합니다.
웹서버는 요청받은 URL에 대한 응답을 웹브라우저로부터 전달 받은 랜덤 대칭키를 이용해 데이터를 암호화해서 웹브라우저로 전송!
웹브라우저는 대칭키를 이용해서
http 데이터를 복호화해서 화면에 정보를 출력합니다!
[여기서 그 결과는 네이버 대문!]
여기까지 긴 글을 읽어주신/보아주신 여러분께 감사의 말씀을 드리며, 오늘의 글을 마칩니다.!.
'OSI 7계층 > [기타] 보안' 카테고리의 다른 글
SSL/TLS, Cipher suite란? (0) | 2018.09.02 |
---|---|
와이어 샤크를 이용한 SSL 핸드쉐이크(handhake)의 이해 (1) | 2018.08.26 |
HTTPS[HyperText Transfer Protocol over Secure Socket Layer] 통신 (0) | 2018.08.12 |
웹방화벽 (Web Application Firewall) (2) | 2018.08.05 |
WHAT is 방화벽!? (1) | 2018.07.29 |