본문 바로가기
TIL/기술면접 대비

http, https 차이점

by J1-H00N 2023. 8. 26.

http

  • 인터넷에서 하이퍼텍스트를 교환하기 위한 통신규약으로, 80번 포트를 사용하고 있다.
  • http의 구조
    • 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동
    • 무상태성을 가짐
    • Method, Path, Version, Headers, Body로 구성
  • 암호화를 하지 않고 데이터를 주고받기 때문에 제 3자가 개인정보를 조회할 수 있음 
  • 이 단점을 극복하고자 https가 나타남

 

https

  • http에 데이터 암호화가 추가된 프로토콜로 443번 포트를 사용하고 있다.
  • https는 대칭키 암호화와 비대칭키 암호화 방식 모두 사용해 안정성과 빠른 연산 속도를 모두 얻음
  • 대칭키 암호화
    • 서버와 클라이언트가 동일한 키를 사용해 암호화/복호화를 진행
    • 키가 노출되면 위험한 대신 연산이 빠름
  • 비대칭키 암호화
    • 1개의 쌍으로 구성된 공개키와 개인키를 사용해 암호화/복호화 진행
    • 키가 노출되어도 비교적 안전하지만 연산이 느림
    • 공개키로 암호화 하면 개인키로만 복호화 > 나만 볼 수 있음
    • 개인키로 암호화 하면 공개키로만 복호화 > 자신이 인증한 정보임을 알려 신뢰성 보장
  • 동작 과정
    • 연결 과정에서 서버와 클라이언트가 세션키(주고받는 데이터를 암호화/복호화 하는 대칭키)를 교환
    • 이 세션키를 서버와 클라이언트가 비대칭키로 공유
    • 즉, 처음 연결할 때 세션키를 공유하는 과정에서 비대칭키를 사용하고 이후 데이터를 교환하는 과정에서는 빠른 연산을 위해 대칭키 사용
      1. 클라이언트가 서버로 최초 연결 시도
      2. 서버가 공개키를 클라우드에 전달
      3. 브라우저는 공개키의 유효성을 검증하고 세션키를 발급
      4. 브라우저는 세션키를 발급받고 동시에 서버의 공개키로 세션키를 암호화하고 서버로 전송
      5. 서버는 개인키로 전달받은 암호화된 세션키를 복호화하여 세션키를 얻음
      6. 이후에 데이터를 교환 할 때는 공유하고 있는 세션키로 암호화/복호화 진행

 

정리

http는 하이퍼 텍스트를 교환하기 위한 프로토콜로, 80번 포트를 사용하며 무상태성을 가지고, Method, Path, Version, Headers, Body로 구성되어 있다. 암호화를 하지 않아 보안에 취약하여 Secure(암호화)이 추가된 https가 등장했다.

http와 다르게 443번 포트를 사용하며, 암호화/복호화가 추가됐다. 대칭키 암호화와 비대칭키 암호화를 같이 사용한다.

클라이언트가 서버로 연결 시도

> 서버가 공개키를 클라우드에 전달

> 클라우드가 공개키를 검증한 후 대칭키인 세션키를 발급

> 클라우드는 세션키를 저장하고 동시에 세션키를 서버한테 전달받은 공개키로 암호화하여 서버에 전달

> 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음

> 이후 데이터를 교환할 때는 공유하고 있는 세션키로 암호화/복호화 진행

이 과정을 통해 대칭키 방식의 빠른 연산과 비대칭키 방식의 신뢰성을 동시에 만족한다.

지금은 https와 http의 속도차이가 크지 않아 대부분 https를 사용한다. 

 

 

'TIL > 기술면접 대비' 카테고리의 다른 글

DI, IoC  (0) 2023.08.28
TCP/UDP  (0) 2023.08.25
쿠키, 세션의 개념과 차이  (0) 2023.08.24
브라우저의 작동방식  (0) 2023.08.23
CORS(Cross Origin Resource Sharing)  (0) 2023.08.22