오래 못 할 짓 하지 않기

[ 네트워크 시작 전 ] 7. TLS 핸드 셰이크 본문

3학년 2학기/네트워크 (Network)

[ 네트워크 시작 전 ] 7. TLS 핸드 셰이크

쫑알bot 2024. 6. 29. 15:26
728x90

핸드 셰이크

Client 와 Server간에 통신을 주고 받는 프로세스.

TLS 핸드 셰이크

통신을 주고받을 때 TLS를 사용하여 안전한 인터넷 통신을 위한

암호화 및 인증하는 것 , 이는 HTTPS 작동 원리의 근간을 이룬다.

 

 

언제 발생?

통신 중에 API호출 or (HTTPS를 통한 DNS쿼리를 포함한) HTTPS 를 사용할 때

 

+ 계속 TLS 핸드 셰이크를 해야함 = 통신할 때 계속 암호화 하고 감싸줘야하기 때문에

 

 

TLS 핸드 셰이크 중에는 어떤 일이 발생하는가?

- 사용할 TLS 버전 지정

- 사용할 암호 제품군 결정

- 서버의 공개키 , SSL 인증서 기관의 서명을 통해 서버 ID 인증

- (핸드셰이크 완료된 후) 대칭 암호화를 사용하기 위하여 세션 키 생성

 

 

 

TLS 핸드 셰이크 과정

1. '클라이언트 헬로' 메시지 : 클라이언트 → 서버 로 "헬로"라는 메시지를 전송하여 핸드셰이크 시작

 

2. '서버 헬로' 메시지 :  서버 → 클라이언트에게 응답을 해준다.  응답 내용 :  [ 암호 제품군 , 무작위 암호화 문자열 ]

 

3. 인증 : 서버의 SSL 인증서를 인증서 발급 기관을 통해 검증. 

             인증서에 명시된 서버인지, 클라이언트 = 도메인 소유자인지 

 

4. 예비 마스터 암호 : 앞 단계에서 검증을 통과했다면 , 클라이언트는 서버의 SSL 인증서를 통해 공개 키를 받는다.

 

5. 개인 키 사용

 

6. 세션 키 생성

 

7. 클라이언트 준비 완료 : 클라이언트가 세션 키로 암호화된 "완료" 메시지를 전송한다.

 

8. 서버 준비 완료 : 서버가 세션 키로 암호화된 "완료" 메시지를 전송한다.

 

9. 대칭 암호화 성공 

 

 

(참고)

 

- 인프런 더코딩클럽 : 컴퓨터구조, 네트워크 기본 개념 정리