De code van deze pagina is niet gestart.

Open je index.html rechtstreeks uit een map, dan worden JavaScript-modules geblokkeerd en gebeurt er niets zodra je een lengte kiest. Serveer de map in plaats daarvan over http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Open daarna http://localhost:8080/.

Wachtwoord & wachtwoordzin — sterk en willekeurig, in je browser gemaakt

Hier gemaakt, door je eigen browser, en nergens naartoe gestuurd. Er wordt niets opgeslagen en er is geen geschiedenis.

Taal: Nederlands
Broncode bekijken
Je wachtwoorden en wachtwoordzinnen worden nooit geüpload. Er is geen server.

Elk teken komt uit crypto.getRandomValues, de eigen cryptografische generator van de browser, en elk woord uit een lijst die als src/wordlist.js in deze map meekomt. Er staat nergens in src/ een fetch, een XMLHttpRequest of een sendBeacon, dus er is geen weg waarlangs een hier gemaakt wachtwoord bij ons of bij wie dan ook terecht kan komen. Er wordt ook niets opgeslagen, waardoor het herladen van deze pagina elk wachtwoord vernietigt dat ze je ooit heeft laten zien.

Live controle: bezig met controleren…

Offline: bezig met controleren…

Je hoeft ons niet op ons woord te geloven: open de ontwikkelaarstools, kijk naar het tabblad Netwerk en druk zo vaak als je wilt op Nog een maken. Geen enkel verzoek draagt één teken van het resultaat mee. Of trek de stekker eruit en ga gewoon door met genereren.

1 Kies wat je wilt maken

Een wachtwoord is een reeks tekens: kort, sterk, en iets wat je in een wachtwoordmanager gaat bewaren. Een wachtwoordzin bestaat uit woorden die willekeurig uit een lijst zijn gekozen: langer om te typen, veel makkelijker te onthouden en hardop te lezen, en het juiste antwoord voor de paar geheimen die je uit je hoofd moet typen, zoals dat van de wachtwoordmanager zelf, dat van je laptop en de herstelcode van je telefoon.

2 Stel het in

Lengte Lengte wint van al het andere. Eén teken toevoegen aan een alfabet van vierennegentig levert meer op dan welke regel dan ook over welke tekens erin moeten voorkomen.

Welke leestekens Deze: . De spatie, de twee soorten aanhalingstekens, het backtick en de backslash zitten met opzet in geen van beide groepen, want ze zijn even willekeurig als de rest en het zijn juist zij die een werkend wachtwoord in een helpdeskticket veranderen.

Minstens één teken uit elke groep Voor het registratieformulier dat erop staat. Het maakt het wachtwoord zwakker en niet sterker, omdat het een deel van de tot dan toe mogelijke wachtwoorden uitsluit; de uitslag hieronder heeft dat er al af getrokken.

Geen tekens die op elkaar lijken Laat I l 1 | en O 0 weg, voor een wachtwoord dat van een scherm gelezen en ergens anders getypt moet worden. Neem er een teken of twee lengte bij om dat te betalen.

Woorden Vier woorden is het bekende plaatje en zit vandaag onder wat het gebruiken waard is. Zes is de verstandige ondergrens voor alles wat ertoe doet, en zeven voor het wachtwoord dat alle andere bewaakt.

Woordenlijst De lange lijst is zes dobbelworpen per woord, dus 12,9 bits per stuk. De korte is vier worpen en 10,3 bits, elk woord erin heeft hoogstens vijf letters en geen woord is het begin van een ander. Dat is de lijst voor een wachtwoordzin die je op een afstandsbediening intypt of van een telefoonscherm afleest.

Tussen de woorden Alleen het willekeurige cijfer voegt hier iets toe, want dat is bij elke voeg een nieuwe keuze en geen regel. Bij de rest gaat het erom wat het vakje accepteert waar je het in plakt: de spatie leest het prettigst en wordt het vaakst verminkt.

Hoofdletters Geen van deze drie voegt sterkte toe, want welke ervan geldt is een regel die iedereen op deze pagina kan nalezen en dus niets wat een aanvaller hoeft te raden. Het staat hier voor het formulier dat een hoofdletter eist.

Laat hem op een leesteken eindigen Voor datzelfde hardnekkige formulier. Het cijfer is een echte keuze en is 3,3 bits waard; het leesteken wordt uit acht getrokken en is er 3 waard.

20
Tekens om uit te trekken

3 Neem het mee

