HTTP Secure의 약자

HTTP에 SSL/TLS 프로토콜을 더한 것

HTTP 요청과 응답으로 오가는 내용을 암호화

wireshark 패킷 분석 프로그램
https://www.wireshark.org/

HTTP wireshark


HTTPS wireshark



암호화 방식

암호화할 때 사용할 키, 암호화한 것을 해석(복호화)할 때 사용할 키가 필요

암호화와 복호화할 때 사용하는 키가 동일하다면 대칭 키 암호화 방식, 다르다면 공개 키(비대칭 키) 암호화 방식

  1. 대칭 키 암호화 방식

    • 공개 키 방식에 비해서 연산 속도가 빠름
    • 키를 주고 받는 과정에서 탈취 당했을 경우, 암호화 무의미. 키 관리 신경
  2. 공개 키(비대칭 키) 암호화 방식

    • 공개 키, 비밀 키
    • 공개 키로 암호화한 데이터 전송, 비밀 키를 가진 사람만 복호화 가능
    • 보안성, 많은 시간 소모

SSL/TLS 프로토콜

HTTPS는 HTTP 통신을 하는 소켓 부분에서 SSL 혹은 TLS라는 프로토콜을 사용하여 서버 인증과 데이터 암호화를 진행

SSL이 표준화되며 바뀐 이름이 TLS

  • 특징
    • CA를 통한 인증서 사용
    • 대칭 키, 공개 키 암호화 방식 모두 사용

인증서와 CA(Certificate Authority)

HTTPS 사용 시 브라우저가 서버의 응답과 함께 전달된 인증서 확인 가능. 인증서는 서버 신원 보증. 인증서를 발급하는 공인된 기관들 - Certificate Authority, CA

서버는 인증서를 발급받기 위해서 CA로 서버의 정보와 공개 키 전달. CA는 서버 공개 키와 정보를 CA의 비밀 키로 암호화하여 인증서 발급.

서버는 클라이언트에게 요청 받으면 인증서 전달. 사용자가 사용하는 브라우저는 CA들의 리스트와 공개 키 내장 중. 인증서가 리스트에 있는 CA가 발급한 인증서인지 확인 후, 리스트에 있다면 해당하는 CA의 공개 키를 사용해서 인증서 복호화 시도.

대칭 키 전달

공개 키 암호화 방식은 보안은 확실하지만, 더 많은 시간 소모. 모든 요청에서 공개 키 암호화 방식을 사용하는 것은 비효율

클라이언트와 서버가 함께 사용하게 될 대칭 키를 주고 받을 때 사용

클라이언트가 서버로 대칭 키를 보낼 때 서버의 공개 키를 사용해서 암호화

클라이언트는 데이터를 암호화하여 주고받을 때 사용할 대칭 키를 생성 -> 대칭 키를 서버의 공개 키로 암호화하여 전달 -> 서버는 전달받은 데이터를 비밀 키로 복호화하여 대칭 키 확보

이제 HTTPS 요청을 주고 받을 때 이 대칭 키를 사용하여 데이터를 암호화하여 전달

댓글남기기