Em resumo, não, mas pode haver casos sutis, dependendo de como você deseja implantar o sistema.
HTTPS é HTTP sobre SSL / TLS e você pode usar SSL / TLS sem certificado ou com certificados de outros tipos além de X.509 .
- Conjuntos de cifras anônimas: eles podem fornecer criptografia, mas sem autenticação. Bastante inútil no que diz respeito à segurança ... Para citar a RFC 4346 : "o anônimo Diffie-Hellman está fortemente desencorajado porque não pode impedir ataques do tipo intermediário. "
- Chaves pré-compartilhadas : possui seu próprio mecanismo para verificar a identidade remota, mas a natureza compartilhada das chaves traz seu próprio conjunto de problemas (em particular implantação limitada).
- Conjuntos de cifras Kerberos : o cliente pode verificar a identidade do servidor em relação ao nome principal do Kerberos.
A rigor, a especificação HTTP sobre TLS diz o seguinte:
Em geral, as solicitações HTTP / TLS são geradas desreferenciando um URI. Como conseqüência, o nome do host do servidor é conhecido pelo cliente. Se o nome do host estiver disponível, o cliente DEVE verificar a identidade do servidor, conforme apresentado na mensagem de certificado do servidor, a fim de evitar ataques man-in-the-middle.
Se o cliente tiver informações externas quanto à identidade esperada do servidor, a verificação do nome do host PODE ser omitida. (Por exemplo, um cliente pode estar se conectando a uma máquina cujo endereço e nome do host são dinâmicos, mas o cliente conhece o certificado que o servidor apresentará.) Nesses casos, é importante restringir o escopo dos certificados aceitáveis o máximo possível. para impedir o homem no meio ataques. Em casos especiais, pode ser apropriado que o cliente simplesmente ignore a identidade do servidor, mas deve-se entender que isso deixa a conexão aberta ao ataque ativo.
Em resumo, ele é claramente destinado ao uso com um certificado X.509 (faz referência clara à RFC 2459, posteriormente substituída pela RFC 3280 e 5280: PKIs com certificados X.509).
Pode haver um caso extremo quando você estiver usando conjuntos de cifras Kerberos. Pode fazer sentido tratar que o tíquete de serviço Kerberos do servidor possa ter o mesmo objetivo que o certificado X.509 no HTTPS usual, para verificar a identidade da parte remota. Ele não se encaixa perfeitamente nas regras da RFC 2818 (embora possa se enquadrar em " Se o cliente tiver informações externas quanto à identidade esperada do servidor, o nome do host poderá PODER ser omitido. "), Mas não seria completamente absurdo. Dito isto, acho que os navegadores comuns não suportam os conjuntos de cifras TLS Kerberos em geral (alguns podem suportar o Kerberos via autenticação SPNEGO, mas isso não tem relação). Além disso, isso também funcionaria apenas em um ambiente em que o uso do Kerberos é adequado.
" [Dar] a tranqüilidade do consumidor de que ele está se conectando ao site correto " é na verdade um dos principais requisitos para garantir a comunicação entre ele e o servidor. Use um certificado que eles possam verificar, com as convenções de nomenclatura apropriadas (RFC 2818 ou mais recentemente, RFC 6125).