Welcome! Everything is fine.

#17. HTTPS란? 본문

CS 스터디

#17. HTTPS란?

개발곰발 2024. 3. 19.
728x90

HTTPS(Hyper Text Transfer Protocol Secure)

 

HTTPS는 보안 계층인 SSL/TLS를 이용해 HTTP의 보안을 강화한 웹 통신 프로토콜이다. SSL(Secure Socket Layer)은 넷스케이프에서 개발한 암호화 프로토콜이다. 이 SSL을 보완해 새로 만든 프로토콜이 TLS(Transport Layer Security)이다. 현재 HTTPS에서 통용되는 방식은 TLS지만, SSL이라는 명칭은 사라지지 않아 SSL 또는 SSL/TLS라고 부른다. HTTPS 이러한 암호화 프로토콜을 통해 데이터 암호화를 거치지 않아 보안에 취약한 HTTP의 약점을 보완하였다. HTTPS에서는 HTTP는 SSL과 통신하고, SSL이 TCP와 통신하게 된다.

SSL/TLS의 암호화 방식

HTTPS는 대칭키 암호화 방식과 공개키 암호화 방식을 둘 다 사용하여 동작한다.

  • 대칭키 암호화 방식 : 데이터의 암호화, 복호화에 모두 같은 키인 대칭키를 이용하는 방식이다. HTTPS 연결 과정에서 사용되는 세션키(주고 받는 데이터를 암호화하기 위한 키)가 대칭키이다. 
  • 공개키 암호화 방식 : 데이터의 암호화와 복호화를 다른 키로 하는 방식이다. 처음 연결했을 때 안전하게 세션키를 공유하는 과정에서 공개키가 사용된다.

HTTP 계층

응용 계층(HTTP)
전송 계층(TCP)
인터넷 계층(IP)
네트워크 인터페이스 계층(네트워크 인터페이스)

 HTTPS 계층

데이터를 송신할 때는 응용 계층 → 보안 계층으로 데이터를 보내고, 보안 계층에서 데이터를 암호화하여 전송 계층으로 전달한다.

데이터를 수신할 때는 전송 계층 → 보안 계층으로 데이터를 보내고, 보안 계층에서 데이터를 복호화하여 응용 계층으로 전달한다.

응용 계층(HTTP)
보안 계층(SSL/TLS)
전송 계층(TCP)
인터넷 계층(IP)
네트워크 인터페이스 계층(네트워크 인터페이스)

HTTPS의 장단점

장점

  • 보안이 뛰어나다.

단점

  • HTTP에 비해 느리다.
  • CPU나 메모리 등 많은 리소스를 필요로 한다.
  • 설치 및 인증서 유지를 위한 비용이 든다.

HTTPS의 장단점에 따라, 보안이 중요한 민감한 정보(로그인이나 결제 시스템 등에서 사용되는 개인 정보)가 필요한 경우에만 HTTPS를 사용하고, 그렇지 않다면 HTTP를 이용하는 것이 합리적일 것 같다.