Hvorfor adgangskoder stadig betyder så meget

På trods af mange forsøg på at erstatte dem er adgangskoder fortsat den mest udbredte måde at bevise, hvem man er, på nettet. De fleste af os har konti i snesevis af tjenester, og hver enkelt af dem hviler på, at kun den rette person kender det rette kodeord. Netop fordi adgangskoden ofte er den eneste barriere mellem en fremmed og dine private oplysninger, er det værd at forstå, hvad der gør et kodeord stærkt, og hvordan tjenester bør opbevare det.

En udbredt misforståelse er, at et godt kodeord først og fremmest skal være indviklet, fuldt af tegnsætning og store bogstaver. Virkeligheden er mere nuanceret. Det, der i praksis afgør, hvor svært et kodeord er at gætte, er ikke så meget hvor besynderligt det ser ud, men hvor mange mulige kombinationer en angriber skal igennem for at finde det.

Længde slår indviklethed

Når en angriber forsøger at knække et kodeord, sker det ofte ved at prøve enorme mængder muligheder af automatisk. Modstandskraften mod den slags afhænger af, hvor stort rummet af mulige kodeord er. Og her vejer længde tungere end nogen anden faktor.

Et kort kodeord med mange forskellige tegntyper kan se sikkert ud, men har i virkeligheden ret få kombinationer, fordi det er kort. Et langt kodeord, selv med almindelige bogstaver, har derimod astronomisk mange muligheder, simpelthen fordi hvert ekstra tegn ganger antallet af kombinationer op. Hver gang du tilføjer et tegn, bliver kodeordet markant sværere at gætte, og effekten af længde løber hurtigt fra effekten af at tilføje sære symboler.

Det er baggrunden for, at mange sikkerhedsfolk anbefaler såkaldte adgangssætninger frem for kodeord. En adgangssætning er en række tilfældigt valgte ord, for eksempel fire eller fem ord uden indbyrdes sammenhæng. Den er lang og dermed svær at knække, men samtidig nemmere at huske end en kort streng af tilfældige tegn. Det vigtige er, at ordene er valgt tilfældigt og ikke udgør et citat eller en kendt frase, for det, der kan gættes ud fra sprog og almen viden, giver ingen reel beskyttelse.

Nogle få faldgruber er værd at nævne. Et langt kodeord, der bygger på personlige oplysninger som navne, fødselsdatoer eller dit fodboldhold, er stadig svagt, fordi en angriber, der kender lidt til dig, kan gætte det. Det samme gælder forudsigelige mønstre på tastaturet og almindelige udskiftninger, hvor et bogstav byttes ud med et lignende tal. Tilfældighed og længde går hånd i hånd.

Hvorfor du aldrig bør genbruge kodeord

Selv det stærkeste kodeord mister sin værdi, hvis du bruger det flere steder. Når en tjeneste bliver brudt, og dens kodeord lækker, prøver angribere de samme kombinationer på alle mulige andre tjenester. Bruger du det samme kodeord overalt, kan ét enkelt læk åbne alle dine konti på én gang. Dette er nært forbundet med emnet datalæk, hvor netop genbrug er den faktor, der gør et brud hos én virksomhed til et problem mange andre steder.

Idealet er derfor enkelt at formulere, men svært at efterleve manuelt: et unikt og langt kodeord til hver eneste tjeneste. Ingen kan huske hundredvis af sådanne kodeord, og det er præcis her, en kodeordsmanager kommer ind.

Hvordan tjenester bør opbevare dit kodeord

For at forstå, hvorfor visse læk er værre end andre, hjælper det at vide, hvordan en ansvarlig tjeneste håndterer adgangskoder bag kulisserne. En veldrevet tjeneste gemmer aldrig dit kodeord, som du indtastede det. At opbevare kodeord i klartekst betyder, at enhver, der får fat i databasen, øjeblikkeligt kender alle brugeres kodeord. Det er en grundlæggende fejl.

I stedet gemmer tjenesten et hash af kodeordet. En hashfunktion omdanner kodeordet til en streng af fast længde, og den proces kan i praksis ikke vendes om: man kan ikke regne baglæns fra hashet til det oprindelige kodeord. Når du logger ind, beregner tjenesten hashet af det, du indtaster, og sammenligner med det gemte hash. På den måde behøver tjenesten aldrig at kende dit egentlige kodeord. Selve hashfunktionerne, og hvorfor de ikke kan vendes om, behandles nærmere i afsnittet om kryptografi.

