요컨대, 시스템 배포 방법에 따라 미묘한 경우가있을 수 있습니다.
HTTPS는 HTTP over SSL / TLS이며 인증서없이 또는 X.509 이외의 다른 유형의 인증서와 함께 SSL / TLS 를 사용할 수 있습니다 .
- 익명 암호 스위트 : 인증을 제공하지만 암호화는 제공 할 수 없습니다. RFC 4346 을 인용하려면 : " 익명 Diffie-Hellman은 중간자 (man-in-the-middle) 공격을 막을 수 없기 때문에 권장하지 않습니다. "
- 사전 공유 키 : 원격 ID를 확인하는 자체 메커니즘이 있지만 키의 공유 특성으로 인해 고유 한 문제 세트 (특히 제한된 배치)가 발생합니다.
- Kerberos 암호 제품군 : 클라이언트는 Kerberos 사용자 이름과 비교하여 서버의 ID를 확인할 수 있습니다.
엄밀히 말하면 HTTP over TLS 사양 은 다음과 같이 말합니다.
일반적으로 HTTP / TLS 요청은 URI를 역 참조하여 생성됩니다. 결과적으로 서버의 호스트 이름은 클라이언트에게 알려져 있습니다. 호스트 이름을 사용할 수있는 경우 클라이언트는 MITM (Man-in-the-Middle) 공격을 방지하기 위해 서버의 인증서 메시지에 표시된 서버 ID와 비교하여 호스트 이름을 확인해야합니다.
클라이언트가 서버의 예상 아이디에 대한 외부 정보를 가지고 있다면 호스트 이름 검사를 생략 할 수 있습니다. (예를 들어, 클라이언트는 주소와 호스트 이름이 동적이지만 클라이언트가 서버가 제공 할 인증서를 알고있는 시스템에 연결 중일 수 있습니다.) 이러한 경우, 가능한 인증서 범위를 가능한 한 좁히는 것이 중요합니다. 중간 공격에서 사람을 방지하기 위해. 특수한 경우 클라이언트가 서버의 ID를 단순히 무시하는 것이 적절할 수 있지만 이로 인해 연결이 활성 공격에 개방되어 있다는 것을 이해해야합니다.
즉, X.509 인증서와 함께 사용하기위한 것입니다 (RFC 2459를 참조하고 나중에 RFC 3280 및 5280으로 대체 함 : X.509 인증서가있는 PKI).
Kerberos 암호 제품군을 사용하는 경우 가장 큰 경우가있을 수 있습니다. 서버의 Kerberos 서비스 티켓을 처리하는 것은 원격 당사자의 신원을 확인하기 위해 일반적인 HTTPS의 X.509 인증서와 동일한 목적을 가지고 있다고 가정 할 수 있습니다. RFC 2818의 규칙에는 해당되지 않습니다 ( " 클라이언트에 서버의 예상 ID에 대한 외부 정보가있는 경우 호스트 이름 검사를 생략 할 수 있음 "에 해당 할 수 있음). 완전히 터무니없는. 이것은 일반적인 브라우저가 일반적으로 TLS Kerberos 암호 제품군을 지원하지 않는다고 생각합니다 (SPNEGO 인증을 통해 Kerberos를 지원할 수는 있지만 관련이 없습니다). 또한 이것은 Kerberos 사용이 적합한 환경에서만 작동합니다.
" 올바른 웹 사이트에 연결하고 있다는 소비자의 마음의 평안을주는 것은 "실제로는 그들과 서버 간의 통신을 보호하기위한 핵심 요구 사항 중 하나입니다. 적절한 명명 규칙 (RFC 2818 또는보다 최근의 RFC 6125)과 함께 확인할 수있는 인증서를 사용하십시오.