TIL
2022.01.10
superLipbalm
2022. 1. 10. 23:09
한 일
- 알고리즘 2 문제
- 면접 준비
배운 것
- TLS/SSL 핸드쉐이크
- 클라이언트에서 client-hello 메시지를 서버로 보냄. 버전, 암호 알고리즘, 압축 방식 등의 정보가 담김.
- 서버는 클라이언트가 보낸 암호 알고리즘, 압축 방식 등 정볼르 받고 server hello 메시지에 세션 ID, CA 공개 인증서를 담아 응답.
- CA 인증서에는 클라이언트가 hanshake 과정에서 사용할 공개키를 담고 있음
- 클라이언트 측은 서버에서 보낸 CA 인증서 유효성을 확인함
- CA 인증서 유효성이 검증되었다면 난수를 생성해 CA 인증서의 공개키로 암호화함. 이 난수는 대칭키를 만드는데 사용.
- 서버는 암호화된 난수를 자신의 개인키로 복호화 후 대칭 마스터 키를 생성함.
- 클라이언트는 handshake 과정이 완료되었다는 finished 메시지를 서버에 보냄.
- 지금까지 보낸 교환 내역을 해싱 후 그 값을 대칭키로 암호화 해 같이 담아 보내줌.
- 서버도 동일하게 교환 내역을 해싱한 뒤 클라이언트에서 받은 값과 일치하는지 확인
- 일치하면 서버도 finished 메시지를 대칭키로 암호화해 보냄
- 클라이언트와 서버는 이제 해당 대칭키로 데이터를 주고 받음
- ICE (Interactive Connectivity Establishment) Candidate Gathering
- Local Address : 자신의 사설 IP 주소와 포트 넘버
- Reflexive Transport Address : 자신의 공인 IP 주소와 포트 넘버, STUN을 통해 획득
- Relay Transport Address : TURN 서버의 IP 주소와 포트 넘버
- 위 3개의 Candidate를 SDP Offer, Answer에 담아 우선순위를 정해 교환하는 것.
- 이후 ICE Connectivity Checks 과정을 통해 가장 연결성이 좋은 주소로 통신함
느낀 것
- 네이버 탈! 코테 준비가 모자라서 탈탈탈탈 털렸어서 예상은 했지만...ㅠㅠ