Of maak er meteen meerdere Een gedownloade lijst is een tekstbestand dat deze pagina schrijft uit wat al op je scherm staat. Je browser bewaart het op je eigen schijf en er is niets dat het ergens naartoe stuurt. Toch blijft een bestand vol wachtwoorden op je schijf een bestand vol wachtwoorden: zet ze in een wachtwoordmanager en wis het.

— bits entropie

Een aanvaller zou — mogelijkheden moeten aflopen om het zeker te vinden.

Waar die schatting van uitgaat

Dat de aanvaller het bestand heeft gestolen waarin je wachtwoord is opgeslagen en er op eigen apparatuur honderd miljard gokken per seconde tegenaan gooit, wat ongeveer neerkomt op een rek vol grafische kaarten tegen een snelle hashfunctie, van het soort dat telkens weer in datalekken opduikt. Tegen een fatsoenlijk gekozen wachtwoordhash, bcrypt of Argon2, haalt diezelfde apparatuur een paar duizend per seconde en wordt elk antwoord hierboven ongeveer vijfentwintig bits zwaarder. Tegen een inlogformulier dat tien keer per seconde antwoordt is geen enkele ervan haalbaar.

Het getal is met opzet het pessimistische, en het is het aantal gokken om het zeker te weten; de gemiddelde aanval vindt het antwoord na de helft, en daar rekent de schatting hierboven mee.

1

Hier wordt niets onthouden

Wat deze pagina maakt wordt nooit opgeslagen, nooit opgesomd en nooit verstuurd. Er is geen geschiedenis om te wissen omdat er geen wordt bijgehouden: herlaad de pagina en elk wachtwoord dat ze je ooit heeft laten zien is weg, ook uit haar eigen geheugen. De enige kopieën zijn die van jou, dus het klembord en het tekstbestand als je erom hebt gevraagd.

Als Markdown bekijken

Zo maak je een sterk wachtwoord zonder dat een website het ziet

  1. Kies een wachtwoord of een wachtwoordzin. Een wachtwoord is een reeks willekeurige tekens: kort om te bewaren, vervelend om te typen, en precies wat je nodig hebt voor de honderden accounts die je wachtwoordmanager voor je invult. Een wachtwoordzin bestaat uit woorden die willekeurig uit een lijst zijn getrokken: langer, maar te onthouden en uit te spreken, en dat heb je nodig voor de paar geheimen die je uit je hoofd moet typen, zoals dat van de wachtwoordmanager zelf, dat van je laptop en de herstelcode van je telefoon.
  2. Zet de lengte, of het aantal woorden. Dit is de instelling die ertoe doet en de rest grotendeels niet. Twintig tekens, of zes woorden, is een redelijke ondergrens voor alles wat het beschermen waard is, en ga hoger voor het account waarmee iemand alle andere zou kunnen resetten. De uitslag eronder beweegt mee terwijl je sleept, dus je ziet wat elk extra teken oplevert.
  3. Zet de regels aan waar het formulier op gaat staan. „Minstens één uit elke groep”, een cijfer aan het eind, een leesteken uit de korte lijst die elke site accepteert. Niets daarvan maakt iets sterker, en het eerste maakt het zelfs iets zwakker, wat de pagina er al af heeft getrokken. Maar zo kom je door een registratieformulier zonder er zes achter elkaar te genereren.
  4. Lees het getal, niet de kleur. De bits worden geteld uit de instellingen die de tekenreeks hebben opgeleverd: de grootte van het alfabet, het aantal trekkingen, en verder niets. Dat is een echte meting, anders dan de meter op een registratiepagina, die alleen de tekens voor zich kan beoordelen en onmogelijk kan weten of jij ze koos of een generator.
  5. Kopieer het en zet het ergens neer voor je weggaat. Er is hier geen geschiedenis en geen manier om het terug te vragen, want de pagina herladen vernietigt het. Plak het eerst in de wachtwoordmanager en pas daarna in het registratieformulier, zodat degene die het moet onthouden het al heeft voordat er iets mis kan gaan.
  6. Neem een stapel als je die nodig hebt. De schuifregelaar onderaan maakt er tot honderd tegelijk en bewaart ze als tekstbestand, door deze pagina geschreven uit wat al op je scherm staat. Handig om accounts aan te maken of startgegevens uit te delen, en het is het waard om het bestand te wissen zodra ze op een betere plek staan, want een bestand vol wachtwoorden op je schijf blijft een bestand vol wachtwoorden.

Vragen

Worden de wachtwoorden ergens naartoe gestuurd of opgeslagen?

