Der findes stadig kodeord, som er krypteret ved hjælp af hash-funktioner som MD5 og SHA1, der i sin tid var en klar forbedring over at lagre kodeord i klar tekst. Men i dag kan man med simple værktøjer afprøve milliarder af kodeord pr. sekund, og derfor skal der meget mere til for at beskytte kodeordene.
Kodeord er stadig den primære metode til at sikre, at kun en bestemt bruger får adgang til bestemt information i et it-system, men kodeord er kun så sikre, som den tid det tager for en hacker at gætte en brugers kodeord.
Når man er oppe mod milliarder af beregninger pr. sekund i pc'er med flere kraftige grafikkort, så er der to steder, man kan øge sikkerheden. Man kan enten sørge for, at hvert forsøg kræver flere beregninger, eller man kan sørge for, at dét, der skal gættes, er helt tilfældigt.
»Nu om stunder anbefaler vi ikke længere at bruge ord, men derimod tilfældigt genererede tekststrenge på eksempelvis 22 tegn. Det vil være stort set umuligt at knække, fordi det vil give en entropi på mere end 120 bit,« siger sikkerhedsekspert Jarno Niemelä fra F-Secure til Version2.
Entropi er kort fortalt et mål for, hvor stor en mængde af vilkårlige kombinationer af tegn, kodeordet tilhører, og siger dermed noget om sandsynligheden for, at kodeordet kan gættes blot ved at afprøve tilfældige kombinationer.
Traditionelle retningslinjer for kodeord har været, at de skulle have en vis længde, indeholde store og små bogstaver, tal og måske specialtegn.
I praksis giver det kodeord, som er vanskelige for brugerne at huske og indtaste. Det øger risikoen for, at de skriver dem ned på gule lapper på skrivebordet eller gemmer dem i filer på deres computer. Alternativt vælger brugerne kodeord, som ikke er helt tilfældige, men alligevel opfylder kravene.
Et kodeord som 'Lukmigind;1337' vil opfylde kravene i mange systemer, men det følger én kombination ud af et par hundrede velkendte opskrifter, som brugerne ofte forfalder til at bruge:
Stort begyndelsesbogstav, velkendt sætning, et almindeligt specialtegn, fire cifre - og endda en meget populær cifferkombination.
Det kan opstilles som en regel, hackeren kan bruge til at mutere den ordliste med velkendte kodeord, som fodres til værktøjer som Hashcat eller John the Ripper.
»Du kan lave snesevis af variationer af din ordliste ud fra de regler, de fleste bruger til deres kodeord,« siger Jarno Niemelä.
Verdenslitteraturen hjælper hackere
For nogle år siden var den mest almindelige fremgangsmåde at bruge en ordliste, som bestod af kodeord, folk havde brugt i it-systemer. Det var ordlister, der var dukket op i forbindelse med hackerangreb. Analyser af disse lister viste, at halvdelen af brugerne i mange tilfælde brugte kodeord, der var lette at gætte.
Kodeord som 'password', '123456' og 'letmein' viste sig at være de mest populære. Siden da er ordlisterne blevet udvidet med mange flere kodeord fra det virkelige liv, ordlister fra ordbøger på flere sprog, samt sætninger fra verdenslitteraturen.
Ved at analysere frit tilgængelige tekster som eksempelvis Bibelen har hackere og sikkerhedseksperter genereret lister med et par milliarder 'passphrases'.
En passphrase er en sætning, der bruges som kodeord. 'letmein' er en meget simpel passphrase, mens 'NedeiFruHansenskælderkanmankøbefrikadeller' er en længere version. Ikke alle systemer tillader så lange kodeord, og derfor er det et almindeligt råd at forkorte det til 'NiFHkkmkf'.
Tidligere har denne type kodeord givet tilstrækkelig sikkerhed, men selv med udskiftninger af store og små bogstaver eller tilføjelse af tal, så udgør de menneskeskabte varianter en meget lille og forudsigelig delmængde af det samlede antal vilkårlige kombinationer af tegn.
Flere algoritmer kan være en god idé
Hash-algoritmer er envejsfunktioner, som kan bruges til at kryptere et kodeord. Dermed kan i eksempelvis en webapplikation nøjes med at opbevare hashværdien og ikke selve kodeordet i klartekst. Når brugeren indtaster sit kodeord, skal det resultere i en hashværdi, der matcher den, der ligger i databasen.
Problemet er, at når en hacker får adgang til en webserver, så får hackeren adgang til både hash-funktionen og hashværdierne. Ved at køre hash-funktionen på mulige gæt på kodeordet og sammenligne dem med de hash-værdier, der ligger i databasen, så kan man gætte kodeordet.
Derfor er det vigtigt, at det tager lang tid at forsøge sig frem på denne måde. Af samme grund er man i dag gået væk fra hash-algoritmer, som kan afvikles ekstremt hurtigt på moderne grafikprocessorer.
Det er imidlertid ikke så mange år siden, at det var almindeligt blot at bruge én af disse hurtige algoritmer, eventuelt sammen med en tilfældig tekststreng for hver enkelt bruger, et såkaldt 'salt', for at undgå, at hackere kunne have udregnet hashværdierne for en stor mængde kodeord på forhånd – en såkaldt 'rainbow table'.
Nyere algoritmer som bcrypt, pbkdf2 eller pbmac kan konfigureres til at kræve mange flere beregninger pr. forsøg. Det kræver derfor også mere regnekraft på webserveren, hvis den skal håndtere mange logins. Til gengæld er det meget sværere for hackere at knække kodeordene.
Men for webudviklerne kan udskiftning af hash-funktionen give en udfordring. De kender ikke brugernes kodeord, og derfor er det ikke bare ligetil at konvertere kodeordet fra en usikker hash-funktion til en sikker.
»Når du skifter hashfunktion, så er du nødt til at kryptere alle de gamle kodeord på ny. Det var dét, Ashley Madison ikke gjorde, så 11 millioner kodeord var krypteret med MD5,« forklarer Jarno Niemelä.
Hvis man blot skifter algoritme og så venter på, at brugerne logger på næste gang og derefter lagrer kodeordene med den nye algoritme, så får man ikke skiftet det for alle de brugere, som er inaktive.
Som udvikler kan man komme uden om problemet ved at bruge to hash-funktioner oven på hinanden.
»Det er ingen synd at bruge flere algoritmer. Man kan stable dem som Lego-klodser. Jeg anbefaler faktisk, at man bevarer hash-funktioner,« siger Jarno Niemelä.
På den måde bliver eksempelvis MD5-hashværdien kørt gennem en nyere algoritme som bcrypt. Det kan også være et godt trick at kombinere eksempelvis bcrypt og scrypt, fordi bcrypt er veldokumenteret, men også kan løses hurtigere med grafikprocessorer end scrypt, som så til gengæld ikke er helt så afprøvet.
Lav aldrig dit eget kodeord
Der findes i dag et stort udbud af password managers, som er små programmer, hvor brugeren kan lagre unikke, tilfældige, stærke kodeord til forskellige tjenester, som de kan låse op med ét enkelt kodeord.
Det er en metode, som flere sikkerhedseksperter er begyndt at anbefale, fordi det sikrer, at man ikke genbruger kodeord på tværs af tjenester, ligesom det netop giver stærke kodeord til alle tjenesterne.
Ulempen er, at man enten har sine kodeord liggende hos en central tjeneste, som potentielt kan kompromitteres, eller man har kodeordene liggende lokalt og mister dem, hvis man glemmer sit masterkodeord eller mister alle sine enheder.
Kombineret med to-faktor-autentificering, som det kendes fra eksempelvis NemID's nøglekort eller sms-beskeder hos Google, Facebook eller Microsoft, kan man øge sikkerheden betydeligt, og reducere behovet for at skulle huske mange forskellige kodeord.
En af de kritiske tjenester, man især bør sikre, er den e-mailadresse, man bruger til tjenester, når man eksempelvis skal nulstille sit kodeord. Hvis en hacker får adgang til mailkontoen, så kan hackeren nulstille kodeord til de tilknyttede tjenester.
Derfor bør man bruge to-faktor-autentificering på sin e-mailadresse, og så kan det være en god idé med en separat e-mailkonto.
»Jeg har en ekstra e-mailkonto, som bare videresender mails, som jeg kun bruger til login,« siger Jarno Niemelä.
Selvom det ikke i sig selv øger sikkerheden i forhold til at bryde ind på mailkontoen, så gør det den mindre eksponeret end en offentligt kendt mailadresse.

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.
Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.
Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.
Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.