TLS (SSL) 통신은 클라이언트가 서버의 신원을 인증하고 서버와 안전하게 암호화된 통신을 하는 방식이다.
그렇기 위해 Handshake 과정을 거친다. 

 

아래는 HandShake 순서이다. 

 

[ HandShake 순서 ]

그림에서 다 표현하지 못한 부가적인 설정이다. 

( 그럼에 표기된 번호를 기준으로 설명한다. )


1번: Client 가 서저에 지원하는 TSL 버전/암호화 알고리즘을 제안(전송)

2번: Client가 전달된 암호화 알고리즘 리스트중 서버가 사용할 수 있는 알고리즘을 선택.
       Client 에 전송
        ( 2개 이상이라면, 알고리즘 리스트 중 가장 보안이 높은 알고리즘을 선택)

4번: 선택된 알고리즘에 따라 서버 인증서(공개키포함)를 '전달'

6번: Client는 서버 인증서를 CA로 검증.
        임의의 대칭키를 생성하여 Server의 공개키로 암호화 후 전 Server 로 전달

9번: Server 는 자신의 개인키로 대칭키 복호화 ( 이 대칭키가 Session Key )


10번: 복호화 성공 후 성공값 전달.

 

이후 TSL 통신 시 데이터 암/복호화는 Server 과 Client 가 가지고 있는 sessionKey 로 데이터를 암호화 하여 주고 받는다. 

 

'Development > Security (보안)' 카테고리의 다른 글

MTLS(Mutual TLS) 통신이란?  (0) 2020.10.27
SSL 이란?  (0) 2020.09.22
X.509 인증서  (0) 2020.09.18
JAVA 사설인증서 MTLS 통신 ( Server )  (0) 2020.09.16
Java 사설인증서 MTLS 통신 ( Client )  (0) 2020.09.15

+ Recent posts