[네트워크] | HTTPS

제롬·2023년 1월 29일
0

HTTPS(Hyper Text Protocol Secure)란?

HTTP에 컴퓨터 네트워크 통신 보안을 제공하는 SSL(보안 소켓 계층)을 사용해 클라이언트와 서버가 전송 데이터를 암호화하여 주고 받는 통신규약이다.

HTTPS의 특징

  • 전송 데이터가 암호화되지 않는 단점을 가지고 있는 HTTP의 단점을 SSL을 이용해 보완한 프로토콜이다.

  • HTTPS는 HTTP 자체를 암호화하는 것이 아니라 HTTP를 사용해서 운반되는 내용 즉, HTTP 메시지 바디를 암호화 한다.

  • 이때 HTTP 헤더는 암호화되지 않는다.

SSL이란?

컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약으로 SSL은 과거 명칭이고, 현재는 TLS(Transfer Layer Security - 전송 계층 보안) 이라고 한다.

SSL 특징

  • SSL은 보안과 성능상이 이유로 두가지 암호화 기법을 혼용해서 사용한다. 이때, SSL에서 사용하는 두가지 암호화 기법이 대칭키와 공개키이다.

HTTPS와 SSL

  • HTTPS와 SSL은 같은 의미로 이해하고 있는 경우가 많은데 정확히 얘기하면 다르다고 할 수 있다.

  • 웹이 인터넷위에서 돌아가는 서비스 중의 하나인 것처럼 HTTPS도 SSL 프로토콜 위에서 돌아가는 프로토콜중에 하나일 뿐이다.

[SSL/TLS 프로토콜]

HTTPS가 통신하는 과정

  1. HTTPS를 적용하기 위해서 공개키와 개인키를 만든다.
  2. 신뢰할 수 있는 CA에 내 서버의 공개키를 맡긴다.
  3. CA는 공개키와 개인키를 가지고 있는데 CA의 이름과 내서버의 공개키 그리고 공개키의 암호화 방법 등의 정보를 담은 인증서를 만들고 해당 인증서를 CA의 개인키로 암호화해서 내 서버에게 제공한다.
  4. 내 서버에서 클라이언트로부터 첫 요청이 오면 이 암호화된 인증서를 준다.
  5. 클라이언트는 세계적으로 신뢰할 수 있는 CA공개키를 가지고 있다. CA 리스트에서 인증서에 적혀있는 이름과 같은 CA의 공개키를 찾아서 인증서를 해독해내고 내 서버의 공개키를 얻는다.
  6. 클라이언트는 대칭키를 만들어 내 서버의 공개키를 사용해서 암호화하고 서버로 보낸다.
  7. 서버에서는 내 서버의 개인키로 이를 복호화해서 대칭키를 얻는다.
  8. 이후 클라이언트와 서버가 통신할 때 이 대칭키를 사용해서 정보를 암호화하고 복호화해서 통신하게 된다.

CA란?
공개키를 저장해주는 신뢰성이 검증된 민간기업이다.


[Reference]
생활코딩 - HTTPS
테코블 - HTTP와 HTTPS

0개의 댓글