Qualcuno lo ha definito rivoluzionario: la potenza di calcolo di un supercomputer sulla scrivania di casa. Quasta nuova cartteristica dei computer domestici prende forma in un particolare componente hardware: la GPU, Graphics Processing Unit, ovvero la scheda video dal costo di poche centinaia di euro.

I ricercatori della Georgia Tech Research Institute (GTRI) sono allo studio di come questa nuova potenza di calcolo può compromettere i sistemi di sicurezza. In particolare si sta studiando come può essere compromesso il sistema di sicurezza delle password, una parte molto critica dell’infrastruttura di sicurezza di un qualunque sistema informatico.
Usando schede video (di fascia alta, ovvero con costo e potenza più elevati) attualmente in commercio il verdetto finale è: le password di 7 caratteri sono inadeguate per proteggere i propri dati e aree riservate. Come se non bastasse la potenza delle schede video è in costante crescita, per cui presto saranno vulnerabili anche quelle di 8 caratteri.
Progettate per elaborare l’enorme mole di dati richiesti dai giochi 3D di ultima generazione le GPU top di gamma attualmente in commercio hanno una potenza di calcolo vicina ai 2 Teraflops (2000 miliardi di operazioni in virgola mobile al secondo). Per rendersi conto di quale potenza si sta descrivendo, basti pensare con nel 2000 il computer più veloce al mondo (un insieme di macchine dal costo totale di 110 milioni di dollari) aveva una potenza di calcolo di poco superiore ai 7 teraflops.
In un certo senso si può dire che le moderne schede video e in particolare le GPU, sono così potenti perche sono progettate imitando l’architettura dei supercomputer del passato con la sostanziale differenza di essere grandi come una moneta da 10 centesimi di euro!
Nel calcolo parallelo un problema viene suddiviso in problemi più piccoli assegnati poi a unità di calcolo distinte. Queste unità di calcolo prendono il nome di Core. Ad ogni core vengono quindi assegnati parti più piccole dello stesso problema iniziale e quindi il lavoro simultaneo dei diversi core concorre alla risoluzione in pochissimo tempo del complesso problema iniziale.
Fino a pochi anni fa le GPU multi-core (prodotte principalmente da Nvidia Corp e AMD-ATI) erano destinate a lavorare su problemi di grafica e tutto ciò che andava oltre tale compito era difficilissimo da sviluppare: ogni problema doveva essere ricondotto a un problema di grafica e quindi risolto. Questa operazione è molto difficile se non addirittura impossibile.
Lo scenario è radicalmente cambiato nel Febbraio 2007 quando Nvidia a rilasciato un importante SDK (software-development kit) che consentiva ai programmatori di sviluppare direttamente sulla GPU utilizzando il noto linguaggio C. Dopo questo rilasci l’interesse mondiale per questi componenti hardware è esploso: “se sai scrivere un programma in C adesso sai programmare la GPU!”
Questa nuova capacità di sviluppo mette nelle mani di molte persone strumenti hardware e software prima accessibili solo investendo ingenti somme di denaro. Questa condizione potrebbe minacciare la sicurezza delle password perché, applicando quello che gli esperti di sicurezza chiamano “attacco a forza bruta” o “brute forcing”, si può arrivare a scoprire una password in pochi giorni se non addirittura poche ore!
Il brute forcing è una tecnica di attacco estremamente semplice, consiste nel tentare di scoprire la password provando una dopo l’altra tutte le possibili combinazioni di caratteri. Tale tecnica applicata a un dizionario di comuni password (ad esempio “admin“, “password“, “123456“, “pippo“, ecc.) permette di scoprire la propria password in brevissimo tempo.
Chi esegue un attacco basa la propria ricerca sul fatto che molte persone usano solo caratteri minuscoli, date di nascita e, quando la persona da attaccare è conosciuta, sostantivi e nomi della vita di quella persona!!!!
Il maggiore punto forza in nostro possesso per la realizzazione di password “più sicure” è quello di usare più caratteri. Infatti con una tastiera di 95 caratteri utilizzabili, ogni caratteri in più che usiamo, fa crescere di un fattore 95 la complessità della password.
Ad esempio se usiamo solo numeri per la nostra password, come può essere la data di nascita, abbiamo le seguenti combinazioni:
- con 1 carattere ho 10 possibili scelte,
- con 2 caratteri ho 10 x 10 = 100 scelte,
- con 3 caratteri ho 10 x 10 x 10 = 1’000 scelte,
- …
- con 7 caratteri ho 10 x 10 x 10 x 10 x 10 x 10 x 10 = 10’000’000 scelte.
Se il mio PC è in grado di processare 1 miliardo di password al secondo, in poco meno di un secondo si riesce a scoprire la password di 7 caratteri!!!
Infine se usiamo una sequenza dell’insieme dei possibili 95 simboli della tastiera, abbiamo:
- con 1 carattere ho 95 possibili scelte,
- con 2 caratteri ho 95 x 95 = 9’025 scelte,
- con 3 caratteri ho 95 x 95 x 95 = 857’375 scelte,
- …
- con 7 caratteri ho 95 x 95 x 95 x 95 x 95 x 95 x 95 = 69’833’729’609’375 scelte.
Usando i numeri di questo esempio se il mio PC è in grado di processare 1 miliardo di password al secondo, in poco meno di un giorno si riesce a scoprire la password di 7 caratteri!!!
Se vogliamo incrementare la sicurezza della nostra password oltre che sulla lunghezza dobbiamo agire sull’insieme di simboli usati. In pratica creare una password che contiene lettere maiuscole (‘A’,…,’Z'), minuscole (‘a’,…,’z'), numeri (’0′,…,’9′) e simboli (come ad esempio ‘!’, ‘$’, ‘%’, ‘£’, ‘@’, ecc.) la rende difficilmente attaccabile.
Si potrebbe obiettare dicendo che una password come questa “h4jl32!hg6%)H£GDJG@@” è di difficile memorizzazione! Avete ragione! Tuttavia per usare tanti caratteri come password possiamo scegliere invece che una parola, una frase! Ad esempio “Questa è la mia 1a password!” potrebbe essere un buon esempio di password: lunga, con numeri e simboli compresi gli “spazi”. L’ordine di grandezza dei tentativi necessari per arrivare a scoprire questa password è di 9528 = 2,378 x 1055.
Ovviamente se poi lasciamo un bel bigliettino attaccato al monitor con su scritta la password come promemoria …bhé,… che dire….!
Chi cerca metodi per aumentare la sicurezza dei propri sistemi usa anche altre tecniche più o meno complesse come ad esempio bloccare l’account al terzo tentativo errato; non accettare tentativi di login che distano nel tempo meno di 2 secondi, non accettare più login che provengono da uno stesso indirizzo IP dopo un certo numero di tentativi, scadenza della password ogni mese/settimana o per certi servizi bancari ogni 3 ore, ecc.
In pratica tutte queste tecniche fanno crollare il numero di tentativi possibili al secondo.
Il discorso cambia radicalmente se vogliamo trovare la password per decifrare un documento protetto nel qual caso molte delle tecniche sopra menzionate non sono applicabili e “la forza bruta” può vincere la battaglia in pochissimo tempo!