In breve, no, ma potrebbero esserci casi sottili a seconda di come si desidera distribuire il sistema.
HTTPS è HTTP su SSL / TLS e puoi utilizzare SSL / TLS senza certificato o con certificati di altro tipo rispetto a X.509 .
- Suite di cifratura anonima: possono fornire la crittografia, ma senza autenticazione. Piuttosto inutile per quanto riguarda la sicurezza ... Per citare RFC 4346 : " Anonimo Diffie-Hellman è fortemente scoraggiato perché non può impedire attacchi man-in-the-middle " .
- Chiavi pre-condivise : ha un proprio meccanismo per verificare l'identità remota, ma la natura condivisa delle chiavi comporta una serie di problemi (in particolare una distribuzione limitata).
- Suite di crittografia Kerberos : il client può verificare l'identità del server rispetto al nome principale Kerberos.
A rigor di termini, la specifica HTTP su TLS dice quanto segue:
In generale, le richieste HTTP / TLS vengono generate mediante la dereferenziazione di un URI. Di conseguenza, il nome host per il server è noto al client. Se il nome host è disponibile, il client DEVE verificarlo con l'identità del server come indicato nel messaggio Certificato del server, al fine di prevenire attacchi man-in-the-middle.
Se il client dispone di informazioni esterne sull'identità prevista del server, la verifica del nome host può essere omessa. (Ad esempio, un client potrebbe connettersi a una macchina il cui indirizzo e nome host sono dinamici ma il client conosce il certificato che il server presenterà.) In questi casi, è importante restringere il più possibile l'ambito dei certificati accettabili in per prevenire attacchi nel mezzo dell'uomo. In casi speciali, può essere appropriato che il client ignori semplicemente l'identità del server, ma si deve comprendere che ciò lascia la connessione aperta all'attacco attivo.
In breve, è chiaramente inteso per l'uso con un certificato X.509 (fa chiaramente riferimento a RFC 2459, successivamente sostituito da RFC 3280 e 5280: PKI con certificati X.509).
Può esserci un caso limite quando si utilizzano le suite di crittografia Kerberos. Può essere logico trattare il ticket di servizio Kerberos del server potrebbe avere lo stesso scopo del certificato X.509 nel normale HTTPS, per la verifica dell'identità della parte remota. Non si adatta perfettamente alle regole di RFC 2818 (anche se potrebbe rientrare in " Se il client dispone di informazioni esterne sull'identità prevista del server, il controllo del nome host PUO 'essere omesso. "), Ma non lo sarebbe completamente assurdo. Detto questo, non credo che i normali browser supportino le suite di crittografia TLS Kerberos in generale (un numero può supportare Kerberos tramite l'autenticazione SPNEGO, ma non è correlato). Inoltre, questo funzionerebbe anche solo in un ambiente in cui l'uso di Kerberos è adatto.
" [Dare] la tranquillità dei consumatori che si stanno collegando al sito Web corretto " è in realtà uno dei requisiti chiave per garantire la comunicazione tra loro e il tuo server. Utilizzare un certificato che possono verificare, con le convenzioni di denominazione appropriate (RFC 2818 o più recentemente RFC 6125).