Zo werken brute-force-aanvallen
Waarom lengte belangrijk is: rekenvoorbeelden en tegenmaatregelen.
Bij brute-force-aanvallen proberen aanvallers een wachtwoord te raden door systematisch alle mogelijke tekencombinaties te proberen. Het achterliggende idee is eenvoudig: zoveel mogelijk combinaties per seconde testen – idealiter op GPU's of in gedistribueerde systemen. Men spreekt ook wel van een uitputtende zoektocht (exhaustive search).
In de praktijk zijn dergelijke aanvallen helaas vaak succesvol, omdat veel wachtwoorden te kort zijn, beperkt zijn tot enkele tekengroepen (alleen letters) of voorkomen in woordenlijsten. Dit verkleint het zoekgebied drastisch en maakt het raden eenvoudiger. Nog belangrijker: er wordt onderscheid gemaakt tussen online aanvallen (tegen inlogformulieren, daar helpen rate limiting/accountblokkeringen) en offline aanvallen (tegen gestolen wachtwoord-hashes, daar zijn de hash-functie en wachtwoordsterkte bepalend voor de aanvalstijd).
Wachtwoorden kraken (offline) ≠ “decoderen”
Wachtwoorden worden niet gedecodeerd, maar opgeslagen als hashwaarden en vervolgens gezocht met raden + hashen</ em> (brute force, woordenboek-/maskeraanvallen). De rekenkracht van moderne hardware ligt in de miljarden per seconde (voor snelle hash-procedures), waardoor lange en met langzame methoden (bijv. Argon2, scrypt, PBKDF2, bcrypt) gehashte wachtwoorden van cruciaal belang zijn.
Combinatie en lengte van het wachtwoord
De volgende voorbeelden laten de invloed zien van lengte en tekenkeuze. Ter illustratie wordt gerekend met 2 miljard pogingen per seconde (zeer krachtige afzonderlijke computer; werkelijke waarden variëren sterk afhankelijk van hardware en – in offline geval – hash-procedure).
Typische tekengroepen:
- Cijfers (10: 0–9)
- Letters (52: A–Z en a–z)
- Speciale tekens (≈ 32; afhankelijk van de toegestane tekenset van de dienst)
Het aantal mogelijke combinaties wordt berekend als volgt:
Mogelijke combinaties = (tekenreeks)wachtwoordlengte
Belangrijk: De tabel toont de maximale zoektijd. Gemiddeld bedraagt de werkelijke tijd ongeveer de helft. Bovendien verminderen woordenboek-, regel- en maskeraanvallen het zoekgebied aanzienlijk, terwijl trage wachtwoordhashprocedures de effectieve snelheid drastisch verlagen.
| Wachtwoord bestaat uit | Mogelijke combinaties (formule) | Benodigde tijd (bij 2 miljard/s) |
|---|---|---|
|
5 tekens |
( 53) ×
263 × 102 = |
17.576.000 / 2.000.000.000 = |
|
7 tekens |
( 71) ×
261+6 = |
56.222.671.232 / 2.000.000.000 = |
|
8 tekens |
( 84) × ( 42 ) × 264
× 322 × 102 = |
19.653.623.808.000 / 2.000.000.000 = |
|
9 tekens |
( 92 ) × ( 73) × ( 42 ) ×
262+3 × 102 × 322 = |
9.197.895.942.144.000 / 2.000.000.000 = |
|
12 tekens |
( 123) × ( 94 ) × ( 53) ×
263+4 × 323 × 102 = |
7.295.525.784.083.496.960.000 / 2.000.000.000 = |
|
14 tekens |
( 144 ) × (
104) × ( 63 ) ×
264+4 × 103 × 323 = |
28.768.690.008.569.256.345.600.000 / 2.000.000.000 = |
Conclusie: Elk extra teken vergroot de zoekruimte. Lengte gaat voor op complexiteitsregels – vooral tegen offline-aanvallen – op voorwaarde dat diensten gebruikmaken van geschikte, trage hash-procedures met salt.
Bescherming tegen brute-force-aanvallen
De meest effectieve gebruikersmaatregel is een lang, willekeurig hoofdwachtwoord of een wachtwoordzin (bijv. meerdere willekeurige woorden) – uniek per dienst. Password Depot helpt bij het genereren en geeft een geschatte aanvalstijd weer, die naast lengte/tekenset ook rekening houdt met zwakke punten in het woordenboek.
- MFA/2FA activeren (bijv. TOTP-app of hardwaretoken) – waar mogelijk zijn passkeys nog beter. Zie BSI-aanwijzingen.
- Geen hergebruik van wachtwoorden. Elk account heeft een eigen, sterk wachtwoord nodig.
- Lang in plaats van verplichte complexiteit. Diensten moeten lange wachtwoorden/wachtzinnen toestaan (minimaal 64 tekens) en gecompromitteerde wachtwoorden blokkeren (blacklist).
- Trage hash-procedures aan de serverzijde (bijv. Argon2, scrypt, PBKDF2, bcrypt) met salt en passende werkfactoren; snelle hashes zoals MD5/SHA-1 zijn ongeschikt voor het opslaan van wachtwoorden.
- Rate-limiting/throttling & blokkeren: online aanvallen moeten worden afgeremd door een beperkt aantal mislukte pogingen, progressieve wachttijden en indien nodig CAPTCHA.
Bovendien bemoeilijkt Password Depot online pogingen door na onjuiste invoer het invoerscherm voor het hoofdwachtwoord kort te blokkeren – met toenemende wachttijd bij herhaalde mislukte pogingen.
Aanvullende bronnen
- NIST SP 800‑63B (Rev. 4), Appendix: Strength of Passwords – lengte, wachtwoordzinnen, offline aanvallen (miljarden hashes/seconde) en het concept van snelheidsbeperking.
- NIST SP 800‑63B (Rev. 3) – o.a. minimale lengte, lange wachtwoorden toestaan (≥ 64), zwarte lijsten, plakken toestaan; Rate‑Limiting/Throttling met beperking tot max. 100 opeenvolgende foutieve pogingen.
- OWASP Password Storage Cheat Sheet – geschikte procedures (Argon2, scrypt, PBKDF2, bcrypt), salt/work-factoren.
- OWASP Authentication Cheat Sheet – Richtlijnen voor wachtwoordinvoer, lengte, blacklists en blokkeringsmechanismen.
- BSI: veilige wachtwoorden aanmaken – o.a. lange/complexe wachtwoorden en wachtzinnen; praktische tips.
- BSI-persbericht 31-01-2025 – geen verplichte regelmatige wachtwoordwijzigingen; geef de voorkeur aan 2FA/passkeys.
- distributed.net RC5 / huidige proxy-status – illustratief voorbeeld van uitputtende zoekopdrachten en gedistribueerde rekenkracht.