Geen van beide. Ze ontstaan in je browser, op je eigen apparaat, en dit gereedschap heeft helemaal geen netwerkfunctie: het haalt nooit iets op en stuurt nooit iets weg. Er wordt ook niets in de opslag geschreven: geen localStorage, geen cookie, geen geschiedenis. Herlaad de pagina en elk wachtwoord dat ze je heeft laten zien is weg, van het scherm en uit haar eigen geheugen. In de Content-Security-Policy van de pagina staat elk adres dat ze mag benaderen en geen daarvan is van ons, dus er is nergens waar een wachtwoord verzameld kan worden, ook niet als iets het zou proberen.

Waar komt het toeval vandaan?

Uit crypto.getRandomValues, de generator die browsers leveren voor cryptografisch gebruik, gevoed en steeds opnieuw gevoed door de entropievoorraad van je eigen besturingssysteem. Het is dezelfde bron waaruit de browser zijn TLS-sleutelmateriaal haalt. Math.random wordt nergens in dit gereedschap gebruikt, en dat onderscheid is geen muggenzifterij: Math.random is een snelle rekenkundige generator waarvan de volledige interne toestand uit een paar opeenvolgende uitkomsten valt te reconstrueren. Een wachtwoordgenerator die daarop gebouwd is levert wachtwoorden op die willekeurig lijken en die iedereen die er één van heeft gezien kan opsommen.

Is een wachtwoord uit een browser net zo goed als een uit een programma op je computer?

Wat het toeval betreft wel, want het is in beide gevallen dezelfde bron van het besturingssysteem, alleen via een andere deur bereikt. Wat verschilt is wat er verder in de kamer staat. Een browsertabblad draait naast je extensies, en een extensie die pagina's mag lezen kan ook deze lezen. Dat geldt voor elke webgenerator, deze inbegrepen, en het is de eerlijke reden om de ingebouwde generator van je wachtwoordmanager te gebruiken als je die hebt: het is hetzelfde rekenwerk, in een proces waar minder naast staat. Deze pagina is voor als je er geen bij de hand hebt.

Wachtwoord of wachtwoordzin, wat kun je het beste gebruiken?

Een wachtwoord voor alles wat een wachtwoordmanager voor je typt, want je gaat er nooit naar kijken en lengte kost daar niets. Een wachtwoordzin voor de paar dingen die je uit je hoofd moet typen of hardop moet doorgeven: het hoofdwachtwoord van de manager, de sleutel van je schijfversleuteling, een apparaat dat je op afstand inricht. Zes woorden uit de lange lijst zijn 77 bits, sterker dan een willekeurig wachtwoord van twaalf tekens en oneindig veel makkelijker om om vier uur 's nachts goed in te typen.

Hoe lang moet een wachtwoord zijn?

Twintig tekens uit het volledige alfabet is ongeveer 130 bits, ruim voorbij het punt waarop lengte nog het probleem is. Zestien is prima. Twaalf is de ondergrens voor alles wat je niet kwijt wilt, en dat is de ondergrens en niet het doel. Daaronder vertrouw je erop dat de site het netjes heeft opgeslagen, en twintig jaar meldingen van datalekken raden die gok af. Lengte wint van elke andere instelling op deze pagina: één teken erbij levert meer op dan welke regel dan ook over welke tekens erin moeten staan.

Uit hoeveel woorden moet een wachtwoordzin bestaan?

Uit zes van de lange lijst, en uit zeven als hij andere wachtwoorden bewaakt. Het bekende plaatje met vier woorden is van 2011, is 51 bits waard en ligt vandaag binnen het bereik van een serieuze offlineaanval. Vijf is 64. Zes is 77, meer dan een aanvaller ooit aan een gewoon account besteedt. Elk extra woord uit de lange lijst voegt 12,9 bits toe, en de woorden zijn het enige wat iets toevoegt: de streepjes en de hoofdletters niet.

Wat is een „bit”, en waarom telt deze pagina ze?

Een bit is een verdubbeling. Zestig bits betekent dat er 2^60 even waarschijnlijke uitkomsten waren die deze pagina had kunnen opleveren, dus wie precies weet hoe ze werkt heeft er nog steeds zoveel te proberen. Het is een eigenschap van het proces en niet van de tekenreeks: de pagina kan het exact geven omdat zij degene was die koos en weet hoeveel keuzes ze maakte. Dat is het verschil met de gekleurde balk op een registratieformulier, die de tekens leest en gokt. Op die balk scoort correct horse battery staple slecht en is 44 bits waard, en scoort P@ssw0rd! goed en is bijna niets waard.

Waarom maakt „moet een leesteken bevatten” een wachtwoord zwakker?

