- TLS 위에서 동작하는 HTTP
- HTTP 메시지를 암호화하여 주고 받음
보안이란?
- 서버 인증
- 클라이언트는 자신이 진짜 서버임을 알 수 있어야 함
- 클라이언트 인증
- 서버는 자신이 진짜 사용자임을 알 수 있어야 함
- 무결성
- 클라이언트와 서버는 그들의 데이터가 위조되는 것으로 부터 안전해야 함
- 암호화
- 클라이언트와 서버는 도청 걱정 없이 대화가 가능해야 함
동작 방식
- 서버가 클라이언트에게 인증서를 보내어 자신을 증명한다.
- 인증서의 내용
- 내용 이상 없음
- 위조되지 않음
- 서명 기관이 믿을 만함
- 클라이언트는 해당 인증서를 검증하고, 이상이 없다면 HTTPS 커넥션을 시작한다.
- 클라이언트가 무작위 수(대칭키, 세션키)를 생성한 뒤, 인증서에 함께 온 공개키로 암호화하여 서버에 전달
- 서버는 개인키로 암호화된 값을 해독하여 대칭키를 얻음
- 이 후, 해당 대칭키를 가지고 서로 통신함
- 왜 비대칭키를 쭉 수용하지 않고 대칭키만을 사용할까?
- 비용 때문에
- 비대칭 암호화 방식은 안전하나, 키를 두개 운용해야 하고 복잡하다는 단점이 있음
Reference