SSL, TLS 프로토콜을 활용한 HTTPS 통신의 개념을 알아봅시다.
😜 추가 지식
- 장점
- 통신하고자 하는 서버가 신뢰할 수 있는 서버인지 판별할 수 있음.
- 통신 과정에서 데이터가 노출될 가능성이 적음.
😜 추가 지식
- SSL과 TLS 관계
- 네스케이프에 의해서 SSL이 먼저 발명되고, 점차 폭넓게 사용되다가 표준화 기구인 IETF의 관리로 변경되면서 TLS라는 이름으로 바뀜.
- 다른 것처럼 분리해서 말하는데 같은 것이고 구버전 신버전 느낌!
SSL 프로토콜에 사용되는 인증서
역할
내용
CA(Certificate Authority)
😜 추가 지식
- 예시로 보는 암호화, 복호화, 키 개념
- Love라는 것을 다음 알파벳인 MPZF로 보냄 (암호화)
- 받은 사람이 규칙을 알고 Love로 치환함 (복호화)
- 보내는 사람이 다음 알파벳으로 치환해서 보낸다는 정보 (키)
증거
이므로 데이터 제공자의 신원을 보장하는 개념😜 추가 지식
- 같은 말
- 비밀키 = 개인키, 비공개키
데이터 전달
에는 대칭키를 쓰고, 그 대칭키
를 교환할 때는 공개키 사용Client hello
라 불리며 다음과 같은 데이터를 서버에 전송
Session Id
(이미 SSL handshake를 한번 완료했다면 기존 session 재활용, 처음에는 전송 X)Server hello
라 불리며 다음과 같은 데이터를 클라이언트에 전송
클라이언트는 먼저 인증서를 발행한 CA를 신뢰할 수 있는지 판단 (갖고 있는 CA 리스트와 비교)
진짜 그 CA가 발행한 인증서가 맞는지 확인
복호화에 성공
한다면, 신뢰 할 수 있는 CA가 보증한 서버임을 확신할 수 있음 이후 Client hello 의 랜덤 데이터와 Server hello 의 랜덤 데이터를 조합하여 pre master secret key
생성
pre master key
를 암호화
(인증서에 포함된 서버측 공개키 사용)하여 서버에 전송
이 때 사용할 암호화 기법은 대칭키이기 때문에 pre master secret 값은 제 3자에게 절대로 노출되어서는 안됨
서버의 공개키로 pre master secret 값을 암호화해서 서버로 전송하면 서버는 자신의 비공개키로 안전하게 복호화 할 수 있음
pre master key
를 복호화대칭키
로 사용해 데이터를 암호화하여 클라이언트-서버 통신이 이루어짐😜 추가 지식
- 이후 세션 단계로 통신할 땐 세션 키를 이용해서 대칭키 방식으로 암호화
- 암호화된 정보는 상대방에게 전송될 것이고, 상대방도 세션키 값을 알고 있기 때문에 암호를 복호화 할 수 있음
참고
해당 사이트의 내용을 참고로 작성했습니다. 추후에 더 알게 되는 내용들을 추가하겠습니다.
SSL, TLS, HTTPS는 무엇인가요?
장구리
HTTPS와 SSL/TLS 정리
SSL/TLS 와 HTTPS
4D v18.4 Using TLS Protocol (HTTPS)
생활코딩