Så fungerar brute force-attacker
Varför längden spelar roll: beräkningsexempel och motåtgärder.
Vid brute force-attacker försöker angripare gissa ett lösenord genom att systematiskt testa alla möjliga teckenkombinationer. Grundidén är enkel: att testa så många kombinationer per sekund som möjligt – helst på GPU:er eller i distribuerade system. Detta kallas även för en uttömmande sökning (uttömmande sökning).
I praktiken är sådana angrepp tyvärr ofta framgångsrika, eftersom många lösenord är för korta , bygger på ett begränsat antal teckengrupper (endast bokstäver) eller finns i ordlistor. Det minskar sökutrymmet drastiskt och gör dem lättare att gissa. Ännu viktigare är att man skiljer mellan onlineangrepp (mot inloggningsformulär, där hjälper hastighetsbegränsning/kontospärrar) och offlineangrepp (mot stulna lösenordshashar, där hashfunktionen och lösenordets styrka avgör angreppstiden).
Knäcka lösenord (offline) ≠ „dekryptera“
Lösenord dekrypteras inte, utan lagras som hashvärden och söks sedan med hjälp av gissning + hashning (brute force, ordliste-/maskangrepp). Beräkningshastigheten hos modern hårdvara ligger i miljardklassen per sekund (för snabba hashmetoder), vilket är anledningen till att långa och med långsamma metoder (t. ex. Argon2, scrypt, PBKDF2, bcrypt) hashade lösenord är avgörande.
Historisk och aktuell referens: RC5-projektet från distributed.net demonstrerar råstyrkan i uttömmande sökning i ett nyckelutrymme: 56 bitar hittades 1997 efter 250 dagar, 64 bitar 2002 efter 1 757 dagar. För närvarande visar proxystatus för RC5-72 ca 2,38 biljoner nycklar per sekund (per dagens datum). Det är nyckel-bruteforce och inte lösenordshashning – men illustrerar tydligt hur distribuerad datorkraft skalar.
Kombination och lösenordslängd
Följande exempel visar hur längd och teckenurval. För att illustrera detta räknar man med 2 miljarder försök per sekund (mycket kraftfull enskild dator; faktiska värden varierar kraftigt beroende på hårdvara och – i offline-fall – hashmetod).
Typiska teckengrupper:
- Siffror (10: 0–9)
- Bokstäver (52: A–Z och a–z)
- Specialtecken (≈ 32; beror på tjänstens tillåtna teckenuppsättning)
Antalet möjliga kombinationer beräknas enligt:
Viktigt: Tabellen visar den maximala söktiden. I genomsnitt är den faktiska tiden ungefär hälften så lång. Dessutom minskar ordliste-, regel- och maskangrepp sökutrymmet avsevärt, medan långsamma hashmetoder för lösenord den effektiva hastigheten drastiskt.
| Lösenordet består av | Tid som krävs (vid 2 mdr/s) | Möjliga kombinationer (formel) |
|---|---|---|
| 5 tecken 3 små bokstäver, 2 siffror | 0,009 sekunder | (53) × 263 × 10217 576 000 |
| 7 tecken 1 stor bokstav, 6 små bokstäver | ≈ 28 sekunder | (71) × 261+656 222 671 232 |
| 8 tecken 4 små bokstäver, 2 specialtecken, 2 siffror | ≈ 2,73 timmar | (84) × (42) × 264 × 322 × 10219 653 623 808 000 |
| 9 tecken 2 stora, 3 små bokstäver, 2 siffror, 2 specialtecken | ≈ 53 dagar | (92) × (73) × (42) × 262+3 × 102 × 3229 197 895 942 144 000 |
| 12 tecken 3 stora, 4 små bokstäver, 3 specialtecken, 2 siffror | ≈ 115 591 år | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 |
| 14 tecken 4 stora, 4 små bokstäver, 3 siffror, 3 specialtecken | ≈ 455 812 388 år | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 |
Slutsats: Varje extra tecken mångdubblar sökutrymmet. Längd slår komplexitetsregler – särskilt mot Offline‑attacker – förutsatt att tjänster använder lämpliga, långsamma hashmetoder med salt.
Skydd mot brute force‑attacker
Den effektivaste åtgärden för användaren är ett långt, slumpmässigt huvudlösenord eller en lösenfras (t.ex. flera slumpmässiga ord) – unik för varje tjänst. Password Depot hjälper till vid generering och visar en uppskattad angreppstid som, utöver längd/teckenuppsättning, även tar hänsyn till svagheter i ordböcker.
- Aktivera MFA/2FA (t.ex. TOTP‑app eller hårdvarutoken) – där det är möjligt är Passkeys ännu bättre. Se BSI‑anvisningar.
- Återanvänd inte lösenord. Varje konto behöver ett eget, starkt lösenord.
- Längd i stället för obligatorisk komplexitet. Tjänster bör tillåta långa lösenord/lösenfraser (minst 64 tecken) och blockera komprometterade lösenord (svartlista).
- Långsamma hashmetoder på serversidan (t.ex. Argon2, scrypt, PBKDF2, bcrypt) med salt och lämpliga work factors; snabba hashar som MD5/SHA‑1 är olämpliga för lösenordslagring.
- Rate limiting/throttling och spärrar: Online‑attacker måste bromsas genom begränsade felaktiga försök, progressiva väntetider och vid behov CAPTCHA.
Dessutom försvårar Password Depot onlinebaserade rate-försök genom att inmatningsfältet för masterlösenordet låses en kort stund efter felaktiga inmatningar – med ökande väntetid vid upprepade misslyckade försök.
Praktiska råd för tjänsteleverantörer (teknikteam)
- Acceptera alla utskrivbara tecken inklusive blanksteg/Unicode och tillåt Copy-&-Paste.
- Implementera blocklistor (komprometterade/vanliga lösenord) och rate limiting med tydlig användarinformation.
- Lagra lösenord uteslutande som saltade, hashade värden med långsamma KDF:er och kontrollera work factors regelbundet.
Vidare källor
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – längd, lösenfraser, offlineattacker (miljarder hashar/sek.) och koncept för rate limiting.
- NIST SP 800–63B (Rev. 3) – bl.a. minimilängd, tillåt långa lösenord (≥ 64), svartlistor, tillåt inklistring; Rate-Limiting/Throttling med begränsning till max. 100 på varandra följande misslyckade försök.
- OWASP Password Storage Cheat Sheet – lämpliga metoder (Argon2, scrypt, PBKDF2, bcrypt), salt/work factors.
- OWASP Authentication Cheat Sheet – riktlinjer för lösenordsinmatning, längd, svartlistor och låsmekanismer.
- BSI: Skapa säkra lösenord – bl.a. långa/komplexa lösenord och lösenfraser; praktiska tips.
- BSI‑press 31.01.2025 – inga framtvingade regelbundna lösenordsbyten; föredra 2FA/Passkeys.
- distributed.net RC5 / aktuell proxystatus – åskådningsexempel på uttömmande sökning och distribuerad beräkningskraft.
Skapa säkra lösenord
Lär dig hur du skapar lösenord som står emot brute force-attacker.
Tips för säkra lösenord