인증서없이 Https를 사용할 수 있습니까?


9

최근 Google 인프라 팀에서 개발 팀에 https 용 인증서가 필요하지 않다고 말했습니다. 그들은 인증서를 구매할 때 얻을 수있는 유일한 이점은 올바른 웹 사이트에 연결하고 있다는 것을 소비자에게 안심시키는 것입니다.

이것은 https에 대해 가정 한 모든 것에 위배됩니다.

Wikipedia를 읽고 https를 구성하려면 신뢰할 수있는 인증서 또는 자체 서명 인증서가 필요하다고 언급합니다.

이 구성없이 HTTPS에 대응하기 위해 IIS 할 수 있는 인증서?


7
이것은 단지 통신 문제 일 수 있습니다. 서버에 자체 서명 된 인증서가 준비되어있을 것입니다. : 덧붙여, 당신이 공개 인증서 신뢰 사용하여 방지이 경고의 m86security.com/kb/article.aspx?id=13446 사용자 환경에 허용 할 수도 있고하지 않을 수 있습니다. 나는 그것이 단순한 마음의 평화 이상이라고 말하고 싶습니다-공개 웹 사이트에서 그것은 전문성의 표시입니다!
Dan

5
자체 서명 인증서는 암호화를 제공하지만 중간 공격에서 사람을 보호 할 수는 없습니다. 트래픽을 가로 채서 해독하는 사람에 대해 자체 서명 한 인증서에 대해 유효하지 않거나 확인되지 않은 인증서에 대해 동일한 경고가 표시되므로, 데이터를 훔치고 다시 암호화하여 클라이언트로 돌아갑니다.
바트 실버 스트림

1
"자체 서명 된 인증서는 암호화를 제공하지만 사용자가 대역 외 메커니즘에 의해 명시 적으로 자체 서명 된 인증서를 신뢰할 수있는 경우가 아니면 중간 공격 [...]에서 사람으로부터 보호 할 수 없습니다. 이러한 대역 외 메커니즘을 통해 사용자를 아는 소규모 사용자에게는 현실적으로 만 가능합니다. 실제로는 그렇지 않습니다.
Bruno

또는 처음으로 신뢰하면 향후 변경 될 경우 경고를받습니다. SSH 서명과 마찬가지로 실제로.
mfinni

1
기술적으로 SSL / TLS에는 통신 채널을 보호하기 위해 인증서가 필요 하지 않습니다 . 실제로 SSL / TLS는 pgp 인증서, 사용자 이름 / 암호, 사전 공유 키 또는 "익명"(인증 없음)과 같은 다른 메커니즘을 사용하여 채널을 보호 할 수 있습니다. 마찬가지로 SSL / TLS는 암호화를 보장하지 않으며 "널 (null)"(암호화 없음)을 포함하여 사용할 수있는 여러 가지 사이퍼가 있습니다. 다이제스트 인증에는 비슷한 옵션이 있습니다. 그래서 그것은 훌륭하지만 프로그램이 그것을 사용하는 것 : 기본적으로 전혀 없음, 확실히 주요 서버 또는 브라우저 소프트웨어 없음 (모두 인증서 필요).
Chris S

답변:


24

아니요. 인증서가 있어야합니다. 자체 서명 할 수 있지만 서버와 클라이언트간에 세션 대칭 키를 교환하여 데이터를 암호화하려면 공개 / 개인 키 쌍이 있어야합니다.


다른 답변에서 언급했듯이 익명의 Diffie-Hellman은 인증서없이 연결을 허용했지만 최신 OpenSSL 버전은 일반적으로 ADH를 지원하지 않고 컴파일됩니다.
Brandon Rhodes

12

요컨대, 시스템 배포 방법에 따라 미묘한 경우가있을 수 있습니다.

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)과 함께 확인할 수있는 인증서를 사용하십시오.


1

인증서없이 https를 사용할 수 없습니다. 신뢰할 수있는 인증서를 구입하거나 테스트를 위해 자체 서명 된 인증서를 작성해야합니다. https를 사용하도록 웹 서버를 구성하는 과정에서 웹 서버가 올바른 키 파일을 가리 키도록하는 것입니다. 물론 이것은 iis뿐만 아니라 모든 웹 서버에 적용됩니다.


OpenSSL이 인증서없는 연결을 지원할 수 있는지 테스트하려면 다음 openssl ciphersADH같은 프로토콜을 실행 하고 찾아보십시오. ADH-AES256-SHA이러한 프로토콜이 있으면 인증서를 사용하지 않고도 기술적으로 연결을 설정할 수 있습니다.
Brandon Rhodes
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.