Forskare har redogjort för sina framsteg i vidareutvecklingen av BitCracker, ett GPU-drivet verktyg för att knäcka lösenord som är byggt speciellt för att bryta BitLocker, den fullständiga diskkryptering som finns inbyggd i Microsoft Windows.
I en vitbok (PDF) som nyligen publicerades av Elena Agostini, mjukvaruingenjör på Nvidia, och Massimo Bernaschi, teknikchef vid Italiens nationella forskningsråd (CNR), beskrivs BitCracker som en lösning som är utformad för att ”försöka dekryptera minnesenheter som krypterats av BitLocker med hjälp av en ordboksattack”.
BitCracker släpptes första gången i december 2015 och har utvecklats kontinuerligt sedan dess.
Dictionary attack
BitLocker är Microsofts implementering av kryptering av hela hårddiskar, som först släpptes som en uppgradering till Windows Vista 2007. BitLocker är kompatibel med Trusted Platform Modules (TPM) och krypterar data som lagras på disken för att förhindra obehörig åtkomst vid enhetsstöld eller programvarubaserade attacker.
BitLocker To Go fungerar på samma sätt för externa enheter, t.ex. USB-enheter.
Tekniken använder 128 bitars AES-kryptering som standard, men detta kan konfigureras till 256 bitar för en förhöjd säkerhetsnivå.
Då BitLocker använder höga nivåer av AES-kryptering förlitar sig BitCracker på högpresterande grafikprocessorer (GPU:er) för att göra en ordboksattack genomförbar.
Mjukvaran är tillgänglig för open source-communityt och nås via GitHub.
En OpenCL-implementering av BitCracker integrerades med det populära lösenordshackningsverktyget John The Ripper, version Bleeding-Jumbo, som släpptes förra året.
”BitLocker-dekrypteringsprocessen kräver exekvering av ett mycket stort antal SHA-256-hashes och även AES, så vi föreslår en mycket snabb lösning, mycket anpassad för Nvidia GPU, för båda dessa”, förklarar forskarna.
BitCracker har testats med tre Nvidia GPU-arkitekturer: Kepler, Maxwell och Pascal.
HÖR NU SwigCast, episod 2: ENCRYPTION
Bitar och bitar
BitLocker använder sig av två olika autentiseringslägen: ett användarlösenord eller ett återställningsläge, där användaren antingen skriver in ett lösenord för att kryptera eller dekryptera en enhet eller använder en 48-siffrig återställningsnyckel som genereras av BitLocker för att få tillgång till sitt innehåll.
Under krypteringen krypteras varje sektorvolym individuellt med hjälp av en Full-Volume Encryption Key (FVEK) och Volume Master Key (VMK), varav den senare också krypteras och lagras i volymen.
Om en enhet har krypterats med användarlösenordsmetoden, till exempel, hittar du i volymmetadata två krypterade VMK:er – en krypterad med användarlösenordet och en krypterad med återställningslösenordet.
Under dekrypteringen börjar BitLocker dekryptera VMK, sedan FVEK och sedan själva disken.
BitCracker-verktyget fokuserar på att dekryptera en VMK-nyckel, vilket avslöjar ett lösenord som kan dekryptera en enhet.
En ordboksattack utförs och utnyttjar GPU-prestanda och kraft. SHA-256-standarden omvandlar meddelanden till så kallade ”W-block” innan de hashasheras, och för att skynda på saker och ting skapade teamet en förberäkningsanläggning för vissa uppsättningar av W-ord, vilket minskar antalet nödvändiga aritmetiska operationer genom att skapa en rainbow lookup table. Detta kan dock inte tillämpas på andra SHA-256-uppställningar.
Du kanske också gillar Verktyg med öppen källkod hjälper till att upptäcka säkerheten hos molncontainrar
För att ytterligare öka hastigheten på potentiella attacker kunde Agostini och Bernaschi också ta bort MAC-beräkningar och jämförelser.
BitCrackers prestanda jämfördes mot en annan populär lösenordsknäckare, Hashcat, med en Pascal GPU.
Teamet erkänner att jämförelsen inte är helt rättvis, eftersom Hashcat inte använder BitCrackers W-block-funktioner eller MAC-beräkning.
Hashcat klarade dock 3 290 miljoner hashes per sekund (MH/s), ett resultat som enligt forskarna är ”jämförbart med BitCrackers bästa prestanda på samma GPU”.”
BitLockers komplexa krypteringsprocess innebär att det finns en gräns för hur många lösenord som kan testas samtidigt.
I forskningsrapporten föreslås dock att med en enda högklassig GPU är det teoretiskt möjligt att över 122 miljoner lösenord kan testas på bara 24 timmar.
”Resultaten visar att BitCracker kan konkurrera med en toppmodern lösenordsknäckare när det gäller rå prestanda på de grundläggande beräkningskärnorna samtidigt som den är den enda som tillhandahåller specifika genvägar för att påskynda BitLocker-dekrypteringsproceduren”, förklarar forskarna.
Framtida utveckling
Det finns begränsningar för BitCracker. Verktyget kan för närvarande bara utvärdera lösenord med mellan åtta och 27 tecken, och användarna måste tillhandahålla sin egen inmatningsordbok.
Det är dessutom så att BitLocker ofta används tillsammans med en TPM i företagsmiljöer i stället för att enbart förlita sig på ett användarlösenord, så angreppen kan begränsas till konsumentuppsättningar eller kanske till enskilda personer i vissa organisationer i stället för till företagsgemensamma installationer.
Som påpekats av Reddit-användaren och GitHub-medarbetaren Rarecoil är det också så att verktyget är flera år gammalt, och både ordböcker och optimerade regeluppsättningar har nu avancerat bortom BitCrackers attackomfång.
Agostini och Bernaschi har också föreslagit metoder för att förbättra BitCracker i framtiden, bland annat genom att lägga till en attack med maskeringsläge eller genom att tilldela smarta sannolikheter till inmatningsordböcker för att påskynda processen.