우노
[보안] SSL(Secure Socket Layer) 프로토콜이란? 본문
SSL(Secure Socket Layer) 프로토콜
- SSL은 CA를 통해, 클라이언트와 서버가 암호화된 데이터를 송수신 하는 방식이다.
HTTP & HTTPS
HTTPS는 HTTP를 안전하게 만드는 방식이며, SSL 프로토콜 위에서 돌아가는 프로토콜을 의미한다.
HTTP
- 클라이언트와 서버 사이에서 정보를 주고 받기 위해 이루어지는 요청/응답 프로토콜(양식과 규칙의 체계)
- 암호화되지 않은 방법으로 데이터를 전송한다. (악의적인 감청, 데이터 변조의 가능성)
HTTPS(Hypertext Transfer Protocol Over Secure Socket Layer)
보안이 강화된 HTTP이며,
모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다.
HTTPS는 HTTP의 하부에 SSL과 같은 보안계층을 제공함으로써 동작한다
SSL 프로토콜의 암호화
- SSL 프로토콜의 핵심은 암호화이다.
- SSL은 보안과 성능상의 이유로, 대칭키와 공개키 두가지 암호화 기법을 혼용해서 사용하고 있으며,
- SSL의 동작방법을 이해하기 위해서는, 이 암호화 기법들에 대한 이해가 필요하다.
SSL 인증서
- SSL 프로토콜에는 SSL 인증서가 사용된다.
- SSL 인증서는 클라이언트와 서버간의 통신을 제3자가 보증해주는 전자화된 문서이다.
- 클라이언트가 서버에 접속할 때, 서버는 클라이언트에게 SSL 인증서 정보를 전달하게 된다.
- 또한, 클라이언트는 SSL 인증서 정보가 신뢰할 수 있는 것인지 검증 한 후에, 다음 절차를 수행하게 된다.
- 이렇게 제3자가 인증해준 SSL 인증서를 통해, 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장할 수 있게 된다.
- SSL 인증서에는 다음과 같은 정보가 포함되어 있다.
- 서비스의 정보 (인증서를 발급한 CA, 서비스의 도메인 등등)
- 서버 측 공개키
CA
- SSL 인증서를 만들어주는 민간기업들을 CA(Certificate authority) 혹은 Root Certificate 라고 부른다.
- CA는 아무 기업이나 할 수 있는 것이 아니고, 신뢰성이 있는 공인된 기업들만 참여할 수 있다.
SSL 프로토콜 동작 방법
SSL 프로토콜은 암호화된 데이터를 전송하기 위해, 공개키와 대칭키를 혼합해서 사용한다.
SSL 프로토콜 통신 순서
- ClientHello
- 클라이언트가 서버에 접속(서버에게 통신 시작 알림)
- ServerHello, ServerKeyExchange, ServerHelloDone
- 서버는 인증기관이 전자서명한 서버의 공개키를 클라이언트에게 전송
- 클라이언트는 서버가 보낸 인증서를 확인하여, 신뢰할 수 있는 인증서인지 검토 후, 서버의 공개키를 사용
- ClientKeyExchange, ChangechiperSpec, Finished
- 클라이언트는 서버의 공개키로 대칭키를 암호화 한 뒤 서버에게 전달
- ChangechiperSpec, Finished
- 서버는 자신의 개인키로 대칭키를 복호화 해서 사용
- 이제 클라이언트와 서버는 암호화 방식으로 통신
- 통신 종료 시 대칭키 폐기
- ClientHello
'Network & Security > Concept' 카테고리의 다른 글
[Network] www.google.com 접속 흐름 (0) | 2022.06.10 |
---|---|
[Network] TCP/IP 와 TCP/IP 4계층이란? (1) | 2022.06.10 |
[Network] 패리티 비트와 해밍 코드 (0) | 2021.12.14 |
[보안] 패킷 전송 개념 및 방법 (1) | 2020.09.11 |
[보안] 대칭키 vs 비대칭키 (2) | 2020.09.02 |
Comments