Een complex wachtwoord met een combinatie van hoofd- en kleine letters, speciale tekens en cijfers kan je vandaag zonder al te speciale hardware kraken in amper vijf minuten tijd. Ook iets langere wachtwoorden zijn niet onhackbaar.
Het duurt amper vijf minuten om een wachtwoord met cijfers, hoofdletters, kleine letters en speciale tekens te kraken. Dat P@sw00rd geen veilige optie is, vermoedde je hopelijk al, maar een complexe set van tekens zoals Fr13H#&P is eigenlijk niet noemenswaardig beter. Dat blijkt uit interessante berekeningen van Hive Systems. Hive keek daarvoor naar de meest gebruikte technieken om wachtwoorden te beveiligen, gecombineerd met realistische hardware die je vandaag kan inzetten om die beveiliging te kraken.
Hash en MD5
Hoe weet een website of het wachtwoord dat je hebt ingevoerd juist is? Gelukkig houdt een site geen database van wachtwoorden bij waarmee jouw invoer wordt vergeleken, want zo’n lijst zou goud waard zijn voor hackers. In plaats daarvan bewaart een site een hash van je wachtwoord.
Een hash is een reeks van cijfers en letters die wordt berekend door een algoritme. Dat algoritme neemt input zoals P@sw00rd, en past daar een complexe reeks berekening op toe om de hash te verkrijgen. Er zijn verschillende hash-algoritmes, waarvan MD5 niet het veiligste maar wel het populairste is.
MD5 maakt van P@sw00rd de hash 570dce9a02a335b5e71a90471666c499. De precieze werking van zo’n algoritme is niet belangrijk, maar het is wel cruciaal om te weten dat een hash maar in één richting werkt. Er bestaat geen manier om 570dce9a02a335b5e71a90471666c499 via een berekening terug om te zetten naar P@sw00rd.
Met een database van hashes kan een website dus wel controleren of jij het juiste wachtwoord hebt ingevoerd, maar een medewerker of hacker die met de database aan de haal gaat (wat geregeld gebeurt), kan niet plots inloggen op je account. Met de hashes alleen is het wachtwoord niet gekend. De enige manier om toch wachtwoorden te achterhalen, is met brute kracht.
GPU’s van Nvidia
Dat kost tijd. Om van een gestolen lijst hashes wachtwoorden te achterhalen, moet een aanvaller alle mogelijke combinaties van letters, tekens en cijfers door het hash-algoritme halen en nakijken of het resultaat ergens op de lijst staat. Dat was lange tijd een quasi onhaalbare klus: je moet immers miljarden berekeningen uitvoeren.
GPU’s zijn echter heel goed in dergelijke berekeningen, en worden alsmaar beter. Een Nvidia RTX 4090 kan ongeveer 164 miljard hashes per seconde berekenen. Koppel je meer GPU’s aan elkaar, dan vermeerdert ook de rekenkracht. Hive ging voor zijn analyse uit van een relatief goed uitgeruste aanvaller met twaalf Nvidia RTX 4090 GPU’s ter beschikking, goed voor 1,93 biljoen hash-berekeningen per seconde.
Kostenplaatje voor de GPU’s: inclusief btw ongeveer 1.900 euro per stuk, dus 22.800 euro in totaal. Dat lijkt veel, maar cybercriminelen werken vandaag vaak in goed georganiseerde bendes. Met één succesvolle ransomware-aanval op een bedrijf waarbij het slachtoffer losgeld betaalt, hebben ze de investering al terugverdiend.
Aan de slag
Vanaf dan is de rekensom snel gemaakt. Hoeveel unieke combinaties bestaan er van een bepaalde set tekens? En hoe lang duurt het voor een aanvaller om van al die combinaties de hash te berekenen? Met een wachtwoord van zes tekens of minder ben je eraan voor de moeite. Speciale tekens of niet: in minder dan een seconde kan een aanvaller je wachtwoord achterhalen. Acht tekens was lang de standaard. Gebruik je enkel acht cijfers, dan duurt het nog steeds minder dan een seconde. Met een complex wachtwoord heeft de aanvaller met z’n Nvidia-GPU’s ongeveer vijf minuten nodig.
Door één extra teken toe te voegen aan je wachtwoord, vermeerdert het aantal beschikbare combinaties exponentieel. Een complex wachtwoord met negen tekens vereist al negen uur aan rekenwerk door de twaalf GPU’s. Dat is beter, maar nog steeds niet erg veilig.
Vanaf twaalf tekens wordt je wachtwoord stilaan veilig. De hacker met twaalf Nvidia RTX 4090-GPU’s heeft dan al 226 jaar de tijd nodig. Dat klinkt veel, maar is het ook toekomstbestendig? In 2020 maakte Hive z’n berekening een eerste keer, toen op basis van RTX 2080-GPU’s. Drie jaar geleden duurde het ongeveer 34.000 jaar om datzelfde wachtwoord te kraken. Het is niet ondenkbaar dat een wachtwoord met twaalf tekens binnen vijf jaar ook binnen uren of misschien zelfs minuten te kraken valt.
ChatGPT
Hive maakte ter illustratie nog een leuke berekening. Wat als iemand de hardware gebruikt om ChatGPT te trainen, zou inzetten om wachtwoorden te kraken. ChatGPT werd getraind aan de hand van zo’n 10.000 Nvidia A100-GPU’s. Zo’n supercomputer-cluster kan alle wachtwoorden van tien tekens of minder binnen het uurkraken. Een wachtwoord van twaalf tekens blijft maximaal acht maanden overeind. Pas vanaf een combinatie van dertien verschillende tekens duurt het meer dan tien jaar.
Dat klinkt misschien onnozel en is het in vele gevallen ook, maar niet altijd. Jouw en mijn Google-wachtwoord gaat niemand proberen te kraken met een supercomputer, maar is het echt ondenkbaar dat een land HPC-infrastructuur inzet om het wachtwoord te kraken van een vijandige generaal, of onderzoeker in een nucleaire instelling?
Inherent beperkt
De berekeningen toont verschillende zaken aan. De allerbelangrijkste conclusie is simpel: wachtwoorden met acht tekens zijn nooit veilig. Hoe lang een wachtwoord dan wel moet zijn, en hoe je er één verzint dat veilig maar ook bruikbaar is, lees je in dit stuk.
lees ook
Zo kies je het perfecte wachtwoord
Vervolgens valt het op hoe snel rekenkracht wachtwoorden inhaalt. We moeten niet wachten op de kwantumcomputer alvorens zelfs iets langere wachtwoorden ontoereikend worden. Het wachtwoord heeft als concept een houdbaarheidsdatum en die is stilaan in zicht. Gelukkig wordt er naarstig gewerkt aan alternatieven zoals passkeys. Daarmee kan je vandaag al aan de slag bij onder andere Microsoft en Google.
Andere hash
In tussentijd zijn er nog oplossingen. Databases met hashes zullen van tijd tot tijd gestolen worden, dat lijkt onvermijdelijk. Websites kunnen wel andere hash-algoritmes gebruiken dan MD5. Er bestaan verschillende complexe alternatieven die meer rekenkracht vereisen om een hash te berekenen. Met een zwaarder algoritme kan een GPU minder hashes per seconde nakijken, en wordt het mogelijker om wachtwoorden te kraken wanneer een database toch in slechte handen valt. Zolang MD5 populair blijft, en mensen hun wachtwoorden hergebruiken op verschillende websites, blijft de analyse van Hive wel heel relevant.