SSL/TLS 네트워크 보안
SSL과 TLS는 전송계층(TCP) 상에서 (1)서버와 클라이언트간 인증, (2)TCP 통신 채널인 세션의 송수신 데이터 에 대한 암호화를 수행하는 보안 프로토콜이다.
UDP에 대해서 암호화를 적용해야 할 경우에는 DTLS 프로토콜을 사용할 수 있다.
SSL 버전 | SSL2.0, SSL3.0 |
TLS 버전 | TLS1.0, TLS1.1, TLS1.2, TLS1.3 |
1. SSL/TLS에서 인증과 암호화
SSL/TLS에서 상대방에 대한 인증은 상대의 인증서와 공캐키를 이용해 수행한다. 공개키는 어떠한 방식으로든 통신 하고자 하는 상대에게 전달되어 있어야 한다.
암호화 통신은 협상 과정의 초반에는 비대칭키를 사용하하여 메시지를 주고 받다가 대칭키 방식의 암호방식 변경에 대한 협상을 한후,
어플리케이션 데이터를 송수신할때에는 통신속도등을 고려해 대칭키를 사용한다.
비대칭 키(공개키 공개) 암호화 통신 |
A의 공개키로 암호화 한 데이터는 A의 개인키로만 복호 가능, A의 개인키로 암호화 한 데이터는 A의 공개키로만 복호 가능한 원리 이용 ⊕ 개인키(비밀키)는 나만이 비밀스럽게 갖고 있어야 할 것이나 공개키는 누구에게나 막 공개되어 있어도 무방하다, |
대칭 키(키 비공개) 암호화 통신 |
통신 양방이 동일한 키를 사용하여 암호화 한 데이터를 주고 받는다 → 통신 효율(속도) 측면에서 비대칭키 방식에 비애 매우 유리하다. ⊕ 대칭 키는 통신 양자가 동일한 키를 소유하고 있다, 이 키는 통신 양자외에는 누구에게도 누출 되어서는 안되겠다. |
2. SSL/TLS 프로토콜 지원 라이브러리의 예
전송계층 보안프로코콜 기능을 Source/라이브러리로 제공하는 예로는 OpenSSL, GnuTLS, wolfSSL, mbedTLS, 등이 있다.
3. SSL/TLS 인증과 암호화 협상 과정
SSL/TLS 버전이나 협의된 암호 방식에 따라 조금씩 다를 수 있겠댜. 통상적인 양자간 인증이나 암호화 채널 형성과정은 다음과 같다.
아래 준비물 추후 재정리 요함
Client의 보안관련 준비물 | Server의 보안관련 준비물 |
클라이언트 인증서 | 서버인증서 |
Public Key | Public Key |
Private Key | Private Key |
CA 인증서 |