Skip to content
On this page

HTTPS 프로토콜

Title
HTTPS 프로토콜
Category
HTTP
Tags
Aliases
HTTPS 프로토콜HTTPSHTTP Secure
Related
Created
2 years ago
Updated
9 months ago

HTTP vs HTTPS

  • HTTP 프로토콜 의 암호화된 버전(HTTP Secure)이다.
  • 클라이언트와 서버 간의 모든 커뮤니케이션을 암호화 하기 위하여 SSL vs TLS를 사용한다.
  • 이 연결은 민감한 정보를 서버와 안전하게 주고 받을 수 있도록 해준다.
    • 금융 활동이나 온라인 쇼핑

HTTPS 동작 원리

  1. TLS(또는 SSL) handshake
    1. "Client Hello" : 클라이언트는 서버에 메시지를 전송하여 핸드셰이크를 시작한다.
      • 클라이언트가 지원하는 TLS 버전
      • 클라이언트에서 지원되는 암호화 제품군
      • 클라이언트 랜덤(client random) : 클라이언트가 생성한 임의의 바이트 문자열
    2. "Server Hello" : 서버는 Client Hello에 대한 응답을 보낸다.
      • 디지털 인증서
      • 서버가 선택한 암호화 제품군
      • 서버 랜덤(server random) : 서버가 생성한 임의의 바이트 문자열
    3. 인증 : 클라이언트는 서버의 디지털 인증서를 발급한 인증기관을 확인한다.
    4. premaster secret : 클라이언트는 클라이언트 랜덤과 서버 랜덤을 조합해서 premaster secret 값을 만들고, 이를 서버로 전송한다.
    5. 서버는 개인키를 사용해 premaster secret을 복호화한다.
    6. 클라이언트와 서버 모두 클라이언트 랜덤, 서버 랜덤, premaster secret을 가지고 mater secret 값을 만든다. 이 값은 서버와 클라이언트 모두 동일해야 한다.
    7. 이 master secret를 통해 세션 키(session key)를 생성해내며 이 값이 데이터를 암호화하는 대칭키 vs 비대칭키로 사용된다.
  2. 세션
    • 서버와 클라이언트가 데이터를 주고 받을 때, 세션 키를 사용해 대칭키 방식으로 암호화한다.
    • 서버와 클라이언트 모두 세션 키 값을 알고 있기 때문에, 암호화와 복호화가 가능하다.
  3. 세션 종료
    • 데이터 전송이 끝나면 SSL 통신이 끝났음을 서로에게 알려준다.
    • 이 때 통신에서 사용한 대칭키인 세션키를 폐기한다.

References

Released under the MIT License.