..

HTTP vs HTTPS: 보안 통신의 원리와 차이점

1. HTTPS란?

HTTPS (Hypertext Transfer Protocol Secure)는 기존의 HTTP 프로토콜에 데이터 암호화 계층을 더해 보안을 강화한 프로토콜입니다.

2. 왜 HTTPS를 써야 할까? (배경)

HTTP의 한계

HTTP는 데이터를 평문(Plain Text)으로 주고받습니다. 만약 누군가 중간에서 통신 내용을 엿본다면(Intercept), 아이디, 패스워드, 개인정보 등을 그대로 도둑맞을 수 있는 치명적인 보안 취약점이 있습니다.

HTTPS의 해법

HTTPS는 SSL/TLS (Secure Sockets Layer / Transport Layer Security) 프로토콜을 사용하여 클라이언트와 서버 사이의 통신을 통째로 암호화합니다. 이를 통해 제3자가 데이터를 가로채더라도 내용을 읽거나 수정할 수 없도록 철저히 보호합니다.

3. 동작 원리 (SSL 핸드셰이크)

HTTPS가 안전하게 연결되는 과정은 다음과 같습니다.

  1. Client Hello: 클라이언트가 서버로 접속 요청을 보내며 보안 세션을 시작합니다.
  2. Server Hello: 서버는 보안 세션에 사용할 암호화 방식과 자신의 공개키가 담긴 SSL/TLS 인증서를 보냅니다.
  3. 인증서 검증: 브라우저는 받은 인증서가 신뢰할 수 있는 기관(CA)에서 발급되었는지 확인합니다. 유효하다면 무작위 대칭 세션키를 생성하고, 서버의 공개키로 이를 암호화하여 보냅니다.
  4. 복호화 및 세션 수립: 서버는 자신의 개인키로 암호화된 세션키를 복복합니다. 이제 두 주체 모두 동일한 대칭키를 가지게 됩니다.
  5. 완료: 이후 모든 통신 데이터는 이 대칭키로 암호화되어 전송되며, 서로만 해독할 수 있습니다.

HTTP는 누구나 들여다볼 수 있는 엽서이고, HTTPS는 받는 사람만 열 수 있는 봉인된 금고 속 편지입니다. 특히 로그인을 포함한 개인정보를 다루는 서비스라면 HTTPS는 선택이 아닌 필수입니다.