posts - 463, comments - 1515, trackbacks - 139

Esempio pratico di errore di sicurezza

Continua la mia saga sugli errori che sono là fuori e non aspettano altro che essere visti.

Questa è la volta di InfoCert, ente certificatore dal 2007 a cura del CNIPA. Questi signori hanno avuto la bella idea di rilasciare il certificato della loro Certificate Authority (CA) su una pagina non protetta, in http.

Perché è sbagliato scaricare una CA da una pagina non protetta? Perché con attacchi del tipo DNS poisoning o http spoofing, un hacker può restituire un certificato fasullo, creato dall'hacker.

Cosa succede quando installiamo una CA che è sotto controllo di un hacker? La disfatta totale. Qualsiasi certificato emesso da quella CA risulta valido. I possibili problemi possono essere i più diversi:

  • Codice firmato con certificati emessi da quella CA possono essere eseguiti senza warning di sicurezza. Via libera a virus..
  • L'hacker può esporre siti clone di quelli reali che appaiono correttamente protetti da certificati validi. Per esempio l'hacker può emettere un certificato per www.miabanca.it clonando il vero sito della banca e hostarlo sul proprio server. Il risultato è che l'utente (che ha la CA falsa) vede il sito dell'hacker www.miabanca.it come valido e passa all'hacker utente/password. Ovviamente questo richiede un attacco di DNS poisoning, che sappiamo però non esserre affatto complesso da attuare in tantissimi casi.

Come doveva essere reso disponibile quel certificato sul sito InfoCert? La CA deve essere su una pagina protetta a sua volta con SSL. Ovviamente il certificato di InfoCert NON può essere protetto da certificati emessi da InfoCert stessa. Come può l'utente validare una pagina di cui non ha ancora il certificato? Semplice, non può. La pagina in questione deve essere protetta con un certificato emesso da una Certificate Authority che sia preinstallata sui browser più diffusi.

C'è un secondo errore, meno grave ma non sottovalutabile. La pagina di InfoCert che rinnova le Smart Card è protetta da un certificato emesso dalla CA di InfoCert. Se andate su quella pagina senza prima aver installato la loro CA, il browser giustamente darà errore. A mio avviso questa pagina dovrebbe mettere in guardia gli avventori raccomandando di installare il certificato InfoCert prima di procedere.

Infine, buona parte della procedura del rinnovo è in http. Questo può nuovamente lasciare spazio ad attacchi di spoofing/injection che modifichino il contenuto html (quindi link a siti non InfoCert).

 

Il cattivo uso dei certificati è ormai purtroppo un brutto costume, ma quando è un ente certificatore a farlo, non è giustificabile.

Perché dire queste cose su un blog? Semplice, perché avvisare per posta elettronica non serve a niente. Invito tutti a mostrare pubblicamente questo genere di errori, affinché possano essere riconosciuti da tutti.
Per esempio un collega americano aveva segnalato questo clamoroso errore a Verisign nel Maggio 2006. Bene, se ora andate su http://www.verisign.net vedrete che l'errore continua ad esserci (il certifcato è emesso per il .com).

Print | posted on giovedì 17 gennaio 2008 13.34 |

Feedback

Gravatar

# re: Esempio pratico di errore di sicurezza

Considerando che la maggior parte delle persone ancora non sa distinguere una connessione HTTPS da una in HTTP non mi sembra un gran probla :-)

Anche perché un hacker potrebbe tranquillamente farsi il suo sito clone della banca (hostato sul suo server), metterlo on-line senza HTTPS, tutto in HTTP. A questo punto il fatto che sulla macchina client che si connette ci sia installato un certificato di una CA fake poco importa per il successo del phishing.

Inoltre potrei comunque acquistare un certificato di sub CA da una CA spacciandomi per una brava persona...a quel punto il mio sito risulterebbe avere un certificato server emesso per es. da Verysign. Ma io sono un farabutto!

E poi quanti si vanno a prendere il certificato pubblico di una CA dal sito della Certification Authority? Di solito aspettano che Windows faccia il prossimo update e installi qualche altro certificato di CA.


Certo per un certificatore è comunque una caduta di stile! :-)

Ciao

Roberto

17/01/2008 23.51 | Roberto
Gravatar

# re: Esempio pratico di errore di sicurezza

Roberto, ti do ragione in parte, molti utenti non sanno distinguere.
Ma come "educarli" se non presentandogli siti che abbiano una decenza di security? Come fargli prendere confidenza se non mostrandogli che banche, enti pubblici e grandi aziende hanno a cuore e usano con saggezza questi strumenti?
Dico "in parte" perchè ci sono tanti utenti che sanno bene che il "lucchetto" o connessione https sono un must per collegarsi alla propria banca. Putroppo il cattivo uso intacca anche le loro piccole certezze.

Per quanto riguarda il certificato comprato da Verisign a falso nome, è proprio uno degli esempi che ho mostrato all'ultima WPC a Milano durante la sessione sull'hacking. E la soluzione esiste ma ancora le banche si ostinano a non implementarla. Parlo dei certificati Extended Validation (EV) per cui è necessaria un'indagine sul richiedente prima di poter emettere il certificato.

Il peggio purtroppo viene dalle università dove non insegnano come si usa un certificato. Diversi atenei italiani hanno pagine in cui spiegano agli studenti come disabiliare il "noioso" warning di Internet Explorer e installarsi la CA dell'università quando potrebbero semplicemente pagare 10$ e installarsi il certificato di una CA già trustata. Vergogna!

IMHO per un certificatore non è una caduta di stile, è semplicemente inaccettabile. La sicurezza è un problema serio che viene regolarmente tradito per un cattivo uso da parte di chi implementa l'infrastruttura, di chi scrive codice, etc. etc.

Ciao! (complimenti per il tuo blog)
18/01/2008 0.23 | Raffaele Rialdi
Gravatar

# re: Esempio pratico di errore di sicurezza

Ovviamente, il link con il certificato sbagliato è https://www.verisign.net/ ;)
18/01/2008 1.08 | Alesssandro Scardova
Gravatar

# re: Esempio pratico di errore di sicurezza

Sono d'accordo con te, Raffaele.
Mi sono sempre chiesto perchè la mia università (Pisa) non comprasse un certificato trusted.
E così mi tocca sempre vedere il "noioso" warning !
Il prossimo semestre avrò un esame con il nome "Architetture Web e Infrastrutture per il commercio elettronico" vediamo se mi insegnaranno qualcosa di interessante sulla sicurezza.

Ciao
19/01/2008 15.30 | Andrea Angella
Gravatar

# re: Esempio pratico di errore di sicurezza

I siti https://www.verisign.net e https://www.verisign.com in realtà richiedono l'installazione dello stesso certificato, che chiaramente risulta valido solo per l'url .com :(
In questo scenario ha più senso creare un altro certificato valido per il dominio .net o chiudere il dominio .net definitivamente?
19/01/2008 17.52 | Dario Santarelli
Gravatar

# re: Esempio pratico di errore di sicurezza

@Andrea. Lo spero proprio
@Dario. Mi domando se ha senso avere https sulla home del .net invece di fare un banale redirect in http sul .com
20/01/2008 12.50 | Raffaele Rialdi

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 7 and 3 and type the answer here:

Powered by: