Diceware: hoe een paar dobbelstenen een beter wachtwoord maken dan jij

Gepubliceerd op door David Carrero

Denk aan een willekeurig woord. Nu meteen, het eerste dat opkomt.

Wat het ook is, het was niet willekeurig. Het was jouw woord: iets wat je deze week gelezen hebt, een voorwerp dat voor je neus staat, de letter waarmee je naam begint. Als je een mens om toeval vraagt, produceert hij autobiografie. En autobiografie laat zich raden.

Dit is het hele wachtwoordprobleem, in het kort. Het is niet dat mensen lui zijn —dat ook—, het is dat we niet in staat zijn willekeur te produceren. We houden van bepaalde letters, we vermijden herhalingen omdat die “niet willekeurig lijken”, we wisselen zonder het door te hebben klinkers en medeklinkers af, en als er om een getal gevraagd wordt pakken we wat binnen handbereik ligt: data, leeftijden, cijfers met betekenis. Een aanvaller hoeft niet te weten wie je bent om dat uit te buiten. Hij hoeft alleen te weten dat je een mens bent.

Een ingenieur, vijf dobbelstenen en een lijst

In 1995 publiceerde Arnold G. Reinhold op zijn website een methode die hij Diceware noemde. Het idee is zo simpel dat het bijna irriteert dat het uitgelegd moet worden: als het probleem is dat de mens niet willekeurig kan kiezen, neem de mens dan de keuze af.

De hele procedure past in drie regels:

  1. Je gooit vijf dobbelstenen en noteert de uitkomsten op volgorde. Er komt, zeg, 4-2-6-1-3 uit.
  2. Je zoekt 42613 op in een lijst.
  3. Dat is je woord. Herhalen voor het volgende.

De lijst heeft 7.776 ingangen, en dat getal is geen gril: het is 6⁵, alle mogelijke uitkomsten van vijf dobbelstenen. Elke combinatie —van 11111 tot 66666— wijst naar een andere ingang, en er valt er geen buiten de boot en geen dubbel. De oorspronkelijke lijst mengt korte Engelse woorden met wat lettergrepen, cijfers en losse tekens, juist omdat 7.776 goede woorden vinden lastiger is dan het lijkt.

Het belangrijke is niet de lijst. Het is de dobbelsteen.

Waarom 12,9 bits ook echt 12,9 bits zijn

Hier zit het deel dat bijna niemand begrijpt, en het is het enige dat telt.

De entropie van een Diceware-woord is log₂(7.776) = 12,9 bits. Dat is rekenkunde, geen beveiliging: er zijn 7.776 uitkomsten en die hebben allemaal precies dezelfde kans.

Vergelijk dat met wat er gebeurt als jij kiest. Als ik je om een woord vraag uit een woordenboek van 7.776 woorden, lijkt de som dezelfde —ook 7.776 opties— maar dat is ze niet, want jij kiest ze niet met dezelfde kans. Jij gaat gewone woorden kiezen, woorden die je bevallen, woorden die je vandaag gezien hebt. Dat woordenboek heeft 12,9 bits op papier en veel minder in jouw hoofd, en de aanvaller sorteert zijn lijst op frequentie en probeert eerst wat mensen kiezen. Entropie is niet hoeveel opties er zijn: het is hoeveel opties er overblijven als je eraf trekt wat de aanvaller van jouw smaak weet.

Dobbelstenen hebben geen smaak. Ze hebben ook geen geheugen: de dobbelsteen weet niet dat er bij de vorige worp bos uitkwam, dus vermijdt hij geen herhaling, zoekt hij geen variatie, en schaamt hij zich niet als er twee woorden uitkomen die hetzelfde beginnen. Daarom zijn de 12,9 bits van Diceware echte 12,9 bits, en geen optimistisch foldergetal.

En daarom klopt de som naar boven toe. Elk woord telt op:

  • Vijf woorden: ongeveer 64 bits.
  • Zes woorden: ongeveer 77 bits.
  • Zeven woorden: ongeveer 90 bits.

Het is schone optelling, geen magische vermenigvuldiging, want elke worp staat los van de rest. Reinhold raadt aan niet onder de vijf woorden te gaan, en zes of meer voor wat er echt toe doet. Je ziet het effect in de generator: een woord erbij telt altijd hetzelfde op, en dat “altijd” is de hele uitvinding.

Het geheim is niet de lijst

Het bezwaar dient zich vanzelf aan: als de lijst openbaar is, is het dan niet makkelijker te kraken?

Nee, en dat mag rustig langzaam gezegd worden. De 12,9 bits gaan er al van uit dat de aanvaller de lijst heeft. Ze gaan er ook van uit dat hij weet dat je Diceware gebruikt, dat hij weet uit hoeveel woorden je zin bestaat en dat hij de volgorde kent waarin je ze schrijft. Dat is er allemaal al af getrokken. Het enige wat hij niet weet, is wat jouw dobbelstenen gooiden, en dat is precies wat je telt als je “77 bits” zegt.

Het is het tegenovergestelde van wat we doen met P@ssw0rd, waar alle hoop gevestigd is op het idee dat niemand op het idee komt om de a door een @ te vervangen. Men komt erop. Het is een van de eerste regels die elk woordenboekaanvalgereedschap toepast. Als je in de verleiding komt, probeer het dan in de checker en kijk hoe lang het standhoudt.

De EFF en de alternatieve lijsten

In 2016 publiceerde de Electronic Frontier Foundation eigen woordenlijsten voor wachtwoordzinnen met dobbelstenen. De lange lijst houdt de 7.776 ingangen aan —dezelfde vijf dobbelstenen, dezelfde 12,9 bits— maar verandert de inhoud: rare lettergrepen en tekens eruit, gewone woorden erin, makkelijk te typen en goed uit elkaar te houden. Ze publiceerden ook korte lijsten, van 1.296 woorden (6⁴, vier dobbelstenen, 10,3 bits per woord): een met kortere, beter te onthouden woorden, en een die zo is opgezet dat elk woord zich van de andere onderscheidt aan zijn eerste letters en dus automatisch aangevuld kan worden. In ruil daarvoor is elke worp minder waard en moet je vaker gooien.

Het elegante eraan is dat de rekenkunde zich niets aantrekt van iemands smaak. Het aantal ingangen bepaalt alles. Je mag je eigen lijst maken in het Fries, in het Limburgs of in het Klingon: zolang die 7.776 verschillende ingangen heeft en je met dobbelstenen kiest, is elk woord 12,9 bits waard. Het enige wat je met een andere lijst beslist, is hoe prettig je het resultaat vindt, niet hoe veilig het is.

De drie manieren om het te verpesten

Diceware faalt op drie manieren, en alle drie zijn dezelfde fout: de mens die zijn hand er weer in steekt.

  • Opnieuw gooien omdat “die me niet bevalt”. Als je uitkomsten weggooit, gebruik je geen dobbelstenen meer: dan gebruik je je eigen oordeel met een dobbelsteen als decor. Het is wat het is.
  • De woorden herschikken zodat het als een zin klinkt. De volgorde hoort ook bij de worp.
  • Hem “verbeteren” met een ! aan het eind en een hoofdletter aan het begin. Dat voegt niets toe tegenover een aanvaller die weet dat mensen een ! aan het eind en een hoofdletter aan het begin zetten. Moet je aan een stom beleid voldoen, doe het dan, maar denk niet dat je veiligheid gewonnen hebt: die won je door nog een keer te gooien.

En een waarschuwing die Reinhold al gaf: gewone dobbelstenen volstaan ruim —casinodobbelstenen zijn preciezer, maar niet nodig—, gooi bij voorkeur op een glad oppervlak, en het resultaat noteer je zoals het valt.

De samenvatting

Een zin van zes gedobbelde woorden is langer om te typen dan P@ssw0rd, makkelijker te onthouden dan Tr0ub4dor&3 en vele ordes van grootte duurder te kraken dan die twee. Niet omdat hij gezochter is —dat is hij niet, het zijn zes gewone woorden— maar omdat het het enige aan je wachtwoord is dat jij niet besloten hebt.

Dat is de hele grap van Diceware: het beste wachtwoord dat je kunt hebben, is het wachtwoord waar jouw mening niet aan meedoet.


Bronnen: Arnold G. Reinhold, “The Diceware Passphrase Home Page” en zijn lijst van 7.776 woorden (1995) · Electronic Frontier Foundation, woordenlijsten voor wachtwoordzinnen met dobbelstenen (2016) · de rekenkunde is controleerbaar: 6⁵ = 7.776 en log₂(7.776) ≈ 12,92 bits per woord.

← Terug naar de blog