HTTPS

smc2315·2024년 3월 20일
0

Network

목록 보기
3/4

1. HTTPS

HTTPS는 HyperText Transfer Protocol Secure의 약자로, 웹 통신 프로토콜인 HTTP의 보안 버전을 의미한다. 데이터의 안전한 전송을 위해 사용되며, 웹 사이트와 웹 브라우저 간의 통신을 암호화하여 보호한다.

HTTPS는 대칭키 암호화와 공개키 암호화를 조합하여 작동한다. SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작한다.

1-1. SSL & TLS

SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)은 네트워크 통신에서 보안을 제공하기 위해 사용되는 암호화 프로토콜이다.

SSL

웹의 초기 보안 프로토콜로 개발되었으며, 데이터의 기밀성과 무결성을 보호하기 위해 사용된다. 그러나 SSL은 취약점이 발견되고 개선이 필요하여 TLS로 대체되었다.

TLS

TLS는 다양한 암호화 알고리즘과 키 교환 방법을 지원하여 클라이언트와 서버 간의 안전한 통신을 가능하게 한다. TLS는 주로 HTTPS를 통해 웹 사이트의 보안 연결을 제공하는 데 사용되지만, 다른 프로토콜 및 응용 프로그램에서도 사용될 수 있다.

1-2. 암호화 방식

SSL은 대칭키 방식과 비대칭키 방식을 적절히 섞어서 사용하면서 신뢰도를 높인다. 공개키 방식으로 대칭키를 전달하고, 서로 공유된 대칭키를 가지고 통신하게 된다.

1. 비대칭키(공개키) 방식

  • 공개키와 개인키, 두 개의 서로 다른 키를 사용하여 데이터를 암호화하고 복호화하는 방법

공개키

공개키는 누구나 볼 수 있고, 누구나 사용할 수 있는 키다. 데이터를 암호화하는 데 사용되며, 암호화된 데이터는 해당 공개 키로만 해독할 수 있다.

개인키

개인키는 공개되면 안되는 비밀 키로서 소유자만 알고 있어야 한다. 개인키는 보안이 매우 중요하며, 타인과 공유해서는 안된다.

  • 공개키로 암호화 -> 개인키로 복호화 가능
  • 개인키로 암호화 -> 공개키로 복호화 가능
  • 공개키 방식에서는 데이터 송신자는 수신자의 공개키를 사용하여 데이터를 암호화하여 전송
  • 이 암호화된 데이터는 수신자의 개인키로만 해독할 수 있기 때문에 안전하게 전송된다.

2. 대칭키 방식

  • 데이터를 암호화하고 복호화하는 데 동일한 키를 사용하는 방식
  • 키가 노출되면 제 3자가 쉽게 데이터를 해독할 수 있으므로 키의 안전한 보관이 필요
  • 동일한 키로 암호화, 복호화가 가능하다.
  • 대칭키는 매번 랜덤으로 생성되어 누출되어도 다음에 사용할 때는 다른 키가 사용되기 때문에 안전하다.
  • 공개키보다 빠르게 통신할 수 있다.

1-3. HTTPS 동작 방식

  1. 사이트(서버)는 공개키와 개인키를 만들고, 신뢰할 수 있는 인증 기관(CA)에 자신의 사이트 정보와 공개키를 인증 요청한다.

  2. 인증 기관은 사이트가 제출한 정보를 검증하고, 인증 기관의 개인키로 사이트에서 제출한 정보를 암호화해서 인증서를 제작한다.

  3. 제작된 인증서를 사이트에 발급한다.

  4. 인증 기관은 웹 브라우저에게 자신의 공개키를 제공한다.

  5. 사용자가 사이트에 접속을 요청한다.

  6. 사이트는 인증 기관에서 발급받은 인증서를 사용자에게 전달한다.

  7. 사용자는 브라우저가 인증 기관에게 받은 공개키로 인증서를 검증한다.

  8. 인증서를 해독하여 사이트의 정보와 서버의 공개키를 획득한다.

  9. 획득한 사이트 공개키로 대칭키를 암호화하여 전송한다.

  10. 전송 받은 데이터를 사이트 개인키로 해독하여 사이트도 대칭키를 획득한다.

  11. 안전하게 전달된 대칭키를 사용하여 암호화된 정보를 주고 받을 수 있게 된다.

1-4. HTTPS의 장단점

장점

  • 보안 강화
    웹 사이트와 사용자 브라우저 사이의 통신을 침입자가 건드리지 못하도록 한다.

  • SEO
    구글, 네이버 등 각종 포탈 사이트가 검색 엔진 최적화(SEO: Search Engine Optimization) 관련 내용을 HTTPS 웹사이트에 대해서 적용하고 있다.

단점

  • 성능 저하
    모든 사이트에서 텍스트를 암호화해서 주고 받으면 과부하가 걸려 속도가 느려질 수 있다. 중요한 사이트는 HTTPS로 관리하고, 그렇지 않은 사이트는 HTTP를 사용한다.

  • 한계
    HTTPS를 지원한다고 해서 무조건 안전한 것은 아니다. 신뢰할 수 있는 CA 기업이 아니라 자체적으로 인증서를 발급할 수도 있고, 신뢰할 수 없는 CA 기업을 통해서 인증서를 발급받을 수도 있기 때문이다.

참고

HTTPS란? (동작방식, 장단점)

profile
개발일지

0개의 댓글