Ricercatori hanno delineato i loro progressi nello sviluppo di BitCracker, uno strumento di password-cracking alimentato da GPU costruito appositamente per rompere BitLocker, la crittografia completa del disco integrata in Microsoft Windows.
Un white paper (PDF) recentemente pubblicato da Elena Agostini, ingegnere software di Nvidia, e Massimo Bernaschi, direttore tecnologico del Consiglio Nazionale delle Ricerche d’Italia (CNR), descrive BitCracker come una soluzione progettata per “tentare la decrittazione, per mezzo di un attacco a dizionario, delle unità di memoria criptate da BitLocker”.
BitCracker è stato rilasciato per la prima volta nel dicembre 2015 e da allora è stato continuamente sviluppato.
Attacco a dizionario
BitLocker è l’implementazione di Microsoft della crittografia full-disk, rilasciato per la prima volta come aggiornamento di Windows Vista nel 2007. BitLocker è compatibile con i Trusted Platform Module (TPM) e cripta i dati memorizzati su disco per impedire l’accesso non autorizzato in caso di furto del dispositivo o attacchi basati su software.
BitLocker To Go funziona allo stesso modo per i dispositivi esterni, come le unità USB.
La tecnologia utilizza la crittografia AES a 128 bit per impostazione predefinita, ma questa può essere configurata a 256 bit per un elevato livello di sicurezza.
Come BitLocker utilizza alti livelli di crittografia AES, BitCracker si basa su unità di elaborazione grafica (GPU) ad alte prestazioni per rendere possibile un attacco a dizionario.
Il software è disponibile alla comunità open source e accessibile tramite GitHub.
Un’implementazione OpenCL di BitCracker è stata integrata con il popolare strumento open source di password hacking John The Ripper, versione Bleeding-Jumbo, rilasciato l’anno scorso.
“Il processo di decrittazione di BitLocker richiede l’esecuzione di un numero molto elevato di hash SHA-256 e anche AES, quindi proponiamo una soluzione molto veloce, altamente sintonizzata per la GPU Nvidia, per entrambi”, spiegano i ricercatori.
BitCracker è stato testato con tre architetture GPU Nvidia: Kepler, Maxwell e Pascal.
SENTI ORA SwigCast, Episodio 2: CRIPTATURA
Bits e pezzi
BitLocker utilizza due diversi modi di autenticazione; una password utente o una modalità di recupero, in cui un utente o digita una password per criptare o decriptare un’unità, o utilizza una chiave di recupero a 48 cifre generata da BitLocker per accedere ai propri contenuti.
Durante la crittografia, ogni volume settoriale è crittografato individualmente utilizzando una chiave di crittografia del volume completo (FVEK) e una chiave master del volume (VMK), quest’ultima è anche crittografata e memorizzata nel volume.
Se un’unità è stata crittografata con il metodo della password utente, per esempio, nei metadati del volume troverete due VMK crittografate – una crittografata con la password utente e una crittografata con la password di ripristino.
Durante la decriptazione, BitLocker inizia a decriptare il VMK, poi il FVEK e poi il disco stesso.
Lo strumento BitCracker si concentra sulla decriptazione di una chiave VMK, esponendo una password in grado di decriptare un dispositivo.
Si esegue un attacco a dizionario, sfruttando le prestazioni e la potenza della GPU. Lo standard SHA-256 trasforma i messaggi in quelli che sono noti come “blocchi W” prima di essere sottoposti ad hash, e quindi per accelerare le cose, il team ha creato una struttura di precomputazione per alcuni set di parole W, riducendo il numero di operazioni aritmetiche necessarie creando una tabella di lookup arcobaleno. Questo non può essere applicato ad altre configurazioni SHA-256, tuttavia.
POTREBBE ANCHE PIACERE Strumenti open source aiutano a rilevare la sicurezza dei container cloud
Per aumentare ulteriormente la velocità dei potenziali attacchi, Agostini e Bernaschi sono stati anche in grado di rimuovere il calcolo e il confronto MAC.
Le prestazioni di BitCracker sono state confrontate con un altro popolare password cracker, Hashcat, utilizzando una GPU Pascal.
Il team riconosce che il confronto non è del tutto equo, in quanto Hashcat non utilizza le funzioni W-block di BitCracker o il calcolo MAC.
Tuttavia, Hashcat è stato capace di 3.290 milioni di hash al secondo (MH/s), un risultato che i ricercatori dicono essere “comparabile alle migliori prestazioni di BitCrackers sulla stessa GPU.”
Il complesso processo di crittografia di BitLocker significa che c’è un limite al numero di password che possono essere testate in una sola volta.
Tuttavia, il documento di ricerca suggerisce che con una singola GPU di fascia alta, è teoricamente possibile che oltre 122 milioni di password possano essere tentate in sole 24 ore.
“I risultati mostrano che BitCracker può competere con un password cracker allo stato dell’arte in termini di prestazioni grezze sui kernel di calcolo di base, mentre è l’unico a fornire scorciatoie specifiche per accelerare la procedura di decrittazione BitLocker”, spiegano i ricercatori.
Sviluppi futuri
Ci sono limitazioni a BitCracker. Lo strumento è attualmente in grado di valutare solo le password tra gli otto e i 27 caratteri, e gli utenti devono fornire il proprio dizionario di input.
Inoltre, BitLocker è spesso utilizzato in combinazione con un TPM in ambienti aziendali, piuttosto che fare affidamento solo su una password utente, quindi gli attacchi possono essere limitati alle configurazioni dei consumatori o forse agli individui in particolari organizzazioni piuttosto che alle implementazioni a livello aziendale.
Come notato dall’utente di Reddit e collaboratore di GitHub Rarecoil, è anche il caso che lo strumento ha diversi anni, e sia i dizionari che i set di regole ottimizzati sono ora avanzati oltre l’ambito di attacco di BitCracker.
Agostini e Bernaschi hanno anche proposto metodi per migliorare BitCracker in futuro, tra cui l’aggiunta di un attacco in modalità maschera o l’assegnazione di probabilità intelligenti ai dizionari di input per accelerare il processo.