Sådan laver du en stærk adgangskode (længde slår kompleksitet)
En stærk adgangskode er lang, tilfældig og bruges aldrig på mere end ét sted. Længden betyder mere end kompleksiteten: en adgangskode på 8 tegn med alle tegntyper slået til kan knækkes på få dage, mens en adgangskode på 16 tegn med samme blanding ville tage længere end universets alder ved nutidens angrebshastigheder. Det lyder som en detalje, men det er hele forskellen mellem en konto, der bliver overtaget i weekenden, og en konto ingen nogensinde regner den ud til.
Hvorfor længde slår kompleksitet
Adgangskodens styrke handler om entropi, altså det gennemsnitlige antal gæt en angriber skal bruge, før den rigtige kode bliver ramt. Entropien afhænger af to ting: hvor mange mulige tegn der findes i hver position (tegnsættet), og hvor mange positioner der er (længden).
At tilføje en tegntype flytter kun tegnsættet en smule. Med kun små bogstaver har du 26 muligheder per tegn. Læg store bogstaver og tal til, og du er oppe på 62. Læg symboler til, og du når omkring 95. At gå fra kun små bogstaver til det fulde sæt på 95 tegn ganger dine muligheder per position med cirka 3,7.
At tilføje ét ekstra tegn til længden ganger derimod det samlede antal kombinationer med hele tegnsættets størrelse, ikke bare 3,7. Med et tegnsæt på 95 tegn ganger hvert ekstra tegn det samlede antal kombinationer med 95. Det er derfor en længere adgangskode med et mindre tegnsæt kan slå en kortere adgangskode med alle symboler slået til: længden lægger sig oveni sig selv, kompleksiteten per tegn gør ikke.
Forestil dig det som et hængelåsehjul med flere hakker. At tilføje en tegntype er som at gå fra et hjul med 26 hakker til et med 95, en engangsgevinst. At tilføje et tegn er som at sætte endnu et hjul på hængelåsen, og hvert nyt hjul ganger antallet af mulige kombinationer med samtlige hakker på de foregående. Fire hjul med 95 hakker slår altid ét enkelt hjul med 95 hakker, uanset hvor mange hakker det ene hjul har.
Regnestykket: knækketid efter længde og tegnsæt
Tabellen nedenfor forudsætter en angriber, der kører 10 milliarder gæt i sekundet, et realistisk budget for en moderne GPU-rig, der forsøger at knække en offline kopi af hashede adgangskoder. Antallet af gæt regnes i gennemsnit til at ramme halvvejs gennem det samlede nøgleområde.
| Længde | Kun små bogstaver (26 tegn) | Fuld blanding: store + små bogstaver, tal og symboler (95 tegn) |
|---|---|---|
| 8 | 10,4 sekunder | 3,8 dage |
| 10 | 2,0 timer | 94,9 år |
| 12 | 1,8 måneder | 8.567 århundreder |
| 16 | 691 århundreder | 697,8 milliarder århundreder |
To ting springer i øjnene. For det første er en adgangskode på 8 tegn aldrig sikker mod offline-knækning, selv med alle tegntyper aktiveret: 3,8 dage er inden for rækkevidde for enhver, der virkelig vil have adgang til din konto. For det andet gør springet fra 12 til 16 tegn i det fulde tegnsæt ikke bare en lille forskel, det flytter adgangskoden fra “knækkes i løbet af dette århundrede” til et tal uden praktisk betydning som tidsramme.
Matematikken bag tabellen: entropi i bits er længde × log2(tegnsættets størrelse). En adgangskode på 16 tegn, der bruger alle fire tegntyper, har 16 × log2(95) ≈ 105 bits entropi. Hver ekstra bit fordobler antallet af nødvendige gæt, så entropien stiger hurtigt, når længden øges.
Læg mærke til, at kolonnen med kun små bogstaver stadig ender på 691 århundreder ved 16 tegn, selv uden et eneste tal eller symbol. Det bekræfter pointen: en lang adgangskode uden symboler er langt sikrere end en kort med alle mulige symboler. Det betyder ikke, at symboler er spild af tid, den fulde blanding ved 16 tegn er stadig astronomisk stærkere end lowercase alene, men det viser, hvor lidt tegntypen betyder sammenlignet med antallet af tegn.
Lav en stærk adgangskode
Vælg en længde på 16 tegn eller mere, og lad alle fire tegntyper være markeret for at få mest mulig entropi per tegn. Adgangskoden genereres i din egen browser med Web Crypto API’et, og intet sendes nogensinde til en server.
Almindelige fejl
Forudsigelige erstatninger. At bytte “a” ud med ”@” eller “o” med “0” i et ordbogsord hæver knap nok entropien, for knækkeprogrammer tester allerede den slags erstatninger som standardregler mod hvert ord i deres ordbøger. “P@ssw0rd1” knækkes stort set lige så hurtigt som “password1”.
Genbrug af en stærk adgangskode på flere sider. En stærk adgangskode, der bruges på ti forskellige sider, er kun så sikker som den svageste af de ti. Så snart én af siderne rammes af et databrud, prøver credential-stuffing-bots den samme kombination af e-mail og adgangskode mod banker, e-mailudbydere og sociale medier i løbet af få timer. En unik, nygenereret adgangskode per side begrænser skaden til én konto.
At nøjes med minimumskravet i stedet for at sigte højere. Mange sider kræver kun “mindst 8 tegn, ét tal, ét symbol.” Det er et gulv, ikke et mål. En adgangskode på 8 tegn, der lige akkurat opfylder kravet, kan stadig falde på få dage mod offline-knækning, som tabellen ovenfor viser. Betragt 16 tegn som det praktiske minimum for alt, du ville ærgre dig over at miste.
At opbevare adgangskoder kun i hukommelsen. At forsøge at huske et dusin unikke, tilfældige adgangskoder på 16 tegn ender for de fleste med svage, genbrugte eller let varierede koder. En password manager løser det ved at generere og gemme en unik, stærk adgangskode per side, så du kun skal huske én hovedadgangskode.
Personlige oplysninger og forudsigelige mønstre. Fødselsår, kæledyrsnavne, “qwerty” og talrækker som “123456” dukker øverst op i enhver liste over lækkede adgangskoder, og angribere tester dem først, ikke sidst. Det samme gælder tastaturmønstre der ser tilfældige ud på skærmen, men følger et forudsigeligt geometrisk spor på tastaturet. Rigtig tilfældighed, ikke noget der bare føles tilfældigt, er det, der batter.
Ofte stillede spørgsmål
Er en adgangskode på 20 tegn med kun bogstaver og tal mere sikker end en på 10 tegn med symboler? Ja, med god margin. Længden dominerer entropiformlen. En alfanumerisk adgangskode på 20 tegn har omkring 119 bits entropi mod cirka 66 bits for en adgangskode på 10 tegn, der bruger hele symboltegnsættet, en forskel på omkring 9 billiarder gange flere mulige kombinationer.
Hvor ofte bør jeg skifte en stærk, unik adgangskode? Hvis den er genereret tilfældigt, er unik for netop den ene konto, og der ikke er tegn på et brud, er der ingen sikkerhedsmæssig gevinst ved at skifte den efter en fast plan. Tvunget rotation hver 90. dag, som mange virksomheder stadig praktiserer, får typisk folk til at vælge svagere koder eller bare tilføje et tal for enden, hvilket gør det hele værre. Skift adgangskoden med det samme, hvis tjenesten melder om et brud, hvis du genbrugte den et andet sted før du fik lavet en unik, eller hvis du har mistanke om at den er blevet eksponeret (phishing, nogen der kiggede med over skulderen, eller en kompromitteret enhed).
Er online adgangskode-generatorer sikre at bruge? Det afhænger af, hvor selve genereringen foregår. Dette værktøj genererer adgangskoden helt i din browser med den kryptografisk sikre tilfældighedsgenerator i Web Crypto API’et, så adgangskoden bliver aldrig sendt nogen steder hen, og der er intet for en server at logge eller lække. Undgå generatorer, der laver adgangskoden på en server og bagefter bare viser dig den.
Hvad er en adgangsfrase, og er den bedre end en tilfældig adgangskode? En adgangsfrase sætter flere tilfældige, urelaterede ord sammen (som i diceware-metoden) i stedet for tilfældige tegn. En adgangsfrase på fire ord fra en stor ordliste (omkring 7.776 ord, cirka 12,9 bits per ord) kan nå 40-50+ bits entropi og er langt lettere at skrive og huske end en tilsvarende tilfældig streng. Det er et godt valg til en adgangskode du selv skal huske, som fx den der beskytter en password manager; til alle andre konti er en genereret, tilfældig adgangskode gemt i den samme password manager enklere og stærkere ved samme længde.