TLS 핸드셰이크란?

규갓 God Gyu·2025년 6월 1일

면접질문

목록 보기
141/142

브라우저와 서버가 TLS 프로토콜을 통해 암호화된 통신을 시작하기 전, 안전하게 연결을 설정하는 절차

먼저 브라우저가 Client Hello 메세지를 보냄
여기엔 브라우저가 지원하는 TLS 버전, 사용할 수 있는 암호화 알고리즘 목록, 세션 ID, Client Random 난수가 포함되어 있음

이후 서버가 이에 대해 Server Hello로 응답하면서, 서버가 선택한 암호화 방식, 자신의 Server Random 값, 그리고 디지털 인증서를 함께 보냄
이 인증서 안엔 서버의 공개키, CA 서명 포함되어 있음

브라우저는 이 인증서를 통해 서버의 신원을 검증함

검증 완료 후 브라우저는 서버의 공개키로 Pre-Master Secret이라는 임시 비밀 값을 암호화해서 전송.
서버는 자신의 개인키로 이를 복호화해 Pre-Master Secret 값을 복원하고, 이제 클라이언트와 서버는 서로 갖고 있는 Client Random, Server Random, Pre-Master Secret을 기반으로 동일한 대칭키를 생성
이 대칭키는 이후 주고 받는 데이터를 암호화하고 복호화하는데 사용됨

마지막으로 서로 Finished 메시지를 교환하면서 대칭키로 암호화된 통신이 잘 되는지 확인하고 나면, 정상적인 HTTPS 통신이 시작됨

profile
웹 개발자 되고 시포용

0개의 댓글