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 |