GPU-regnekraft gør menneskeskabte kodeord lette at knække

Screenshot fra programmet Hashcat, som er ét af flere værktøjer, der kan bruges til at gætte kodeord. Illustration: leowolfert/Bigstock
Både brugere og udviklere er nødt til at tage nye midler i brug for at sikre deres adgangskoder, advarer sikkerhedsekspert.

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.

Læs også: Efterretningstjeneste: Drop strikse password-regler

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ä.

Læs også: Programmeringsbrøler gør det let at knække kodeord fra Ashley Madison

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.

Læs også: Bredbåndsvirksomheder om EU-forslag: Konkurrenceforvridende ekspropriation

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.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (9)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Kim Kaos

Problemet er at mange af os har 100+ forskellige programmer og spil på vores enheder og alle kræver individuelt kodeord hvis vi skal være nogenlunde sikre - men hvem ind i helvede kan huske alle disse forskellige kodeord - derfor vælger vi ofte en løsning der gør det nemt at huske selvom vi ved det mindsker sikkerheden.

Vi lyver lidt overfor os selv når de vælger et huskemetode kodeord - nok er de alle forskellige - men de følger et mønster der gør at når vi skal logge på et bestemt program så går det relativt nemt og kun få gange skal vi ty til vores lokale kodeord "huskeseddel"

Hvis jeg skulle huske 8-12 forskellige og tilfældige tegn til 100 forskellige programmer så tror jeg at min hjerne vil koge over.

Hvordan løser vi det problem med bedre sikkerhed og så alligevel gøre det nemt for os selv og hvad gør vi med de programmer som ikke giver mulighed for at generere længere og mere sikre kodeord?

  • 2
  • 0
Martin Storgaard Dieu

Det simple er at have et program til at: 1. Lave lange og tilfældige adgangskoder 2. Kunne indsætte dem i webforms/andre programmer via et master password

Hvad er fordelen? Hvis en side/et program komprimeres, går det ikke ud over alle dine sider/programmer - med mindre det er din Password Manager der skades.

  • 0
  • 0
Bjarke Haack Jørgensen

er en omdiskuteret realitet (D-Wave), men ikke desto mindre er der mulighed for ufattelig regnekraft der kun bliver større. Cloud-computing per demand er ligeledes et godt redskab til at knække koder, så truslen mod dårlig kodeordsadfærd bliver kun mere monumental.

2-way authentication med fysisk dongle er imidlertid et godt værn, så mon ikke vi ser en universel web-ID-dongle engang i nærmeste fremtid...

  • 0
  • 0
Rene Lauridsen

nu er det jo ret nemt at undgå at folk bryder ind med brute force.

hvis et site tillader den samme bruger at forsøge i tusindvis af passwords per minut, ja så kan alt crackes, men hvis sitet tilføjer en logon cool Down time per forfejlet logon, så er brute force ikke længere et issue

  • 0
  • 0
Troels Henriksen
  • 0
  • 0
Peter O. Gram

tilfældigt genererede tekststrenge på eksempelvis 22 tegn. Det vil være stort set umuligt at knække

Nu skal man nok passe på med ikke at komme ind i et loop, hvor skruen strammes og strammes ligesom antallet af wipe-ninger, der skal til for at slette en harddisk. In casu: Hvis hvert tegn vælges tilfældigt af en pulje på 80, så vil blot ni tegn give så mange muligheder, at det nok ikke bliver brute-forcet i dette århundrede. @100 koders problem: En løsning kunne være at operere med et lav-risiko password til alle de steder og programmer, hvor skaden er ret begrænset ved kompromittering (ikke komprimering som en skrev), og så bruge komplicerede, forskellige passwords til ens mailkonti og andre steder, hvor konsekvenserne er store.

  • 0
  • 0
Log ind eller Opret konto for at kommentere