Hoe het werkt
De sterkte van een willekeurig gegenereerd wachtwoord hangt niet af van of het "ingewikkeld lijkt", maar van hoeveel mogelijke combinaties de generator had om uit te kiezen. Dat aantal wordt uitgedrukt in bits entropie: elke bit verdubbelt het werk van een aanvaller. Een wachtwoord van 20 tekens met kleine letters, hoofdletters, cijfers en symbolen komt uit een alfabet van 94 tekens en heeft ongeveer 131 bits; met 8 tekens uit hetzelfde alfabet zakt dat naar 52 bits, die een GPU-farm in enkele dagen doorloopt.
Wachtwoordzinnen ruilen tekens in voor woorden. Deze tool gebruikt de lange lijst van de EFF met 7776 woorden (6⁵, de combinaties van vijf dobbelstenen), dus elk woord voegt 12,9 bits toe. Vijf woorden geven 64,6 bits, evenveel als 10 volledig willekeurige tekens, maar ze zijn veel makkelijker te onthouden en te typen, wat telt voor het hoofdwachtwoord van een wachtwoordmanager of schijfversleuteling.
Alles wordt in je browser gegenereerd met crypto.getRandomValues, de cryptografische generator van het besturingssysteem, en rejection sampling zorgt ervoor dat geen enkel teken vaker voorkomt dan een ander. De gegenereerde wachtwoorden en het wachtwoord dat je in de laatste kaart controleert verlaten je apparaat niet, en de controle wordt ook niet in de deellink opgeslagen.
Voorbeelden
20 · a-z A-Z 0-9 !@#…≈ 131 bits20 × log₂(94). Zelfs bij 10 miljard pogingen per seconde zou het doorlopen van de helft van de combinaties ongeveer 4,6 × 10²¹ jaar duren.5 × EFF≈ 64,6 bits5 × log₂(7776). Tegen een snelle hash zou een GPU gemiddeld zo'n 45 jaar nodig hebben; als de site wachtwoorden met bcrypt opslaat, meer dan 45 miljoen.8 · a-z A-Z 0-9 !@#…≈ 52 bitsAcht tekens zijn niet meer genoeg als er een snelle hash uitlekt: bij 10 miljard pogingen per seconde is de helft van de ruimte in ongeveer 85 uur doorzocht.PIN · 61 000 000 · ≈ 19,9 bitsEen pincode is alleen veilig omdat het apparaat of de bank het aantal pogingen beperkt. Bij 100 pogingen per uur zou het proberen van de helft van de combinaties ongeveer 208 dagen duren; zonder limiet een oogwenk.Gebruiksscenario's
- Unieke wachtwoorden per account maken en ze opslaan in een wachtwoordmanager.
- Een wachtwoordzin kiezen voor wat je uit je hoofd moet typen: het hoofdwachtwoord van de manager, schijfversleuteling of het inloggen op je computer.
- Servicegegevens, API-sleutels of databasewachtwoorden genereren voor configuratiebestanden en secretmanagers.
- Startwachtwoorden voor nieuwe gebruikers in bulk maken, zonder dubbelzinnige tekens, zodat ze zonder fouten te dicteren of van papier te lezen zijn.
- Je aanpassen aan systemen met vreemde regels door symbolen weg te laten die ze niet accepteren, zoals aanhalingstekens of backslashes.
- Controleren of een wachtwoord dat je al gebruikt voorspelbaar is voordat je besluit het te wijzigen.
Veelgestelde vragen
Hoeveel bits heeft een wachtwoord nodig?
Voor een webaccount met een limiet op inlogpogingen is 60 bits ruim voldoende. Kan het geheim offline worden aangevallen, bijvoorbeeld het hoofdwachtwoord van een wachtwoordmanager of een sleutel die een versleuteld bestand beschermt, mik dan op 80 of meer. Boven 128 bits is er geen praktische winst: dat is al onbereikbaar voor elke denkbare aanvaller.
Is een lang wachtwoord veiliger of een met symbolen?
Het lange. Van 62 naar 94 mogelijke tekens gaan, dus symbolen toevoegen, levert 0,6 bit per teken op; één teken extra levert ruim 6 bits op. Daarom vraagt het NIST in richtlijn SP 800-63B dat sites lange wachtwoorden accepteren en stoppen met samenstellingsregels zoals "minstens één symbool".
Waarom gebruikt de wachtwoordzin Engelse woorden?
Omdat de EFF-lijst is samengesteld voor wachtwoordzinnen: gangbare woorden, geen beledigende termen, makkelijk te typen en geen woord is een voorvoegsel van een ander, wat dubbelzinnigheid voorkomt als je ze zonder scheidingsteken aan elkaar plakt. De veiligheid hangt niet af van de taal maar van de grootte van de lijst en van een willekeurige keuze; een aanvaller mag de hele lijst kennen en moet nog steeds 7776 opties per woord proberen.
Waarom beoordeelt de controle anders dan de entropie?
Omdat ze iets anders meten. Entropie geldt voor willekeurig gegenereerde geheimen, waarvan het exacte proces bekend is. Een door een mens bedacht wachtwoord is bijna nooit willekeurig: "Argentina2024!" heeft 14 tekens van vier soorten, maar het is een woordenboekwoord, een jaartal en een symbool aan het eind, precies wat crackprogramma's als eerste proberen. De controle zoekt naar zulke patronen en schat hoeveel pogingen er echt nodig zouden zijn.
Is het veilig om wachtwoorden op een webpagina te genereren?
Dat is het als de berekening in je browser gebeurt en er niets wordt verstuurd, wat hier het geval is: open de ontwikkelaarstools en je ziet dat het netwerktabblad geen uitgaande gegevens registreert; de enige download is de woordenlijst, de eerste keer dat je een wachtwoordzin opvraagt. Voor de meest kritieke inloggegevens is het toch ideaal ze te laten genereren door de manager waarin je ze opslaat, zodat het wachtwoord nooit via het klembord gaat.
Waarom dubbelzinnige tekens uitsluiten?
Omdat in veel lettertypen 0 en O, of 1, l en I bijna identiek zijn, en een wachtwoord dat iemand van papier moet lezen of telefonisch moet dicteren uiteindelijk verkeerd wordt overgenomen. Ze weglaten verkleint het alfabet en de entropie per teken een beetje, wat je compenseert door één of twee tekens langer te kiezen.