Kodeord: Så lette at knække at selv en it-journalist kan finde ud af det

Illustration: Virrage Images/Bigstock
I løbet af en enkelt dag lykkedes det en amerikansk it-journalist at opnå hacker-evner på scriptkiddie-niveau og knække 8.000 kodeord.

Det er skræmmende let at knække kodeord, hvis man har adgang til en password-fil med hash-værdierne.

Det satte en amerikansk it-journalist fra Ars Technica for at bevise, og han har dokumenteret sin første dag som 'script-kiddie' i et blogindlæg.

Script-kiddie er en nedsættende betegnelse, som oftest bruges om uerfarne, typisk yngre, personer, som bruger færdige opskrifter og værktøjer til at udføre hacking.

Ars Technica-journalist Nate Anderson beskriver selv sine evner udi hacking som begrænset til at bruge port 25 på universitetets mailserver til at spoofe afsenderen på en e-mail.

Men det er let at lære, hvordan man knækker kodeord. Der findes en række værktøjer, som man kan fodre med password-filer, ordlister og filtre for at forsøge at knække kodeord.

Brød eget kodeord på et sekund

Kodeord, som giver adgang til eksempelvis internettjenester, gemmes typisk i en fil, hvor man ikke gemmer selve kodeordet, men derimod en hash-værdi, som er en unik værdi, der genereres af en énvejsalgoritme.

Alt efter algoritmen kan man bryde kodeordene ved at køre en liste med mulige kodeord gennem den samme algoritme og sammenligne resultaterne med de kodeord, man har i password-filen.

Selv på en almindelig bærbar pc kunne Nate Anderson således knække cirka 8.000 kodeord fra en password-fil, som var hashet med MD5-algoritmen, på blot få sekunder.

Han var også i stand til at bryde sine egne kodeord, og det var en vigtig lektion.

»At se dit eget kodeord blive brudt på mindre end ét sekund er den slags onlinelektie, alle burde lære mindst én gang,« skriver Nate Anderson.

Andre typer algoritmer er dog noget vanskeligere at bryde, og hvis man bruger et kodeord på mindst ni tegn, som ikke findes på de lister over kendte kodeord, som cirkulerer på internettet, så er man bedre sikret.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (12)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 David Rechnagel Udsen

Hvis har md5summen, så går der næppe lang tid for at bryde ens løsen. Det er interessant artikel, men ikke fordi hvor let det var, men mere fordi den forklarer hvordan man gør.

Hele sikkerhedsproblematikken ligger i at lurendrejere får adgang til md5summerne, og så er spillet tabt. Så det handler om at de ikke må kunne opsnappe cookies og databaser. Hvis man undgår det, så burde en md5sum være sikker nok, fordi man afbryder vel deres forbindelse, hvis de forsøger at logge ind med brute-force, ikke?

  • 1
  • 4
#2 Svante Jørgensen

Der er jo heller ingen sag at cracke password hashes når de er lavet med MD5. MD5 algoritmen blev brudt for over 10 år siden, så der er altså ingen undskyldning for at bruge den længere.

At det er trivielt at bryde MD5 og dictionary passwords betyder ikke at det er svært at sætte ordentlig sikkerhed op på et website. Der er virkelig mange out-of-the-box løsninger tilgængelige og man kan endda "outsource" håndteringen af bruger login via OpenID, Google Connect eller Facebook for Websites.

  • 0
  • 0
#3 Svante Jørgensen

Hele sikkerhedsproblematikken ligger i at lurendrejere får adgang til md5summerne, og så er spillet tabt. Så det handler om at de ikke må kunne opsnappe cookies og databaser. Hvis man undgår det, så burde en md5sum være sikker nok, fordi man afbryder vel deres forbindelse, hvis de forsøger at logge ind med brute-force, ikke?

Hvis man regner med at ondsindede ikke får adgang til ens brugerdatabase så er der jo ingen grund til at hashe passwords. Grunden til at man gør det er at man regner med at ondsindede på et eller andet tidspunkt får adgang og at man derefter gerne vil købe tid til at lukke ens website eller bede brugerne ændre passwords før at gerningsmændende kan udnytte brugerdatabasen.

  • 2
  • 0
#4 Patrick Mylund Nielsen

Hele sikkerhedsproblematikken ligger i at lurendrejere får adgang til md5summerne, og så er spillet tabt.

