최대 1 분 소요

HTTP 정리에 이어서 HTTPS에 대해 정리하려고 한다.



HTTPS 란

HTTPS(Hyper Text Transfer Protocol Secure)는 SSL(Secure Socket Layer) 프로토콜을 이용하여 웹브라우저와 서버가 데이터를 주고받는 통신 규약이다.

443번 포트를 사용하며 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.



HTTPS의 동작 과정

SSL과 같은 프로토콜을 사용하여 공개키/개인키 기반으로 데이터를 암호화한다.

  1. A 기업은 공개키/개인키를 발급한다.
  2. CA(인증된 기관)에게 공개키를 저장하는 인증서의 발급을 요청한다.
  3. CA는 CA 이름, 서버의 공개키, 서버의 정보 등을 기반으로 인증서를 생성하고, CA의 개인키로 암호화하여 A 기업에게 제공한다.
  4. A기업은 클라이언트에게 암호화된 인증서를 제공한다.
  5. 브라우저는 CA의 공개키를 가지고 있어서 암호화된 인증서를 복호화하여 A 기업의 공개키를 얻을 수 있다.
  6. 얻은 A 기업의 공개키로 데이터를 암호화하여 요청을 전송한다.


정리

  • 인증서를 복호화 하면서 CA(인증된 기관)의 개인키로 암호화되었기 때문에 신뢰성을 확보할 수 있다.
  • 클라이언트가 보낸 데이터는 A 기업의 개인키로만 복호화가 가능하기에 A 기업만 원본의 데이터를 얻을 수 있다.



HTTP와 HTTPS 차이점

HTTPS를 사용함으로 안전하게 데이터를 주고받을 수 있지만 암호화/복호화 과정이 필요하기에 HTTP 보다 속도가 느리다. 또한 인증서 발급과 유지 비용이 발생한다.

개인 정보와 같은 민감한 데이터를 주고받을 때 HTTPS를 사용하고 단순한 정보 조회 등을 처리한다면 HTTP를 사용하면 된다.

업데이트: