- 학습 목표 1. HTTPS, SSL/TLS
HTTP에 암호화 프로토콜인 SSL/TLS가 쓰이는 프로토콜
기존에는 통신 내역을 외부인이 스니핑하면 확인할 수 있었지만 HTTPS를 사용하면 내용이 암호화되어서 무슨 내용인지 알 수가 없다.
클라이언트와 서버가 서로 데이터를 암호화하여 통신할 수 있게 해주는 보안 계층
TLS는 SSL의 취약점을 보완하여 나온 SSL 3.0 이후부터 붙은 이름이다.
OSI 계층은 독립적이라 HTTP 외에도 SMTP, FTP랑도 함께 쓸 수 있다.
동작 과정
- 클라이언트 → 서버 "Client Hello"
랜덤한 데이터 + 지원하는 암호화 방식 전달 - 서버 → 클라이언트 "Server Hello"
랜덤한 데이터 + 지원하는 암호화 방식 + 인증서 전달 - 클라이언트
CA의 공유키 가지고 서버 인증서 확인, 주고 받은 랜덤 데이터 가지고 임시 대칭키 생성 - 임시 대칭키 전달
임시 대칭키 전달 - 서버
가지고 있던 개인키로 받은 임시 대칭키 복호화 - 세션키 생성
임시 대칭키가 세션키가 되어서 사용하게 됨
- 캡슐화: 상위 계층에서 하위 계층으로 내려오면서 데이터에 필요한 정보(헤더)가 추가되는 과정
- 역캡슐화: 하위 계층에서 상위 계층으로 올라가면서 데이터의 헤더를 읽고 제거하는 과정
접속 화면 | wireshark |
---|---|
- HTTPS가 어떻게 보안이 적용되는지, SSL/TLS의 차이점은 무엇인지 궁금했는데 이번 딥다이브를 통해 공부할 수 있어 좋았다.
- 개발자 온보딩 가이드 책을 읽기 시작했다. 아직 접해보지 못한 현업의 분위기와 내가 겪게 될 일들을 미리 알고 준비할 수 있어 좋은 거 같다.