HTTP와 HTTPS의 차이점 및 SSL 인증서 동작 구조

주소창에 http:// 대신 https://로 시작하는 웹사이트들이 이제 표준이 되었습니다.

구글 역시 HTTPS를 적용하지 않은 사이트에 대해 경고 표시를 띄우고 검색 순위 불이익을 줍니다. 두 프로토콜의 차이와 암호화 방식을 살펴보겠습니다.

1. HTTP와 HTTPS의 결정적 차이

  • HTTP (HyperText Transfer Protocol): 텍스트를 평문(Plaintext)으로 전달하는 방식입니다. 해커가 중간에서 트래픽을 도청(Sniffing)하면 아이디, 비밀번호, 결제 정보가 그대로 노출됩니다.
  • HTTPS (HTTP Secure): HTTP 데이터 전송 과정에 SSL/TLS 암호화 계층을 추가한 방식입니다. 전송되는 모든 데이터가 암호화되므로 도청이나 데이터 변조를 막을 수 있습니다.

2. SSL/TLS 핸드셰이크(Handshake) 동작 원리

HTTPS 연결이 시작될 때 클라이언트(브라우저)와 서버는 데이터를 주고받기 전 안전한 암호화 키를 교환합니다. 이를 대칭키와 공개키의 혼합 방식으로 처리합니다.

  1. Client Hello: 브라우저가 서버에 지원 가능한 암호화 방식 목록을 전달합니다.
  2. Server Hello & Certificate: 서버는 암호화 방식을 선택하고, 공인 CA 기관에서 발급받은 SSL 인증서(공개키 포함)를 브라우저로 보냅니다.
  3. 인증서 검증: 브라우저는 전달받은 인증서가 신뢰할 수 있는 CA에서 발급된 것인지 확인합니다.
  4. 대칭키 생성 및 암호화전송: 브라우저는 실제 데이터 암호화에 쓸 ‘대칭키’를 생성한 뒤, 서버의 ‘공개키’로 암호화하여 서버로 보냅니다.
  5. 안전한 통신 시작: 서버는 자신의 ‘개인키’로 이를 복호화하여 대칭키를 얻고, 이후 모든 통신은 이 대칭키로 암호화하여 주고받습니다.

3. 웹사이트 운영자가 알아두어야 할 점

  • 혼합 콘텐츠(Mixed Content) 주의: HTTPS 사이트 내부에서 이미지나 폰트 경로가 http://로 남아 있으면 브라우저에서 ‘안전하지 않은 요소’ 경고가 뜹니다.
  • 리다이렉트 설정: http://로 접속해 들어오는 유저를 자동으로 https://로 301 리다이렉트 처리하는 서버 규칙 설정이 필수적입니다.

댓글 남기기