728x90

검은색은 필수로 보내야하는 메시지, 파란색은 optional 메시지 이다.


TLS handshake 프로토콜은 이 메시지들을 주고받게된다.

 

 

  • 단계 1 : 세션 설정과 보안 리스트 교환

여기서 말하는 세션은 TLS세션을 말하는 것이다. 이 세션은 처음에 hanshake를 하면서 클라이언트 서버 간에 인증을 하고 키를 설정한다. 설정한 키는 이 세션에서 유효한 것이다. 만약 이 키가 끝나면 다시 handshake 과정을 거쳐 키도 새로 만들고 인증도 새로 해야하는 것이다. 그래서 이 통신하는 단위를 세션이라고 한다. 이 TLS 세션을 단계 1에서 “hello 메시지를 교환하면서 설정 과정이 이루어지게 되고 그때 보안 리스트(암호화 알고리즘)를 결정하게 된다.  

 

client_hello_message와 server_hello_message의 구성

 

  • 버전: client_hello_message와 server_hello_message를 보낸다고 했는데 이것들은 버전이 있다. 가장 높은 SSL 버전이고 TLS인 경우는 1.2 버전이다. 
  • 랜덤(Random) : 이 랜덤값은 ‘nonce’ 이다. 이 값은 랜덤값을 사용할 수 있고 타임스탬프(time stamp)를 사용할 수있다.
  • 세션ID: 메시지들을 주고 받을 때 메시지들이 어떤 세션에 속하는지는 여기 ID값으로 구분이 된다. 그래서 이 ID에 합의된 key값들이 정해져 있는 것이다.(ID가 다르면 사용하는 key가 달라진다.)
  • 암호 방식 리스트 or 암호 알고리즘 리스트(Cipher Suite) : 먼저 client_hello_message로 클라이언트가 자기가 사용할 수 있는 암호 알고리즘을 서버한테 알려주는데, 자기가 사용하고 싶은 것 부터 순서대로 알려준다. 그러면 server_hello_message로 서버는 그 중에서 가장 적합한 것을 선택해서 그 알고리즘으로 통신 하는데 앞으로 통신하는데 사용 하는 것이다.
  • 압축방식 : 보안하고 상관 없는 내용이라 생략.

'서버 > 암호' 카테고리의 다른 글

TLS Handshake 프로토콜 (4 단계)  (0) 2021.03.21
TLS Handshake 프로토콜 (3 단계)  (0) 2021.03.21
TLS Handshake 프로토콜 (2 단계)  (0) 2021.03.21
TLS의 절차  (0) 2021.03.20
세션키를 만드는 두 가지 방법  (0) 2021.03.20

+ Recent posts