..
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가 안전하게 연결되는 과정은 다음과 같습니다.
- Client Hello: 클라이언트가 서버로 접속 요청을 보내며 보안 세션을 시작합니다.
- Server Hello: 서버는 보안 세션에 사용할 암호화 방식과 자신의 공개키가 담긴 SSL/TLS 인증서를 보냅니다.
- 인증서 검증: 브라우저는 받은 인증서가 신뢰할 수 있는 기관(CA)에서 발급되었는지 확인합니다. 유효하다면 무작위 대칭 세션키를 생성하고, 서버의 공개키로 이를 암호화하여 보냅니다.
- 복호화 및 세션 수립: 서버는 자신의 개인키로 암호화된 세션키를 복복합니다. 이제 두 주체 모두 동일한 대칭키를 가지게 됩니다.
- 완료: 이후 모든 통신 데이터는 이 대칭키로 암호화되어 전송되며, 서로만 해독할 수 있습니다.
HTTP는 누구나 들여다볼 수 있는 엽서이고, HTTPS는 받는 사람만 열 수 있는 봉인된 금고 속 편지입니다. 특히 로그인을 포함한 개인정보를 다루는 서비스라면 HTTPS는 선택이 아닌 필수입니다.