L'errore non è nel protocollo, è nelle persone . O, discutibilmente, negli strumenti , chi dovrebbe gestire le questioni che sono troppo tecniche per gli utenti umani per fare correttamente.
Il protocollo SSL indica come vanno le cose e che la connessione sarà sicura, in particolare contro Man-in-the-Middle attack :
- The negotiation of a shared secret is secure: the negotiated
secret is unavailable to eavesdroppers, and for any authenticated
connection the secret cannot be obtained, even by an attacker who
can place himself in the middle of the connection.
Ma questo contiene solo se il protocollo è veramente seguito fino in fondo, e, in particolare, se la convalida della chiave pubblica del server non è "scorciatoia".
Pertanto non c'è nulla da cambiare nel protocollo . Quando gli strumenti non implementano correttamente il protocollo, l'errore di solito risiede negli strumenti, non nel protocollo.
Potremmo obiettare che se i browser consentono ancora di bypassare l'avviso di "certificato scadente" (sebbene tale avviso sia aumentato nella scarsità rossastra nel corso degli anni), ciò potrebbe indicare che i presupposti del protocollo non sono realisticamente sostenibili. Vale a dire, richiedendo che tutti i server Web abbiano un certificato SSL che i browser client possono validare potrebbe essere un po 'troppo chiedere. Ma, onestamente, la sicurezza deve iniziare da qualche parte . La crittografia non crea trust, trasferisce fiducia . Non puoi avere un protocollo che garantisca che il client parlerà sempre con il server "giusto" senza avere, almeno, una nozione precisa di cosa "giusto" significhi in quel contesto.
Se il phishing o MitM attacca con un falso certificato del server, cliccato dall'utente, diventa troppo diffuso, prevedo che i produttori di browser rimuovano del tutto il bypass e applichino la rigorosa convalida X.509. Vedremo tra qualche anno.