RFC 6066 definisce Indicazione del nome del server come estensione, per cui ai server web virtualizzati può essere fornita un'estensione SNI per sapere quale certificato deve essere presentato.
Si riporta quanto segue sui casi in cui il nome del server indicato non corrisponde a un nome conosciuto (enfasi mia):
If the server understood the ClientHello extension but does not recognize the server name, the server SHOULD take one of two actions: either abort the handshake by sending a fatal-level unrecognized_name(112) alert or continue the handshake. It is NOT RECOMMENDED to send a warning-level unrecognized_name(112) alert, because the client's behavior in response to warning-level alerts is unpredictable. If there is a mismatch between the server name used by the client application and the server name of the credential chosen by the server, this mismatch will become apparent when the client application performs the server endpoint identification, at which point the client application will have to decide whether to proceed with the communication. TLS implementations are encouraged to make information available to application callers about warning- level alerts that were received or sent during a TLS handshake. Such information can be useful for diagnostic purposes.
Qual è il potenziale impatto sulla sicurezza di continuare l'handshake quando viene inviato un SNI non valido? Sto pensando in particolare ai casi in cui viene fornito un dominio interamente o un sottodominio errato. Qual è la logica di compatibilità dietro non rifiutare tali richieste? I miei test limitati hanno dimostrato che l'invio di "microsoft.com" nel campo SNI a un servizio TLS su google.com non ha rifiutato il mio contenuto, mentre fare lo stesso con un servizio abilitato CloudFlare ha causato l'avviso fatale.