Scoperta prevedibilità nel generatore di numeri casuali della versione Debian di OpenSSL
venerdì 16 maggio 2008
Una importante falla di sicurezza è stata scoperta nel generatore di numeri pseudo-casuali (PRNG) della versione Debian di OpenSSL. OpenSSL è uno dei più usati software di crittografia, che permette la creazione di connessioni di rete sicure attraverso i protocolli chiamati SSL e TLS ed è incluso in molti programmi per computer famosi, come il browser web Mozilla Firefox e il server web Apache. Debian è una delle più usate distribuzioni GNU/Linux, sulla quale sono basate altre distribuzioni, come Ubuntu e Knoppix. Il problema interessa tutte le distribuzioni basate su Debian che sono state utilizzate per creare delle chiavi crittografiche dal 17 settembre 2006. Il bug è stato scoperto da Luciano Bello, un gestore di pacchetti Debian argentino, e annunciato il 13 maggio 2008.
Questa vulnerabilità fu causata dalla rimozione di due linee di codice dalla versione originale della libreria di OpenSSL. Queste linee servivano alla libreria per raccogliere alcuni dati di entropia, necessari al fine di inizializzare il PRNG utilizzato per creare le chiavi private, sulle quali sono basate le connessioni sicure. Senza questa entropia, l'unico dato dinamico utilizzato era PID del software. In Linux il PID può esser un numero tra 1 e 32'768, che è una gamma di valori troppo limitata se utilizzata per inizializzare il PRNG e causa la generazione di numeri prevedibili. Quindi ogni chiave generata può esser prevedibile, con solamente 32'767 possibili chiavi per una data architettura e lunghezza della chiave, e la segretezza delle connessioni di rete create con queste chiavi è completamente compromessa.
Queste linee vennero rimosse come "suggerito" da due strumenti di audit (Valgrind e Purify) utilizzati per trovare vulnerabilità all'interno del software distribuito da Debian. Questi strumenti avvertirono i gestori Debian che qualche dato veniva utilizzato prima della sua inizializzazione, cosa che normalmente può portare a un bug di sicurezza, ma non era questo il caso, come scrissero gli sviluppatori di OpenSSL il 13 marzo 2003. Ad ogni modo questo cambiamento fu erroneamente applicato il 17 settembre 2006, quando venne rilasciata al pubblico la versione 0.9.8c-1 di OpenSSL di Debian.
Nonostante il gestore Debian responsabile per questo software abbia rilasciato una patch per correggere questo bug l'8 maggio 2008, l'impatto può essere molto grave. Infatti OpenSSL è comunemente utilizzato nel software per proteggere le password, per offrire privacy e sicurezza. Ogni chiave privata creata con questa versione di OpenSSL è debole e deve esser rimpiazzata, incluse le chiavi di sessione che vengono create e utilizzate solo temporaneamente. Questo vuol dire che ogni dato cifrato con queste chiavi può esser decifrato senza un grande sforzo, nonostante le chiavi vengano utilizzate (ma non create) con una versione della libreria non difettosa, come quelle incluse in altri sistemi operativi.
Per esempio un qualsiasi server web funzionante su un qualsiasi sistema operativo potrebbe utilizzare una chiave debole creata su un sistema vulnerabile basato su Debian. Qualsiasi connessione cifrata (HTTPS) a questo server web effettuata da un qualsiasi browser può esser decifrata. Questo può esser un serio problema per quei siti che richiedono una connessione sicura, come le banche o i siti web privati. Inoltre, se qualche connessione cifrata è stata registrata in passato, questa può essere decifrata alla stessa maniera.
Un altro problema serio è per i software di sicurezza di rete, come OpenSSH e OpenVPN, che vengono utilizzati per cifrare il traffico al fine di proteggere le password e fornire l'accesso a una console amministrativa o a una rete privata protetta da firewall. Questo può permettere agli hacker di ottenere l'accesso indesiderato a computer, reti o dati privati che abbiano attraversato la rete, anche se non è stata utilizzata una delle versioni di OpenSSL affette.
Lo stesso discorso può essere applicato ad ogni software o protocollo di rete che utilizzi SSL, come POP3S, SSMTP, FTPS, se usati con una chiave debole. È il caso di Tor, software utilizzato per offrire anonimato forte sul TCP/IP, dove approssimativamente 300 di 1'500-2'000 nodi hanno utilizzato una chiave debole. Con il 15-20% di nodi Tor deboli, c'è una probabilità dello 0,34-0,8% circa di costruire un circuito che abbia tutti e tre i nodi deboli, col risultato di una perdita completa dell'anonimato. Inoltre il caso in cui solo un nodo debole venga impiegato può facilitare alcuni tipi di attacco all'anonimato. Anche i servizi nascosti, una sorta di server pubblici anonimi, sono affetti. Ad ogni modo questo problema è stato prontamente corretto il 14 maggio 2008.
Lo stesso problema ha colpito anche i remailer anonimi come Mixmaster e Mixminion che utilizzano OpenSSL per creare le chiavi del remailer per i server e le chiavi del nym per i client. Anche se attualmente non è stato diramato alcun annuncio ufficiale, almeno due remailer hanno cambiato le loro chiavi perché erano deboli.
Fonti
modifica- H D Moore «Debian OpenSSL Predictable PRNG Toys» – Metasploit Project, 16 maggio 2008.
- Roger Dingledine «The Debian OpenSSL flaw: what does it mean for Tor clients?» – Tor Project Blog, 13 maggio 2008.
- Geoff Thorpe «Avoid uninitialized data in random buffer» – OpenSSL Request Tracker, 13 marzo 2003.
- Frell Remailer Admins «Frell: New keys» – alt.privacy.anon-server, 16 maggio 2008.
- Bananasplit Admin «Banana has new keys» – Remailer Operators Mailing-list, 16 maggio 2008.
Condividi questa notizia: