Perchè il protocollo HTTPS non è sicuro come dovrebbe

E’ quasi impossibile implementare il protocollo SSL ( e il suo successore TLS) in modo tale da proteggere completamente gli utenti. SSL riesce solo a fornire un falso senso di sicurezza. E HTTPS (che è una variante del protocollo HTTP che obbliga ad utilizzare SSL) è ancora peggio.

Cominciamo dalle applicazione sviluppate utilizzando SSL. Gran parte delle API (Application Programming Interfaces) forniscono agli sviluppatori meccanismi con cui effettuare connessioni SSL scrivendo solo poche righe di codice, ma le connessioni non vengono validate.

immagine https

HTTPS non garantisce totale sicurezza

La connessione viene stabilita ma non si ha idea con chi si sta comunicando. E il server lo sa ancora meno. Normalmente viene richiesto un qualche tipo di login come meccanismo di autenticazione, ma non esiste alcuna garanzia che nessuna stia agendo da intermediario.

Esistono tantissime applicazioni per scrivere applicazioni SSL completamente insicure. Molte applicazioni verificano che i certificati presentati dai server siano effettivamente firmati, ma non validano gli altri dati che il certificato contiene. Molte altre permettono l’utilizzo di certificati auto firmati, certificati che i “cattivi “ si sono abituati a usare ormai da lungo tempo. Altre applicazioni lasciano che l’utente possa bypassare un certificato non valido, oppure che possa addirittura disabilitare la crittografia, cosa che alcuni incoscienti effettivamente fanno.

Ma chi ha sviluppato HTTPS non era così sprovveduto e infatti questo protocollo prevede, tra le molte altre cose, che la validazione dei certificati debba obbligatoriamente avvenire. Perfetto, peccato che rimanga un grave problema: cosa succede quando un certificato non è valido?

Vedrete un messaggio d’avviso. L’utente medio quasi sicuramente non capirebbe nulla e cliccherebbe a favore dell’entrata nel sito in questione. Gli utenti non vogliono essere distratti dal loro obbiettivo e generalmente non sono troppo paranoici rispetto alla sicurezza, soprattutto quando vedono messaggi che non capiscono e che sembrano suggerire vaghe minacce che spesso si rivelano bolle di sapone.

Il fallimento HTTPS

Tutto questo dimostra che HTTPS è un totale fallimento poiché si basa sul presupposto che il l’utente possa decidere se fidarsi o meno. Bisognerebbe progettare il protocollo, in modo tale da non permettere che potesse essere stabilita una connessione in presenza di un qualsiasi problema di certificati.

Nel caso un certificato non risultasse valido, il relativo sito web dovrebbe essere semplicemente inaccessibile. Solo con questo tipo di politica si potrebbero ridurre i problemi riguardanti la sicurezza della rete.

Articoli correlati:

  1. Un attacco ad una PKI
  2. Budget per lo sviluppo di software sicuro
  3. 4 estensioni per un Firefox più sicuro

Lascia un commento