Problematikken ligger i, at tjenesterne ikke "gemmer" kodeordene godt nok. Artikler som denne får det til at lyde som om, at det er fuldkommen håbløst hvis nogen får fat på dine hash digests, men i virkeligheden bliver det meget, meget dyrt at knække passwords, hvis de er lagret korrekt, f.eks. med PBKDF2, bcrypt eller scrypt. (Se tabellen på side 14 i https://www.tarsnap.com/scrypt/scrypt.pdf) Det er bare ret få tjenester, der gør det.

Der er jo heller ingen sag at cracke password hashes når de er lavet med MD5. MD5 algoritmen blev brudt for over 10 år siden, så der er altså ingen undskyldning for at bruge den længere.

Kollisioner er et relativt lille problem i password-konstruktioner. Det er ydeevnen, der arbejder imod dig. (SHA-256 og SHA-3 er lige så uduelige i konstruktioner som SHA256(password) eller SHA3(salt+password) som MD5 er.) Når du hasher indeholdet af en pakke i en protokol er det perfekt hvis hash-algoritmen er meget hurtig, men hvis den er hurtig og du bruger den til at generere digests fra kodeord med lav tilfældighed betyder det, at andre kan udføre mange gæt per sekund, og da der ikke er mange muligheder (nok tilfældighed) hurtigt gætte kodeordet.

  • 5
  • 0
#5 David Rechnagel Udsen
  • 0
  • 2
#6 Patrick Mylund Nielsen

Alle burde vide at md5 er blevet brudt for længe siden.

SHA-1 er også brudt, men kan stadig fint bruges i eksempelvis en HMAC-konstruktion, hvor kollisioner er et mindre problem. I password-konstruktioner er kollisioner ikke et stort problem fordi der er en salt, og en kollision ikke faktisk afslører det originale kodeord. (Der har endda været lidt diskussion for nylig om hvor vidt man burde bruge en hash-funktion med mange kollisioner, så en cracker ikke kan være sikker på, hvilket password, der er det rigtige: http://www.openwall.com/lists/crypt-dev/2012/12/12/3)

MD5 er brudt, ja, men i denne sammenhæng er SHA-1, SHA-2, SHA-3, BLAKE, Skein, osv. det også. Det er hastigheden, der er det store problem (men godt i de fleste andre sammenhæng, hvor der bruges nøgler med høj tilfældighed, f.eks. 256 bits), ikke kollisioner.

  • 3
  • 0
#8 Mikkel Krøigård

Men måske er det alligevel godt at høre for nogle. Det er nok en af de ting, der kan tåle at blive sagt igen og igen.

Jeg havde en lærer i gymnasiet, der demonstrerede dette for os i praksis, og det var vel omkring 1999.

Der er alt for mange steder, man skal have en konto med navn og password, og samtidig skal man jo heller ikke bruge samme password mere end et sted. Et klassisk angreb er at stjæle nogens password fra et dårligt beskyttet sted og så prøve at bruge det til deres email-konto for eksempel. Selv mange store firmaer har i de seneste år bevist, at de i hvert fald ikke kan finde ud af at beskytte deres data.

Jeg tænker nogle gange, at nogen trænger til at sætte en ny standard her, for det er faktisk noget besværligt for den almene bruger at opføre sig korrekt.

  • 1
  • 0
#11 Robert Larsen

Der er jo heller ingen sag at cracke password hashes når de er lavet med MD5. MD5 algoritmen blev brudt for over 10 år siden, så der er altså ingen undskyldning for at bruge den længere.

Nej, det er nemt at skabe to forskelle blokke data som giver samme md5 sum, men ikke at finde en kollision for et specifikt hash.

Her er en md5 sum for et af mine passwords: 51a06d48b1583015c387ab8f3bc3bdd2 Go nuts!

  • 0
  • 0
#12 Simon Rigét

Mig bekendt er det endnu ikke muligt at reverse kode et MD5 hash på sekunder. Der er nok snarere tale om rainbow lister, altså at der beregnes hash for det mest anvendte kodeord. Hvis programmøren blot ville tilsætte nogle faste karakterer eller lidt "salt", ville det nok tage noget længere tid end et sekundt.

Men mon ikke tiden er ved at være løbet fra username/password metoden til identificering?

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