Hva er et ordbokangrep?

For å autentisere til et nettsted, må du oppgi et brukernavn og passord. Siden sjekker deretter autentiseringsdetaljene du har oppgitt ved å sammenligne dem med detaljene den har lagret i databasen. Hvis detaljene samsvarer, gis tilgang. Hvis detaljene ikke samsvarer, nektes tilgang.

Dessverre er datainnbrudd en relativt vanlig hendelse. Datainnbrudd kan være et stort problem fordi en av databitene som oftest er målrettet mot, er brukerdataene, spesielt listen over brukernavn og passord. Hvis passordene bare lagres som de er, i klartekst, kan alle med tilgang til databasen få tilgang til kontoen til en hvilken som helst annen bruker. Det er som om de fikk en nøkkelring med nøkkelen til hver dør i en bygård.

Mens mye arbeid går i å forhindre datainnbrudd i utgangspunktet, anbefales en strategi for forsvar i dybden. Spesifikt mener sikkerhetsråd at passord bør hashes, med bare hashen til passordet som noen gang er lagret. En hash-funksjon er en enveisfunksjon som alltid konverterer den samme inngangen til den samme utgangen. Selv en mindre endring i input gir imidlertid en helt annen utgang. Kritisk er det ingen måte å reversere funksjonen og gjøre den utsendte hashen tilbake til den opprinnelige inngangen. Det du derimot kan gjøre er å hash en ny inngang og se om utgangen samsvarer med den lagrede hashen i databasen. Hvis det gjør det, vet du at passordet samsvarer, uten å vite det faktiske passordet.

Dette betyr nyttig også at hvis en angriper bryter databasen, får de ikke en liste over umiddelbart nyttige passord, de får hashes i stedet. For å kunne bruke disse hashene må de knekkes.

Knekke passordhasher med smarts

Å knekke en passordhash er prosessen med å finne ut hva det opprinnelige passordet er som hashen representerer. Fordi det er ingen måte å reversere hash-funksjonen og gjøre hashen til passordet. Den eneste måten å knekke en hash på er å gjette passordet. En metode er å bruke et brute force angrep. Dette innebærer bokstavelig talt å prøve alle mulige passord. Det betyr å starte fra "a", prøve hver bokstav, i begge tilfeller, og hvert tall og symbol. Deretter må angriperen prøve alle kombinasjoner av to tegn, kombinasjoner med tre tegn, og så videre. Økningen i mulige kombinasjoner av tegn er eksponentiell hver gang du legger til et tegn. Dette gjør det vanskelig å gjette lange passord effektivt selv når raske hashing-algoritmer brukes med kraftige GPU-cracking-rigger.

En del innsats kan spares ved å se på passordkravene til nettstedet og ikke prøve passord som vil være for korte til å tillates eller som ikke har et tall, for eksempel. Dette vil spare litt tid og passer fortsatt inn i klassen av et brute force-angrep som prøver alle tillatte passord. Brute force-angrep, selv om de er sakte, vil – hvis de får stå lenge nok med mye prosessorkraft – til slutt knekke et hvilket som helst passord ettersom alle mulige kombinasjoner vil bli prøvd.

Problemet med brute force-angrep er at de ikke er veldig smarte. Et ordbokangrep er en variant som er mye mer målrettet. I stedet for bare å prøve et mulig passord, prøver den en liste over spesifiserte passord. Suksessen til denne typen angrep avhenger av listen over passord og den aktuelle ordboken.

Gjør utdannede gjetninger

Passordordbøker er vanligvis bygget fra tidligere knekte passord fra andre datainnbrudd. Disse ordbøkene kan inneholde tusenvis eller millioner av oppføringer. Dette bygger på konseptet om at folk er dårlige til å lage unike passord. Bevis fra datainnbrudd viser at dette også er tilfelle, dessverre. Folk bruker fortsatt varianter av ordet "passord". Andre vanlige emner er idrettslag, navn på kjæledyr, stedsnavn, firmanavn, hating av jobben din og passord basert på dato. Denne siste har en tendens til å skje når folk blir tvunget til regelmessig å endre passordene sine.

Ved å bruke en passordordbok reduseres antallet gjetninger som må gjøres betydelig sammenlignet med et brute-force-angrep. Passordordbøker har også en tendens til å inneholde både korte og lengre passord, noe som betyr at noen passord kan bli prøvd som ikke vil bli nådd selv med årevis eller brute force gjetting. Tilnærmingen viser seg også vellykket. Statistikken varierer basert på datainnbruddet og størrelsen og kvaliteten på ordboken som brukes, men suksessraten kan overstige 70 %.

Suksessratene kan økes ytterligere med ordmanglingsalgoritmer. Disse algoritmene tar hvert ord i passordordboken og endrer det deretter litt. Disse modifikasjonene pleier å være standardkaraktererstatninger og legge til etterfølgende tall eller symboler. For eksempel er det vanlig at folk erstatter bokstaven "e" med en "3" og "s" med en "$" eller legger til et utropstegn på slutten. Ordmanglingsalgoritmer lager duplikater av hver oppføring i passordordboken. Hvert duplikat har en annen variant av disse tegnerstatningene. Dette øker antallet passord å gjette betydelig og øker også suksessraten, i noen tilfeller over 90 %.

Konklusjon

Et ordbokangrep er en målrettet variant av et brute force-angrep. I stedet for å prøve alle mulige tegnkombinasjoner, testes et undersett av tegnkombinasjoner. Dette undersettet er en liste over passord som tidligere har blitt funnet og om nødvendig knekt i tidligere datainnbrudd. Dette reduserer massivt antall gjetninger som skal gjøres samtidig som de dekker passord som har blitt brukt før, og i noen tilfeller ofte sett. Et ordbokangrep har ikke like høy suksessrate som et brute force-angrep. Det forutsetter imidlertid at du har ubegrenset tid og prosessorkraft. Et ordbokangrep har en tendens til å få en anstendig høy suksessrate mye raskere enn et brute force-angrep kan. Dette er fordi det ikke kaster bort tid på ekstremt usannsynlige kombinasjoner av karakterer.

En av de viktigste tingene du bør gjøre når du kommer opp med et passord, er å sørge for at det ikke vises på en ordliste. En måte å gjøre det på er å lage et komplekst passord, en annen er å lage et langt passord. Generelt er det beste alternativet å lage et langt passord som består av noen få ord. Det er bare viktig at disse ordene ikke utgjør en faktisk setning, da det kan gjettes. De burde være helt uten slekt. Det anbefales at du velger et passord på over 10 tegn med 8 som det absolutte minimum.