728x90
단계 3
비밀값을 만들고 이것을 서버에게 알려줘야 하는데 알려주는 것을 3단계의 client_key_exchange를 통해서 알려주게 된다. 만약에 RSA(공개키)를 이용해서 알려줄 경우에는 PMS를 만들어서 서버의 공개키(RSA)로 암호화 시켜서 보내면 이 값은 서버에 개인키가 없으면 이 값은 복호화 시켜서 볼 수가 없다. 결국 서버만이 볼 수가 있다. 그다음 DH를 쓰는 경우에는 DH파라메타 값을, 그리고 fixed DH의 경우에는 클라이언트의 DH key를 인증서에 넣어서 보내주게 된다. 그리고 클라이언트는 메시지에 MAC을 만들어 붙여서 전송을 하는 것이다.
정리하자면, 서버는 클라이언트가 보낸 PMS값을 받았고 공개키를 사용 할 경우 공개키로 암호화 해서 보냈으니까 서버는 자신의 개인키로 풀면 이 값을 찾을 수 있고 만약 DH을 사용 할 경우 DH 파라메타를 보냈으니까 서버는 PMS값을 찾을 수 있는 것이다. 그러면 여기서 부터 master secret 값을 계산 하고, 여기서 나온 값을 이용해서 키를 계산한다.
'서버 > 암호' 카테고리의 다른 글
암호 방식 리스트 or 암호 알고리즘 리스트(Cipher Suite) (0) | 2021.03.21 |
---|---|
TLS Handshake 프로토콜 (4 단계) (0) | 2021.03.21 |
TLS Handshake 프로토콜 (2 단계) (0) | 2021.03.21 |
TLS Handshake 프로토콜 (1 단계) (0) | 2021.03.21 |
TLS의 절차 (0) | 2021.03.20 |