TIL

TIL HTTP vs HTTPS 차이점

sunyong_01 2022. 10. 18. 19:12

HTTP 란?

  • HTTP는 Hypertext Transfer Protocol의 약자로 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 통신 규약을 의미한다.
  • HTTP는 기본적으로 평문 데이터 전송을 원칙으로 하기 때문에 개인의 프라이버시가 오가는 서비스들(전자상거래, 전자메일, 사내 문서 등)에 사용하기 부적합하다.

HTTP 장단점

  • 장점
    • 무상태(Connectionsless)
      • 클라이언트가 요청을 서버에 보내고 서버가 적절한 응답을 클라이언트에 보내면 바로 연결이 끊긴다
      • 비연결성이란 특징 때문에 서버 입장에선 통신 연결을 유지하지 않아 리소스 낭비가 줄어드는 장점이 있다
      • 통신마다 새로운 세션을 열어야 하는 작업은 클라이언트가 서버에게 요청 시마다 인증해야 하는 단점이 생겼다
    • 비연결 (Stateless)
      • 연결을 끊는 순간 클라이언트와 서버의 통신은 끝나며, 상태 정보를 유지하지 않는다.
  • 단점
    • 네트워크 상에 HTTP로 주고받은 문서는 공개가 되는 단점이 있다

이러한 보안상 문제를 해결해주는 프로토콜이 HTTPS!

HTTPS 란?

  • 기존 HTTP가 위변조에 취약하다는 점을 보완하기 위해 암호화나 인증 구조를 더한 것을 HTTPS(HTTP Secure)라고 부른다.
  • HTTPS는 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer) 프로토콜을 이용해 웹브라우저(클라이언트)와 서버가 데이터를 주고받는 통신규약이다.
  • HTTPS는 SSL(보안 소켓 계층)을 사용함으로써 HTTP의 보안 문제를 해결, SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결이 일어나도록 도와주어 민감한 정보가 도난당하지 않게 이를 방지해주는 역할을 한다.
  • 즉 HTTPS는 HTTP정보를 암호화하며, 공개키 암호화 방식을 거쳐 작동한다

HTTPS 장단점

  • 장점
    • 네트워크 상에서 열람, 수정이 불가능하므로 안전
    • 검색엔진 최적화(SEO)
  • 단점
    • HTTPS는 설치 및 인증서를 유지하는 데 추가 비용이 발생
    • 암호화하는 과정이 웹 서버에 부하를 줌
    • HTTP에 비해 속도가 느림
    • 인터넷의 연결이 끊긴 경우 재인증 시간이 소요
    • HTTP는 비연결형으로 웹페이지를 보는 중 인터넷 연결이 끊겼다가 다시 연결되어도 페이지를 계속 볼 수 있음
    • HTTPS는 소켓(데이터를 주고 받는 경로) 자체에서 인증을 하기 때문에 인터넷의 연결이 끊기면 소켓도 끊어져서 다시 HTTPS 재인증이 필요

SSL 란 ?

  • SSL 인증서란 클라이언트와 서버 간의 통신을 제삼자가 보증을 해주는 문서이다.
  • 클라이언트가 서버에 접속한 직후에 서버는 클라이언트에게 이 인증서를 전달한다. 그러면 클라이언트는 이 인증서를 보고 신뢰할 수 있는 사람인지 확인을 한 다음에 데이터를 보내는 등의 절차를 수행하게 된다.

SSL 동작 순서

SSL 장점

  • 전달되는 내용이 다른 사람에게 노출되는 것을 막을 수 있다.
  • 클라이언트가 접속하려는 서버가 신뢰할 수 있는 서버 인지 알 수 있다.
  • 전달되는 내용이 악의적으로 변경되는 것을 막을 수 있다.

SSL에서 사용하는 암호화의 종류

  • 대칭키
    • 암호를 만드는 행위인 암호화를 할 때 사용하는 일종의 비밀번호 키(key)라고 한다. 이 키에 따라서 암호화된 결과가 달라지기 때문에 키를 모른다면 암호를 푸는 행위인 복호화도 할 수 없다. 이 중, 대칭키 방식은 동일한 키로 암호화와 복호화를 할 수 있는 기법을 말한다. 그러나, 대칭키의 단점이 있다. 암호를 주고받는 사람들 사이에서 이 키(key)로 암호화하라고 사용자에게 전달하는 것이 어렵다는 점이다. 왜냐면 중간에 대칭키가 유출된 다면 키를 획득한 공격자는 암호의 내용을 복호화하여 무슨 데이터를 전달하려고 했는지 알 수 있기 때문에 HTTPS를 쓰는 이유가 없어진다. 그래서 나온 방식이 공개키 기법이다.
  • 공개키
    • HTTPS의 원리 공개키 방식(Public Key Infrastructure)은 두 개의 키를 갖게 되며, A키로 암호화하면 B키로 복호화가 가능합니다. 반대로 B키로 암호화를 하면 A키로 복호화를 할 수 있습니다. 여기서 두 개의 키 중 하나는 공개 키(public key)이고 다른 하나는 비공개(private key)가 됩니다. 비공개 키는 private 한 사용자가 가지고 있게 되며, 공개 키는 타인에게 공개되는 키입니다. 유저가 공개 키를 이용하여 데이터를 암호화한 뒤, 비공개 키의 소유자에게 전달하면, 비공개 키의 소유자는 비공개 키로 복호화하여 그 데이터를 얻는 간단한 원리입니다.

HTTP 와 HTTPS의 차이점

  • HTTP는 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고, 수정할 수 있습니다. 따라서 보안이 취약해짐을 알 수 있습니다. 이를 보완하기 위해 나온 것이 HTTPS입니다. HTTPS는 중간에 암호화 계층을 거쳐서 패킷을 암호화합니다.
  • HTTP 동작 순서 : TCP → HTTP
  • HTTPS 동작 순서 : TCP → SSL → HTTP