Hashing alene er dog ikke nok. To brugere med det samme kodeord ville ellers få det samme hash, og angribere kunne bruge forberegnede tabeller til hurtigt at slå almindelige kodeord op. Løsningen er en salt: en tilfældig værdi, der er unik for hver bruger og blandes ind i kodeordet, før det hashes. Saltet sikrer, at to ens kodeord giver to forskellige hash, og at de forberegnede tabeller bliver ubrugelige.

Endelig bruger gode systemer bevidst langsomme hashfunktioner, der er designet til kodeord. En almindelig hashfunktion er hurtig, hvilket er en ulempe her, fordi det også gør det hurtigt for en angriber at prøve milliarder af gæt. Specialiserede kodeordsfunktioner gør hvert gæt beregningsmæssigt tungt, så et angreb mod en lækket database bliver langsomt og dyrt. Tilsammen betyder salt og en langsom hashfunktion, at selv et brud ikke umiddelbart afslører brugernes kodeord, i hvert fald ikke de stærke af dem.

Kodeordsmanagere

En kodeordsmanager er et program, der genererer, gemmer og udfylder kodeord for dig. Den gemmer alle dine kodeord i en krypteret hvælving, som du låser op med ét enkelt hovedkodeord. Du behøver derfor kun at huske det ene, stærke hovedkodeord, mens manageren tager sig af resten.

Fordelene er flere. Manageren kan oprette lange, helt tilfældige kodeord, som hverken du eller en angriber kan gætte, og den kan have et unikt kodeord til hver tjeneste uden at du skal huske dem. Mange managere advarer desuden, hvis et af dine kodeord er svagt, genbrugt eller dukker op i et kendt læk. Og fordi manageren typisk kun udfylder kodeordet på den rigtige hjemmeside, yder den en vis beskyttelse mod phishing: står du på en falsk side, vil manageren som regel ikke genkende den og dermed ikke tilbyde at udfylde noget.

Hovedkodeordet bliver naturligvis det vigtigste kodeord, du har, og det fortjener at være langt og helt unikt. En god adgangssætning egner sig fint til formålet. Det er også klogt at beskytte selve manageren med totrinsbekræftelse, så hvælvingen er sikret af mere end blot hovedkodeordet.

Totrinsbekræftelse

Totrinsbekræftelse, ofte forkortet 2FA, tilføjer et ekstra led ud over kodeordet. Tanken er, at du skal bevise din identitet med noget, du ved (kodeordet), og noget, du har (typisk din telefon). Selv hvis nogen får fat i dit kodeord, kan de ikke logge ind uden også at have det andet trin.

Der findes flere former. En engangskode sendt på sms er bedre end ingenting, men også den svageste form, fordi sms kan opsnappes eller omdirigeres. En app, der genererer tidsbaserede engangskoder direkte på din enhed, er sikrere, fordi koden aldrig sendes over nettet. Den stærkeste form er en fysisk sikkerhedsnøgle, en lille enhed du tilslutter eller holder op til telefonen. Sikkerhedsnøgler er særligt modstandsdygtige over for phishing, fordi de teknisk er bundet til den ægte hjemmesides adresse og ikke kan narres til at godkende en falsk side.

Uanset hvilken form du vælger, er det vigtigste at slå totrinsbekræftelse til på dine vigtigste konti. Din e-mail bør stå øverst, fordi den ofte kan bruges til at nulstille adgang til alt andet, efterfulgt af netbank og andre tjenester med følsomme oplysninger.

Det vigtigste at huske

God kodeordssikkerhed kan koges ned til nogle få principper. Gør dine kodeord lange, gerne som tilfældige adgangssætninger, og prioritér længde over indviklede tegn. Brug et unikt kodeord til hver tjeneste, så et enkelt læk ikke vælter resten. Lad en kodeordsmanager generere og huske dem for dig, og beskyt selve manageren godt. Og slå totrinsbekræftelse til, i det mindste på din e-mail og din bank. Det er, hvad tjenesterne ikke kan gøre for dig, men som tilsammen gør dine konti til et svært mål.