HTTPS

han·2021년 12월 9일
0

Frontend

목록 보기
2/2

HTTPS: Hypertext Transfer Protocol Secure

Overview

기존 HTTP에 Secure가 추가된 것으로 사용자가 입력한 정보를 암호화하여 제3자가 함부로 보지 못하게 하고 사용자가 접근한 사이트가 신뢰할 수 있는 사이트인지 검증해준다.

대칭키: 동일한 키로 암호화와 복호화를 수행하며 빠르지만 키가 탈취될 위험이 있다.
비대칭키: 공개키와 개인키가 있으며 같은키로 암호화와 복호화를 동시에 할 수 없다.

동작과정

  1. 브라우저를 통해서 어떠한 사이트에 접근할때, client는 임의의 데이터를 보내고 서버는 답변으로 임의의 데이터와 tls/ssl인증서를 보내준다.
    이 과정을 handshake라고 한다.
  2. 이때 브라우저에 내장되어있는 CA(Certificate Authority)를 통해서 신뢰할 수 있는 사이트인지를 확인해준다.
    handshake 과정에서 서버에서 보내온 인증서는 해당 CA의 개인키로 암호화 되어있으므로 브라우저에 내장되어있는 공개키로 복호화가 가능하다.(복호화 실패 시 경고를 띄워는 것을 알 수 있다)
  3. 복호화된 인증서에는 서버의 공개키가 들어있다.
  4. 앞선 handshake 과정에서 주고받은 임의의 데이터를 바탕으로 새로운 데이터(pre master secret)를 만든 후 공개키로 암호화하여 서버로 전송한다.
  5. 이 pre master secret으로 대칭키를 만들게되고 메시지는 이 대칭키로 암호화되어 주고받게 된다.

Reference

https://www.youtube.com/watch?v=H6lpFRpyl14&t=312s
https://www.cloudflare.com/ko-kr/learning/ssl/what-happens-in-a-tls-handshake/
https://dwncs.wordpress.com/2017/06/23/https/

0개의 댓글