728x90
반응형
TLS 핸드세이크
- 클라이언트 - 서버가 교환하는 일련의 데이터그램 == 메시지
- 사용되는 키 교환 알고리즘의 종류 및 양측에서 지원하는 암호 모음에 따라 달라짐
- 1.3 버전 이전에는 RSA 키 교환 알고리즘을 사용했지만, 안전하지 않음
TLS 핸드세이크 작동 방식
- 비대칭 암호화(공개 키 - 개인 키) 사용
- TLS 핸드세이크
- 클라이언트 헬로 메시지
- 클라이언트가 서버로 Hello 메시지 전송하여 핸드세이크 개시
- 이 때 TLS 버전, 지원 암호 제품군, 클라이언트 무작위 바이트 문자열 포함
- 서버 헬로 메시지
- 클라이언트 헬로 메시지에 대한 응답으로 서버의 SSL 인증서, 서버에서 선택한 암호 제품군, 그리고 서버에서 생성한 무작위 문자열 바이트 포함한 메시지 전송
- 인증
- 클라이언트가 서버의 SSL 인증서를 인증서 발행 기관을 통해 검증
- 인증서에 명시된 서버인지, 상호작용중인 서버가 실제 해당 도메인의 소유자인지 확인
- 예비 마스터 암호
- 클라이언트가 무작위 바이트 문자열 하나 더 전송
- 공개키로 암호화 되며, 서버 개인 키로만 해독 가능
- 공개키는 서버의 SSL 인증서를 통해 클라이언트에 전달됨
- 개인키 사용
- 서버가 예비 마스터 암호를 해독함
- 세션 키 생성
- 클라이언트와 서버 모두 클라이언트 무작위, 서버 무작위, 예비 마스터 암호 이용해 세션 키 생성
- 모두 동일한 결과가 나와야 함
- 클라이언트 준비 완료
- 클라이언트가 세션 키로 암호화된 완료 메시지 전송
- 서버 준비 완료
- 서버가 세션 키로 암호화된 완료 메시지 전송
- 안전한 대칭 암호화 성공
- 핸드세이크 완료, 세션키를 통한 통신이 진행
- 클라이언트 헬로 메시지
- 데이터가 암호화되고 인증되면, 메시지 인증 코드(MAC: Message Authorization Code)와 함께 서명됨
728x90
반응형
'네트워크' 카테고리의 다른 글
[TLS] TLS 란? (0) | 2025.01.13 |
---|