HTTP와 HTTPS의 개념 및 차이점

dev-well-being·2023년 9월 14일
1

HTTP

  • HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다.
  • 인터넷에서 하이퍼텍스를 교환하기 위한 통식 규약으로 80번 포트를 사용하고 있다.
  • HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에, 제 3자가 정보를 조회할 수 있다. 그리고 이러한 문제를 해결하기 위해 HTTPS가 등장하게 되었다.

HTTPS

  • HTTPS(HyperText Transfer Protocol over Secure)란 HTTP에 데이터 암호화가 추가된 프로토콜이다.
  • HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 암호화를 지원하고 있다.

대칭키 암호화와 비대칭키 암호화

대칭키 암호화

  • 클라이언트와 서버가 동일한 키를 사용해 암호화/복호화를 진행함
  • 키가 노출되면 매우 위험하지만 연산속도가 빠름

비대칭키 암호화

  • 1개의 쌍으로 구성된 공개키와 개인키를 암호화/복호화 하는데 사용함
  • 키가 노출되어도 비교적 안전하지만 연산 속도가 느림

HTTPS 동작 과정

  • 클라이언트(브라우저)가 서버로 최초 연결 시도를 함
  • 서버는 공개키(엄밀히는 인증서)를 브라우저에게 넘겨줌
  • 브라우저는 인증서의 유효성을 검사하고 세션키를 발급함
  • 브라우저는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송
  • 서버는 개인키로 암호화된 세션키를 복호화하여 세선키를 얻음
  • 클라이언트와 서버는 동일한 세션키를 공유하므로 데이터를 전달할 때 세션키로 암호화/복호화를 진행함

참고 자료

profile
안녕하세요!! 좋은 개발 문화를 위해 노력하는 dev-well-being 입니다.

0개의 댓글