HTTP vs HTTPS, 개념 및 차이점

honney·2023년 3월 15일

HTTP(Hyper Text Transfer Protocol)란?

서버/클라이언트 모델을 따라 인터넷을 통해 하이퍼텍스트(Hyper Text) 즉, 데이터를 교환(Transfer)하기 위한 통신규약(Protocol)이고, 80번 포트를 이용한다.

HTTP의 문제점

데이터를 전송하면서 제 3자가 정보를 조회할 수 있어서 민감한 정보들이 노출 될 수 있다는 문제점이 있다.
이러한 문제를 해결하고자 HTTPS가 등장하였다.

HTTPS(Hyper Text Transfer Protocol Secure)란?

HTTP + 데이터 암호화(secure)가 추가된 프로토콜이고, 443번 포트를 이용한다.

데이터 암호화 방식(대칭키 vs 비대칭키)

대칭키 암호화

  • 클라이언트와 서버(송수신자)가 동일한 키를 사용해 암호화/복호화를 진행함
  • 키가 노출되면 매우 위험하지만 연산 속도가 빠름(그래서 키를 안전하게 전송하는것이 매우중요!!)

비대칭키 암호화

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

1. 공개키로 암호화 하는 방식
  • 어떤 정보를 특정 사용자에게 전달할때 해당 사용자의 공개키를 통해 전송한다.
  • 공개키로 암호화된 정보는 개인키를 통해서만 열어볼 수 있다.
    => 정보 자체에 대한 암호화가 필요할때 사용한다.
  1. 개인키로 암호화 하는 방식
  • 어떤 정보를 특정 사용자에게 전달 할때 자신의 키를 통해 암호화하여 전송한다.
  • 그 정보는 전송한 사람의 공개키를 통해 열어 볼 수있다.
    => 정보를 생산한 사람(송신)의 신원에 대한 정보가 필요할 때 사용한다.

HTTPS의 동작 과정

HTTPS는 대칭키 암호화비대칭키 암호화를 모두 사용하여 두개의 장점인 빠른 연산속도와 안정성을 가지고 있다.

HTTPS 동작과정에서는 비대칭키를 통해 클라이언트와 서버간의 세션키를 교환한다. 여기서 세션키는 빠른 연산 속도를 위해 대칭키로 만들어진다.


HTTPS 연결과정

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

HTTP 와 HTTPS 정리

HTTP

  • HTTP는 암호화가 되지 않아 제 3자에게 정보가 노출 되는 보안에 취약하다.
  • 암호화의 과정이 없기 때문에 데이터를 주고받는데 HTTPS보다 속도가 빠르다.

HTTPS

  • 암호화가 추가되어 제 3자에게 정보가 노출되지 않는다.
  • 암호화/복호화의 과정으로 HTTP보다 속도가 느리다.
  • 인증서를 발급하고 유지하기 위한 추가 비용이 발생한다.
  • 구글에서는 HTTPS의 경우 SEO(Search Engine Optimization)검색엔진에 가산점을 부여.

참조 :
https://velog.io/@qlemql/HTTP-vs-HTTPS%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
https://mangkyu.tistory.com/98#recentEntries
https://universitytomorrow.com/22

profile
보이지 않은 것을 보이게 할 때 기쁨을 느낍니다

0개의 댓글