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årHur 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:
Hur många tecken lösenordet är (mer = exponentiellt längre)
Hur många olika tecken finns med (siffror? bokstäver? symboler?)
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:
De 10 000 vanligaste lösenorden globalt (password, 123456, qwerty...)
Svenska + engelska ordböcker — ~500 000 ord
Tidigare läckta lösenord från andra sajter — miljarder unika
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?
Korta lösenord är förlorade. 6 tecken med vad som helst → cloud-farm knäcker på sekunder.
Längd slår allt. 16 tecken slumpmässiga små bokstäver är säkrare än 8 tecken med "alla teckenklasser".
Inga riktiga ord, oavsett längd. Ordboksattacker är snabba även mot "ovanliga" ord. kanin springer fort i regnet funkar för att kombinationen är unik — inte för att orden är hemliga.
Använd unika lösenord per sajt. Annars är det inte längden som spelar roll, utan vilken sajt som faller först (lektion 6).
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
Pure brute force: generera alla strängar i ordningsföljd, hasha, jämför. Bara meningsfullt för korta lösenord eller när andra metoder uttömts.
Dictionary: ladda en ordlista, eventuellt med mangling rules (lägg till siffror, leet-substituera). Förstaval för 90 %+ av attackerna i praktiken.
Mask attack: brute force-variant där du specificerar mönstret. ?u?l?l?l?l?l?d?d?d?d! betyder stor + 5 små + 4 siffror + utropstecken. Sökrymden krymper från 94¹¹ till ~10¹².
Hybrid: kombinera ordlista med brute force-suffix. Testa varje ord + alla 4-siffriga kombinationer.
Rule-based: hashcat har en `best64.rule` som tar varje kandidat och genererar 64 transformationer (capitalize, lägg år, suffix-symboler).
02Hashning-hastighet och kostnad
Avgörande variabel: hur snabbt hashen kan beräknas på en GPU. Praktiska siffror (RTX 4090):
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:
Computational-hard: bcrypt, PBKDF2. Iterera tusentals gånger. GPU:n kan fortfarande parallellisera men varje försök tar längre tid.
Memory-hard: scrypt, argon2. Varje försök kräver dussintals MB RAM. GPU:er har snabba men små minnen — du kan köra ~10 000 parallella SHA-1 men bara ~100 parallella argon2id. Den ekonomiska kalkylen ändras dramatiskt.
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:
~80 % av lösenorden faller på ordlistans första pass (timme 1, kostnad ~$20)
~15 % på regler + hybridattacker (timme 2–10, kostnad ~$200)
~3 % på mask-attacker (timme 10–100, kostnad ~$2000)
~2 % motstår — riktigt slumpmässiga lösenord
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.