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
(3 kleine letters,
2 cijfers)

( 53) × 263 × 102 =
17.576.000

17.576.000 / 2.000.000.000 =
0,008788 seconden

7 tekens
(1 hoofdletter,
6 kleine letters)

( 71) × 261+6 =
56.222.671.232

56.222.671.232 / 2.000.000.000 =
28,111335616 seconden

8 tekens
(4 kleine letters,
2 speciale tekens,
2 cijfers)

( 84) × ( 42 ) × 264 × 322 × 102 =
19.653.623.808.000

19.653.623.808.000 / 2.000.000.000 =
9.826,811904 seconden =
≈ 2,73 uur

9 tekens
(2 hoofdletters,
3 kleine letters,
2 cijfers,
2 speciale tekens)

( 92 ) × ( 73) × ( 42 ) × 262+3 × 102 × 322 =
9.197.895.942.144.000

9.197.895.942.144.000 / 2.000.000.000 =
4.598.947,971072 seconden =
≈ 53,23 dagen

12 tekens
(3 hoofdletters,
4 kleine letters,
3 speciale tekens,
2 cijfers)

( 123) × ( 94 ) × ( 53) × 263+4 × 323 × 102 =
7.295.525.784.083.496.960.000

7.295.525.784.083.496.960.000 / 2.000.000.000 =
3.647.762.892.041,74848 seconden =
≈ 115.590,63 jaar

14 tekens
(4 hoofdletters,
4 kleine letters,
3 cijfers,
3 speciale tekens)

( 144 ) × ( 104) × ( 63 ) × 264+4 × 103 × 323 =
28.768.690.008.569.256.345.600.000

28.768.690.008.569.256.345.600.000 / 2.000.000.000 =
14.384.345.004.284.628,1728 seconden =
≈ 455.812.387,64 jaar

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