akademin körs anonymt — inget sparas
skapa kontonummer →
Akademin / Nivå II / Lektion 04
lektion 04 · attackerna

Brute force, ordbok & rainbow tables.

Tre typer av gissningsangrepp som låter likadana men är helt olika sorts hot. Den här lektionen visar vad som händer på andra sidan när någon försöker knäcka ditt lösenord.

Välj spår Hur tekniskt vill du ha det?

Föreställ dig någon framför en dator som testar lösenord, ett i taget. Det är brute force i den naivaste formen. I verkligheten är det inte en person utan en GPU-rigg, och inte ett lösenord per sekund utan tio miljarder.

01Brute force — testa allt

Brute force betyder bokstavligen "rå kraft". Botten testar varenda tänkbar kombination i tur och ordning: aaaa, aaab, aaac, ..., zzzz. Tar tid om lösenordet är långt — men förr eller senare träffas alla.

Tiden beror exakt på två saker:

02Ordbok — varför botten är smartare än så

Ingen seriös angripare brute-forcar från aaaa. De börjar med ordlistor. En typisk ordboksattack går igenom:

En modern angripare testar miljarder kandidater innan den ens funderar på riktig brute force. För 90 % av lösenorden i världen träffar ordboken — bara de 10 % som är riktigt slumpmässiga kräver det stora artilleriet.

03Rainbow tables — nästan döda

För kanske 20 år sen var rainbow tables hot nummer ett. Idén: förberäkna hashen för alla möjliga lösenord och spara på disk. När du har en stulen lösenordsdatabas slår du bara upp varje hash i tabellen — träff! Lösenordet hittat.

Försvaret heter salt (lektion 1, djupare-spår): varje användares lösenord får ett unikt slumpvärde tillagt innan det hashas. Då blir varje användares hash unik, och rainbow tables blir oanvändbara — du skulle behöva en separat tabell per salt-värde.

Rainbow tables fungerar fortfarande mot dåliga sajter som använder hash utan salt. De är extinkta mot moderna sajter. Salt-tekniken har funnits sedan 70-talet — den enda anledningen någon inte använder det är slarv.

04Se siffrorna själv

Här kan du leka med två parametrar — hur långt lösenordet är och vilka tecken som ingår — och se hur lång tid det skulle ta för tre olika typer av angripare att brute-forca det.

8
Din laptop ~ 1 miljon gissningar / sek
En GPU-rigg ($5 000) ~ 10 miljarder gissningar / sek
Hyrd cloud-farm ~ 10 biljoner gissningar / sek
Antar att lösenordet är slumpmässigt (inte ett ord). En ordboksattack skulle träffa vanliga lösenord på sekunder oavsett längd.

05Vad betyder det här för dig?

Brute force, dictionary, hybrid och mask-attacker är fyra olika strategier på samma sökrymd. Vilken som är effektivast bestäms av hashfunktionens hastighet och vad anfallaren tror om lösenordets fördelning.

01Strategier

02Hashning-hastighet och kostnad

Avgörande variabel: hur snabbt hashen kan beräknas på en GPU. Praktiska siffror (RTX 4090):

MD5 · 164 GH/s  ·  SHA-1 · 50 GH/s  ·  NTLM · 290 GH/s
bcrypt cost 5 · 105 kH/s  ·  bcrypt cost 12 · 13 kH/s
argon2id (default) · ~500 H/s

Skillnaden mellan MD5 och argon2id är cirka 10⁹. Samma maskinkraft, samma elräkning — en angripare som tar en månad mot argon2id-databas skulle ta 30 sekunder mot MD5-databas.

03Rainbow tables — vad är trade-offen?

Rainbow tables är en tids-minne-kompromiss (Hellman 1980, Oechslin 2003). Istället för att lagra alla hash-värden lagras "kedjor": startpunkt → hashning → reduction → hashning → ... → slutpunkt. Tabeller är ~10 000× mindre än naiv lookup men kräver beräkning vid uppslag.

En typisk SHA-1 rainbow table för alfanumeriska lösenord upp till 8 tecken: ~600 GB. Större alfabeten eller längre lösenord skalar exponentiellt.

Salt dödar dem helt — eftersom varje användare har ett unikt salt skulle anfallaren behöva en separat tabell per salt-värde. Inget realistiskt om saltet är ≥ 8 byte och slumpmässigt.

I dagens läge är GPU-brute-force mot snabba hashar typiskt billigare än att underhålla rainbow tables. Tabellerna lever vidare för historiska osaltade läckor och som curio.

04Memory-hard vs computational-hard

Modern lösenord-hashing försöker försvåra GPU-parallellisering. Två huvudstrategier:

OWASP 2024-rekommendation: argon2id som första val, bcrypt som accepterat fallback. PBKDF2-SHA256 bara om FIPS-compliance krävs.

05Distributed cracking

Hashcat stöder distribuerad cracking via brain-server. Cloud-farms (AWS p4d, t.ex.) kan hyras för ~$20/h med ~10⁴ GPU-timmar. För en SHA-1-databas på 10 miljoner hashar:

Notera: detta är mot snabba hashar. Mot argon2id-databaser blir kostnaden ~10⁶ × högre — det skiftar ekonomin från "någon timmes intressant arbete" till "praktiskt ogörbart för enskild angripare".

Snabb-koll — tre frågor

lektion 04 · klarad ✓ Nästa upp

Lektion 05 — Phishing & social engineering

Lösenord knäcks inte alltid — ibland frågas du bara om att lämna ut det.

Nästa lektion