Omdat een regel alleen maar mogelijkheden kan wegnemen. Minstens één teken uit elke groep eisen schrapt elk wachtwoord waar er toevallig geen in zat, en een kleinere verzameling mogelijke wachtwoorden is een kleinere verzameling om te doorzoeken. Het effect is klein, ongeveer een halve bit bij een gebruikelijke lengte, en het is echt, en deze pagina trekt het eraf in plaats van het vleiende getal te noemen. Het wordt exact bepaald door de wachtwoorden te tellen die de regel werkelijk toelaat, en niet die ze uitsluit.

Welke woordenlijst is dit, en maakt het uit dat een aanvaller hem kan downloaden?

Het zijn de diceware-lijsten van de Electronic Frontier Foundation, ongewijzigd meegeleverd: 7.776 woorden in de lange en 1.296 in de korte. Ze zijn precies hiervoor gebouwd: niets aanstootgevends, geen homoniemen, geen paren die aan elkaar geplakt een derde woord vormen, en in de korte lijst geen woord dat het begin van een ander is. En nee, het maakt niet uit dat de lijst openbaar is: de sterkte die hier staat gaat ervan uit dat de aanvaller hem heeft, de broncode van deze pagina leest en elke instelling kent die je hebt gebruikt. Het enige wat hij niet weet is welke van de 7.776 er elke keer uit kwam. Juist die aanname maakt het getal te vertrouwen.

Is een wachtwoordzin niet gewoon een woordenboekaanval die staat te wachten?

Niet als de woorden zo gekozen worden. Een woordenboekaanval werkt tegen zinnen die mensen bedenken, want mensen kiezen woorden die bij elkaar passen, in een volgorde die klopt, uit de paar duizend die ze dagelijks gebruiken. Deze pagina kiest elk woord onafhankelijk en gelijk verdeeld uit een vaste lijst, zonder zich erom te bekommeren of het resultaat lekker leest, en daarom leest het meestal niet lekker. Een aanvaller die de lijst en het aantal woorden kent staat nog steeds voor 7.776 tot de macht dat aantal.

Kan ik een wachtwoord terugkrijgen nadat ik de pagina heb verlaten?

Nee, en dat is met opzet. Er wordt nergens iets vastgelegd, dus er valt niets terug te halen: geen geschiedenisvenster, geen lijst met „onlangs gegenereerd”, geen cache. Een generator die je het wachtwoord van afgelopen dinsdag kan laten zien is een generator die het heeft opgeslagen, en opgeslagen waar jij erbij kunt betekent opgeslagen waar iets anders erbij kan. Kopieer het naar een wachtwoordmanager voor je wegklikt.

Is het veilig om het naar het klembord te kopiëren?

Het is het gewone risico, en je kunt het beter kennen dan je erover zorgen maken. Het klembord wordt gedeeld met alles wat onder jouw account draait, het blijft meestal staan tot de volgende kopie, en op sommige systemen wordt het tussen apparaten gesynchroniseerd. Dat is een goede reden om het meteen te plakken waar het hoort en daarna iets anders te kopiëren, en geen reden om in plaats daarvan met de hand een zwakker wachtwoord te typen. Deze pagina kan je klembord niet lezen: ze kan er alleen naartoe schrijven, en alleen als jij op de knop drukt.

Mag ik hetzelfde wachtwoord op meer dan één plek gebruiken?

Nee, en dat is het enige advies op deze pagina dat boven alle andere gaat. Bijna elk account dat wordt overgenomen, wordt overgenomen met een wachtwoord dat eerst ergens anders klopte: een site wordt gekraakt, de lijst wordt gepubliceerd, en hetzelfde adres met hetzelfde wachtwoord wordt overal geprobeerd. Een uniek wachtwoord per site maakt van een datalek één account in plaats van allemaal, en dát is de reden om een wachtwoordmanager te gebruiken, niet de sterkte van een afzonderlijk wachtwoord dat erin staat.

Is het gratis, en heb ik een account nodig?

Het is gratis, er is geen account, geen aanmelding, geen proefperiode en geen grens aan hoeveel je er genereert. De site draagt advertenties en daarvan wordt hij betaald; de advertenties krijgen helemaal niets over wat deze pagina maakt, ook niet hoe lang of hoe sterk het was.

Werkt het offline?

Ja. Laad de pagina één keer, verbreek daarna de verbinding met internet en ze blijft wachtwoorden maken. Het toeval komt van je eigen apparaat en de woordenlijst zit al in de pagina. Het is meteen de eenvoudigste manier om te bewijzen dat er niets wordt opgehaald of verstuurd: een generator die zijn getallen bij een server zou halen, valt stil op het moment dat je de stekker eruit trekt.