HTTP VS HTTPS

sunny·2021년 11월 7일
0

HTTP

목록 보기
4/5

HTTPS

HTTPS 란?

Hyper Text Transfer Protocol Secure

HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜로,
SSL(보안 소켓 계층)을 사용함으로써 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.

SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난 당하는 것을 방지해준다.

대칭키 / 공개키 / 인증서와 CA(Certificate authority)

대칭키

암호화에 쓰이는 키와 복호화에 쓰이는 키가 동일한 기법

만약 클라이언트와 서버가 대칭키 방식으로 통신을 한다면 클라이언트도 키를 가지고 있어야 한다.

클라이언트에게 키를 전달하기도 위험하며 클라이언트의 소스코드는 누구든지 열어볼 수 있으므로 가지고 있기도 굉장히 위험하다.

공개키(비대칭키)

공개키와 개인키(비밀키)라는 2가지 키를 사용하는 기법

공개키는 말그대로 누구나 획득할 수 있는 공개된 키를 뜻하고 정보를 보내는쪽(클라이언트)은 이 키를 가지고 데이터를 암호화해서 전송한다.

개인키(비밀키)는 공개키로 암호화된 데이터를 복호화 할 수 있는 키로써 자신(서버)만이 가지고 있는 키

👉 이 방법은 안전하게 데이터를 주고받을 수 있게 만들어주지만 속도가 느리다는 단점이 있다.

인증서와 CA(Certificate authority)

SSL을 적용하기 위해서는 인증서라는 것이 필요하다.
인증서의 내용은 크게 2가지로 구분할 수 있는데,

  • 서비스의 정보 (CA, 도메인 등등)
  • 서버 측의 공개키 (공개키의 내용, 공개키의 암호화 방식)

이 인증서를 발급해주는 기업을 CA라고 한다.

HTTPS 의 동작 과정

HTTPS는 SSL과 같은 프로토콜을 사용하여 공개키/개인키 기반으로 데이터를 암호화하고 있다. 데이터는 암호화되어 전송되기 때문에 임의의 사용자가 데이터를 조회하여도 원본의 데이터를 보는 것은 불가능하다.

그렇다면 이제 서버는 클라이언트가 요청을 보낼 때 암호화를 하기 위한 공개키를 생성해야 하는데, 일반적으로는 인증된 기관(Certificate Authority) 에 공개키를 전송하여 인증서를 발급받고 있다. 자세한 과정은 다음과 같다.

  1. A기업은 HTTP 기반의 애플리케이션에 HTTPS를 적용하기 위해 공개키/개인키를 발급함
  2. CA 기업에게 돈을 지불하고, 공개키를 저장하는 인증서의 발급을 요청함
  3. CA 기업은 CA기업의 이름, 서버의 공개키, 서버의 정보 등을 기반으로 인증서를 생성하고, CA 기업의 개인키로 암호화하여 A기업에게 이를 제공함
  4. A기업은 클라이언트에게 암호화된 인증서를 제공함
  5. 브라우저는 CA기업의 공개키를 미리 다운받아 갖고 있어, 암호화된 인증서를 복호화함
  6. 암호화된 인증서를 복호화하여 얻은 A기업의 공개키로 데이터를 암호화하여 요청을 전송함
  7. 호화된 인증서는 CA의 개인키로 암호화되었기 때문에, 신뢰성을 확보할 수 있고, 클라이언트는 A 기업의 공개키로 데이터를 암호화하였기 때문에 A기업만 복호화하여 원본의 데이터를 얻을 수 있다.

HTTP와 HTTPS의 차이

HTTP와 HTTPS의 차이는 결정적으로 보안이라고 할 수 있다.
HTTP는 네트워크 상에서 제 3자가 정보를 마음대로 열람, 수정, 감시할 수 있다. 여기서 정보에는 비밀번호나 주민등록번호와 같이 민감한 정보가 포함되어 있다.

그렇기 때문에 HTTP의 보안상의 문제를 해결하기 위해 HTTPS가 등장하였다.
HTTPS는 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 HTTP를 암호화한다.

HTTP

👍 HTTP는 HTTPS 보다 빠르다.
👍 HTTP는 HTTPS 보다 트래픽이 적게 발생한다. 👉 상대적으로 적은 비용으로 유지 가능
👎 HTTP는 보안에 취약하다. 👉 민감한 정보를 다룰 때에는 항상 해킹, 변조의 가능성을 생각해야 한다.

HTTPS

👍 HTTPS는 네트워크 상에서 열람, 수정이 불가능하므로 인터넷을 안정하게 이용할 수 있다.
👎 HTTPS는 설치 및 인증서를 유지하는 데에 추가적인 비용이 든다.

❗참조 및 출처❗
[Web]HTTP와 HTTPS 및 차이점
HTTPS의 동작 원리

0개의 댓글