• TLS 위에서 동작하는 HTTP
    • 종단간 암호화 (E2E 암호화)
  • HTTP 메시지를 암호화하여 주고 받음

보안이란?

  • 서버 인증
    • 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함
  • 클라이언트 인증
    • 서버는 자신이 진짜 사용자임을 알 수 있어야 함
  • 무결성
    • 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함
  • 암호화
    • 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함

동작 방식

  • 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.
    • 인증서의 내용
      • 내용 이상 없음
      • 위조되지 않음
      • 서명 기관이 믿을 만함
  • 클라이언트는 해당 인증서를 검증하고, 이상이 없다면 HTTPS 커넥션을 시작한다.
  • 클라이언트가 무작위 수(대칭키, 세션키)를 생성한 뒤, 인증서에 함께 온 공개키로 암호화하여 서버에 전달
  • 서버는 개인키로 암호화된 값을 해독하여 대칭키를 얻음
  • 이 후, 해당 대칭키를 가지고 서로 통신함
    • 왜 비대칭키를 쭉 수용하지 않고 대칭키만을 사용할까?
      • 비용 때문에
      • 비대칭 암호화 방식은 안전하나, 키를 두개 운용해야 하고 복잡하다는 단점이 있음

Reference