Så fungerar brute force-attacker
Varför längden är viktig: beräkningsexempel och motåtgärder.
Vid brute force-attacker försöker angripare gissa ett lösenord genom att systematiskt prova alla möjliga teckenkombinationer. Grundidén är enkel: testa så många kombinationer som möjligt per sekund – helst på GPU:er eller i distribuerade system. Man talar också om en utmattande sökning (exhaustive search).
I praktiken är sådana attacker tyvärr ofta framgångsrika, eftersom många lösenord är för korta, begränsas till få teckengrupper (endast bokstäver) eller förekommer i ordlistor. Detta minskar sökområdet drastiskt och gör det lättare att gissa. Ännu viktigare: Man skiljer mellan onlineattacker (mot inloggningsformulär, där hjälper hastighetsbegränsning/kontospärrar) och offlineattacker (mot stulna lösenordshashar, där avgör hashfunktionen och lösenordets styrka attacktiden).
Att knäcka lösenord (offline) ≠ ”dekryptera”
Lösenord dekrypteras inte, utan lagras som hashvärden och sökes sedan med gissning + hashing</ em> (brute force, ordboks-/maskattacker). Den beräkningshastigheten hos modern hårdvara ligger i miljardområdet per sekund (för snabba hash-procedurer), varför långa och med långsamma metoder (t.ex. Argon2, scrypt, PBKDF2, bcrypt) hashade lösenord avgörande.
Historisk och aktuell referens: RC5-projektet från distributed.net demonstrerar den råa kraften i en uttömmande sökning i ett nyckelrum: 56-bitars hittades 1997 efter 250 dagar, 64-bitars 2002 efter 1 757 dagar. För närvarande visar proxy-status för RC5‑72 cirka 2,38 biljoner nycklar per sekund (läget: hämtat idag). Detta är nyckelbruteforce och inte lösenordshashning – men det illustrerar hur starkt distribuerad datorkraft skalar.
Kombination och längd på lösenordet
Följande exempel visar påverkan av längd och teckenval. För att illustrera detta beräknas 2 miljarder försök per sekund (mycket kraftfull enskild dator; verkliga värden varierar kraftigt beroende på hårdvara och – i offlinefall – 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 följande:
Möjliga kombinationer = (teckensnitt)lösenordets längd
| Lösenordet består av | Möjliga kombinationer (formel) | Tid som krävs (vid 2 miljarder/sekund) |
|---|---|---|
| 5 tecken (3 små bokstäver,, 2 siffror) |
(53) × 263 × 10217.576.000 | 0,009 sekunder |
| 7 tecken (1 versal,, 6 gemener) |
(71) × 261+656.222.671.232 | ≈ 28 sekunder |
| 8 tecken (4 små bokstäver,, 2 specialtecken,, 2 siffror) |
(84) × (42) × 264 × 322 × 10219.653.623.808.000 | ≈ 2,73 timmar |
| 9 tecken (2 versaler,, 3 gemener,, 2 siffror,, 2 specialtecken) |
(92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 | ≈ 53 dagar |
| 12 tecken (3 versaler,, 4 gemener,, 3 specialtecken,, 2 siffror) |
(123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 | ≈ 115.591 år |
| 14 tecken (4 stora bokstäver,, 4 små bokstäver,, 3 siffror,, 3 specialtecken) |
(144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 | ≈ 455.812.388 år |
Slutsats: Varje extra tecken multiplicerar sökområdet. Längd slår komplexitetsregler – särskilt mot offline-attacker – förutsatt att tjänster använder lämpliga, långsamma hash-metoder med salt.
Skydd mot brute force-attacker
Den mest effektiva åtgärden för användaren är ett långt, slumpmässigt huvudlösenord eller en lösenfras (t.ex. flera slumpmässiga ord) – unikt för varje tjänst. Password Depot hjälper till med genereringen och visar en uppskattad attacktid som förutom längd/teckensnitt även tar hänsyn till svagheter i ordboken.
- Aktivera MFA/2FA (t.ex. TOTP-app eller hårdvarutoken) – där det är möjligt är passkeys ännu bättre. Se BSI-anvisningar.
- Ingen återanvändning av lösenord. Varje konto behöver ett eget, starkt lösenord.
- Långa lösenord istället för obligatorisk komplexitet. Tjänster bör tillåta långa lösenord/lösenordsfraser (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 arbetsfaktorer; snabba hashmetoder som MD5/SHA-1 är olämpliga för lösenordslagring.
- Rate‑Limiting/Throttling & Sperren: Onlineattacker måste bromsas genom begränsade felaktiga försök, progressiva väntetider och eventuellt CAPTCHA.
Dessutom försvårar Password Depot Online försök till hastighetsbegränsning genom att inmatningsmasken för huvudlösenordet spärras kort efter felaktiga inmatningar – med ökande väntetid vid upprepade felaktiga inmatningar.
- Acceptera alla tecken inklusive mellanslag/Unicode och tillåt kopiering och klistring.
- Implementera blockeringslistor (komprometterade/vanliga lösenord) och hastighetsbegränsning med tydliga användarinstruktioner.
- Spara lösenord uteslutande som saltade, hashade värden med långsamma KDF:er och kontrollera arbetsfaktorer regelbundet.
Ytterligare källor
- NIST SP 800‑63B (Rev. 4), Appendix: Strength of Passwords – Längd, lösenordsfraser, offline-attacker (miljarder hash/sek.) och konceptet hastighetsbegränsning.
- NIST SP 800‑63B (Rev. 3) – bland annat minimilängd, tillåt långa lösenord (≥ 64), svartlistor, tillåt klistra in; hastighetsbegränsning/throttling med begränsning till max 100 på varandra följande felaktiga försök.
- OWASP Password Storage Cheat Sheet – lämpliga metoder (Argon2, scrypt, PBKDF2, bcrypt), salt-/arbetsfaktorer.
- OWASP Authentication Cheat Sheet – riktlinjer för lösenordsinmatning, längd, svartlistor och spärrmekanismer.
- BSI: Skapa säkra lösenord – bland annat långa/komplexa lösenord och lösenfraser; praktiska tips.
- BSI-pressmeddelande 31.01.2025 – Inga tvingande regelbundna lösenordsbyten; föredra 2FA/passkeys.
- distributed.net RC5 / aktuell proxystatus – Illustrativt exempel på uttömmande sökning och distribuerad datorkraft.
Skapa starka lösenord
Lär dig hur du skapar lösenord som motstår brute-force-attacker.
Tips för starka lösenord