Il post seguente è stato tradotto, previa autorizzazione, da ha.ckers.org
Una veloce riflessione, durante un venerdì pomeriggio. Per un po’ ho chiesto ad amici, parenti e alla gente comune non dedita all’hardcore security, come si colleghino alla propria banca. Di seguito sono riportati i tipi di risposte che ho avuto:
- “scrivo www.bank.com”.
- “scrivo ‘banca’ e premo ctrl-enter”
- “scrivo http://www.bank.com”
- “scrivo bank.com e premo Invio”
Quasi mai (solo due volte su dozzine di persone) ho sentito dire: “scrivo https://www.bank.com”, con la “s”. Quindi cerchiamo di pensare, solo per un secondo, a tutte queste persone. Prendiamo “bank.com” come esempio.
- L’utente scrive bank.com e, a seconda del browser, il comando viene inviato via cavo non appena il completamento automatico abbia inserito HTTP.
- Il browser corregge l’URL di http://bank.com/ e fa una richiesta al DNS per “bank.com”.
- Il server DNS risponde con un indirizzo IP.
- L’utente effettua una richiesta all’indirizzo IP di bank.com su HTTP.
- bank.com risponde con HTTP in chiaro ai browser degli utenti, li informa che dovrebbero essere collegati a www.bank.com e li reindirizza tramite un redirect 301 o 302.
- Il browser dell’utente fa un’altra richiesta DNS a www.bank.com.
- Il server DNS risponde con l’indirizzo IP di www.bank.com.
- Il browser effettua una connessione HTTP a www.bank.com
- www.bank.com si rende conto che l’utente si connette via HTTP e usa un altro redirect per reindirizzare l’utente a https://www.bank.com (o spesso, tramite un link presente nella pagina, si chiede all’utente di autenticarsi tramite HTTPS)
- Il browser dell’utente si ri-connette alla porta 443 e comincia a negoziare – e a questo punto è cifrato (si spera con crittografia avanzata e che non ci siano altri problemi …)
Ci sono un sacco di punti in cui un utente malintenzionato potrebbe inserirsi e combinare pasticci. Quindi, anche se usare l’HTTPS è una buona idea, in pratica, è come le persone ci arrivano che è discutibile. La promessa di STS, HTTPS everywhere e di alcune impostazioni all’interno di NoScript, ecc…; erano di toglierlo dalle mani dell’utente.
Non che queste non siano buone idee, ma ci sono problemi di usabilità e l’utente dovrebbe essere, nella maggioranza dei casi, in qualche modo informato: cosa che, generalmente, non accade.
Fonte: Places to MITM