Grote kans dat als u dit leest, u vanochtend met een wachtwoord bent ingelogd. Nog een grotere kans dat dit wachtwoord aan allerlei eisen moest voldoen: lengte, speciale tekens en waarschijnlijk ook een hoofdletter. Maar waar komen deze eisen vandaan? En waarom leveren die eisen alsnog geen goede wachtwoorden op? In deze eerste van een serie van 3 blogposts neemt AP-technoloog Jonathan Ellen u mee in de wereld van het wachtwoord.
U kent vast het dilemma: hoe ingewikkelder uw wachtwoord, hoe moeilijker dit is om te onthouden. Dat geldt des te meer als u veel wachtwoorden gebruikt. Het gevolg? Korte wachtwoorden die op papier ingewikkeld lijken, maar in werkelijkheid gebaseerd zijn op simpel te raden patronen.
In deze eerste blogpost bekijken we wachtwoorden vanuit het perspectief van een computercrimineel. Zo leert u wanneer een wachtwoord écht sterk is. En waarom wachtwoorden dat in de praktijk meestal niet zijn.
In de volgende blogpost gaan we dieper in op hoe u sterke wachtwoorden in de praktijk gebruikt. Later komen ook andere methoden voor digitale toegangscontrole aan de orde, waaronder meerfactorauthenticatie (MFA).
De kunst van het achterhalen welk wachtwoord op een bepaalde plek is gebruikt, heet 'kraken'. Dit gebeurt door verschillende opties te proberen, net zolang tot er een werkend wachtwoord wordt gevonden.
Het kraken van wachtwoorden kost tijd en geld. Dus hoe langer de crimineel erover doet, hoe minder rendabel de operatie wordt. De tijd die het kost om een wachtwoord te kraken, hangt af van de tijd die iedere poging kost en het totaal aantal benodigde pogingen.
Over het algemeen worden wachtwoorden niet leesbaar opgeslagen. Er wordt alleen een bewerkte versie ervan bewaard, de zogeheten hashwaarde. Het berekenen van die hashwaarde kost tijd. Als gebruiker merkt u hier niets van als u inlogt. Maar voor criminelen wordt na miljarden inlogpogingen de tijd vanzelf een belangrijke factor.
Criminelen gaan online te werk, bijvoorbeeld bij een inlogportal van een bedrijf of website. In dat geval spelen bijkomende eisen een rol, zoals een maximaal aantal inlogpogingen. Het komt ook voor dat databases met hashwaarden van wachtwoorden lekken. Deze kunnen offline worden gekraakt.
In deze blogpost gaan we ervan uit dat de crimineel een database heeft buitgemaakt met inloggegevens, waaronder hashwaarden van wachtwoorden. De gebruikte hashingmethode is ook bekend. Het kraken van deze wachtwoorden is dus slechts een kwestie van tijd. Maar hoeveel tijd?
De simpelste aanval in het arsenaal van een crimineel is alle mogelijkheden te proberen. Dit heet een 'brute force'-aanval. Je begint bij 'a' en berekent de bijbehorende hashwaarde. Komt deze in de lijst voor? Dan weet je dat 'a' een geldig wachtwoord is. Staat 'a' niet in de lijst? Dan probeer je 'b'. Net zolang tot je een werkend wachtwoord gevonden hebt.
Het voordeel van een brute force-aanval is dat je geen wachtwoorden overslaat. Je probeert ze immers allemaal. Het nadeel is dat een brute force-aanval heel lang kan duren, mits de wachtwoorden sterk zijn.
Ter illustratie kraken we een aantal wachtwoorden. De totale tijd hangt onder andere af van de gebruikte hashingmethode en rekenkracht. Mijn thuiscomputer haalt ongeveer 400 miljoen pogingen per seconde (op een Nvidea 1060GTX, gebruikte hashingmethode md5).
Betere computers halen nog veel hogere snelheden en dit zal in de toekomst alleen nog maar toenemen. De volgende resultaten zijn dus de absolute ondergrens.
Lettertekens > |
6 |
7 |
8 |
9 |
Alleen kleine letters |
0 s |
2 s |
50 s |
20 min |
Kleine letters en hoofdletters |
5 s |
4 min |
3,5 uur |
ca. 8 dagen |
Kleine letters, hoofdletters, getallen |
13 s |
14 min |
ca. 15 uur |
ca. 40 dagen |
Ook leestekens |
3 min |
ca. 5 uur |
ca. 18 dagen |
ca. 5 jaar |
Bedenk: in deze tijden zijn alle wachtwoorden geprobeerd, van 'a' tot bijvoorbeeld 'Z#_sB43)X'. Het maakt niet uit hoe moeilijk te raden het wachtwoord was. Of hoeveel getallen en hoofdletters erin zaten. Als het korter is dan 9 tekens, kan mijn thuiscomputer het kraken.
Aan de resultaten is te zien dat een lang wachtwoord beter is dan eentje met veel speciale tekens. Het verlengen van een wachtwoord met slechts 2 kleine letters van 7 naar 9, maakt het kraken wel 600 keer langzamer. Het toevoegen van alle 26 hoofdletters scheelt daarentegen maar een factor 120. Wilt u weten waarom dit zo is, lees dan het kader hierna.
De tijd die het kost om een wachtwoord te kraken, is proportioneel met het totaal aantal mogelijke wachtwoorden. Dat noemen we de wachtwoordruimte. Die wordt berekend als: KL. Waar K staat voor het aantal mogelijke lettertekens en L voor de lengte. De wachtwoordruimte van 6 kleine letters is dus 266 en die van 8 kleine letters is 268. Een verlenging met 2 tekens zorgt dus voor 262 = 676 keer meer mogelijkheden. Ter vergelijking: de mogelijke lettertekens uitbreiden met 2 leestekens zorgt voor (28/26)6 keer meer mogelijkheden.
Dit komt doordat de wachtwoordlengte L in de exponent van de vergelijking staat. Hierdoor zorgt een langer wachtwoord voor exponentiele groei van de wachtwoordruimte. Die groeit dus veel sneller dan met meer speciale tekens. Uiteraard is een combinatie van lengte en speciale tekens het sterkst.
Ook als u een op papier sterk wachtwoord gebruikt, bent u nog niet veilig. Criminelen hebben meer trucs achter de hand. Mensen zijn namelijk bijzonder voorspelbaar. Zeker als ze proberen om lange wachtwoorden te onthouden.
In plaats van iets volledig willekeurigs, kiezen ze dan al snel voor een jaartal, hun favoriete sportteam of een andere simpele aanpassing, zoals beginnen met een hoofdletter. Iedereen weet dat 'W3lkom2023!' een belabberd wachtwoord is, ondanks de lengte van 11 tekens.
Criminelen maken hier dankbaar gebruik van. Zo hoeven ze het overgrote deel van alle mogelijkheden niet eens te proberen. Ze beginnen met eerder gekraakte wachtwoorden, omdat die vaak worden hergebruikt. Dit heet 'credential stuffing'.
Daarna proberen ze dezelfde lijst nog eens, maar dan aangepast met patronen die veel mensen gebruiken. Met deze 'dictionary attack' is een schrikbarend aantal wachtwoorden te kraken, omdat veel mensen variaties op een enkel wachtwoord gebruiken.
De enige oplossing hiertegen is willekeur, het ontwijken van veel voorkomende patronen. Het liefst in combinatie met een lang wachtwoord. Zo worden de criminelen gedwongen minder snelle, en dus minder lucratieve, opties te gebruiken. Het nadeel is uiteraard dat juist lange, willekeurige wachtwoorden moeilijk te onthouden zijn.
Vrijwel iedereen gebruikt, vaak onbewust, slechte wachtwoorden. De standaard wachtwoordeisen van 8 lettertekens met afgedwongen leestekens en cijfers werken dit in de hand. Die leiden tot korte wachtwoorden vol menselijke patronen.
Het is dan ook aan te bevelen om lange wachtwoorden te gebruiken, die zo willekeurig zijn dat een hacker alle opties moet proberen om het wachtwoord te achterhalen.
Helaas zijn juist sterke wachtwoorden voor mensen moeilijk te onthouden. Toch is het noodzakelijk om sterke wachtwoorden te gebruiken. Gelukkig zijn er manieren om sterke wachtwoorden in de praktijk bruikbaar te maken. Daarover leest u meer in de volgende blogpost.