Wachtwoordbeveiliging: Hoe Hackers Kraken

Je wachtwoord is de sleutel tot je digitale leven: e-mail, bankzaken, social media, werk. Maar hoe veilig is die sleutel eigenlijk? In dit artikel leer je hoe hackers wachtwoorden kraken, welke technieken ze gebruiken, en - het allerbelangrijkste - hoe je jezelf effectief beschermt. Want als je begrijpt hoe de aanval werkt, kun je je verdediging stukken beter opzetten.

Hoe worden wachtwoorden opgeslagen?

Voordat we het over kraken hebben, moet je eerst begrijpen hoe wachtwoorden worden opgeslagen. Een goed gebouwd systeem slaat je wachtwoord nooit als leesbare tekst op. In plaats daarvan wordt je wachtwoord omgezet in een onleesbare reeks tekens via een proces dat hashing heet.

Stel je wachtwoord is Welkom123. Het systeem berekent een hash en slaat alleen die hash op:

$ echo -n "Welkom123" | sha256sum
a8f5f167f44f4964e6c998dee827110c... (64 tekens)

Als je inlogt, berekent het systeem opnieuw de hash van wat je intypt en vergelijkt die met de opgeslagen hash. Komen ze overeen? Dan klopt je wachtwoord. Het mooie is dat het systeem je wachtwoord zelf nooit hoeft te kennen.

Veelgebruikte hash-algoritmen

Niet alle hash-algoritmen zijn even sterk. Hier zijn de meest voorkomende:

  • MD5 - Verouderd en onveilig. Wordt helaas nog steeds gebruikt door sommige systemen. Kan in seconden gekraakt worden.
  • SHA-256 - Veel sterker dan MD5, maar nog steeds relatief snel te berekenen. Niet ideaal voor wachtwoordopslag.
  • bcrypt - Speciaal ontworpen voor wachtwoorden. Opzettelijk traag, wat brute force aanvallen extreem moeilijk maakt.
  • Argon2 - De huidige gouden standaard. Winnaar van de Password Hashing Competition (2015). Vereist veel geheugen, waardoor zelfs GPU-aanvallen traag worden.
Een goede hashfunctie is een eenrichtingsfunctie: je kunt het wachtwoord omzetten naar een hash, maar je kunt de hash niet terugrekenen naar het wachtwoord. Vergelijk het met een gehaktmolen: je kunt vlees omzetten in gehakt, maar van gehakt kun je geen biefstuk meer maken.

Wat is salting?

Een salt is een willekeurige reeks tekens die aan je wachtwoord wordt toegevoegd voor het hashen. Waarom? Zonder salt hebben twee gebruikers met hetzelfde wachtwoord ook dezelfde hash. Een aanvaller die de database steelt, ziet dan direct welke accounts hetzelfde wachtwoord gebruiken. Met een unieke salt per gebruiker krijgt hetzelfde wachtwoord een compleet andere hash.

$ # Zonder salt: zelfde wachtwoord = zelfde hash
hash("Welkom123") = a8f5f167f44f... hash("Welkom123") = a8f5f167f44f...
$ # Met salt: zelfde wachtwoord = andere hash
hash("x7k9" + "Welkom123") = 3b2c9f8e71a0... hash("m2p4" + "Welkom123") = 8d4e1a6c33f7...
Salting maakt rainbow table aanvallen nutteloos, omdat elke hash uniek is, zelfs voor identieke wachtwoorden. Moderne frameworks als bcrypt en Argon2 doen dit automatisch.

Wat is password cracking?

Password cracking is het proces waarbij een aanvaller probeert om vanuit een hash het originele wachtwoord te achterhalen. Omdat hashing een eenrichtingsfunctie is, kan de aanvaller niet simpelweg "terugrekenen." In plaats daarvan probeert de aanvaller miljoenen mogelijke wachtwoorden te hashen en vergelijkt elke hash met de gestolen hash. Komt er een match? Dan is het wachtwoord gekraakt.

Dit klinkt als een langzaam proces, maar moderne GPU's (videokaarten) kunnen miljarden hashes per seconde berekenen. Een simpel wachtwoord als "hallo123" is binnen milliseconden gekraakt.

De vijf aanvalsmethoden

1. Brute Force Attack

De meest directe methode: probeer elke mogelijke combinatie van tekens. Beginnend bij "a", dan "b", dan "c"... tot "aa", "ab", enzovoort. Dit klinkt primitief, maar met moderne hardware is het verrassend effectief voor korte wachtwoorden.

$ hashcat -m 0 -a 3 hash.txt ?a?a?a?a?a?a
Session..........: hashcat Status...........: Running Speed.#1.........: 14523.8 MH/s Candidates.#1....: aB3$kL -> zZ9!mP Progress.........: 2847193/735091890625 [TIP] ?a = alle tekens (a-z, A-Z, 0-9, speciale tekens)

Het probleem met brute force: de tijd groeit exponentieel met elke extra teken. 6 tekens? Seconden. 8 tekens? Uren. 12 tekens? Eeuwen. Lengte is je beste verdediging.

2. Dictionary Attack (Woordenboekaanval)

In plaats van elke combinatie te proberen, gebruikt de aanvaller een lijst met veelvoorkomende wachtwoorden. Er bestaan databases met miljoenen gelekte wachtwoorden uit eerdere data breaches. De beroemdste is de RockYou-lijst met 14 miljoen wachtwoorden.

$ hashcat -m 0 -a 0 hash.txt rockyou.txt
Session..........: hashcat Status...........: Cracked Hash.Type........: MD5 Hash.Target......: 5f4dcc3b5aa765d61d8327deb882cf99 5f4dcc3b5aa765d61d8327deb882cf99:password [TIP] "password" staat op #1 in de RockYou-lijst!

Varianten hierop combineren woordenboekwoorden met veelgebruikte patronen: Welkom1!, Zomer2026, Voetbal123. Deze "rule-based" aanvallen zijn verrassend effectief, omdat mensen voorspelbare patronen volgen: een hoofdletter aan het begin, cijfers aan het eind, en een uitroepteken als "speciaal teken."

De meest gelekte wachtwoorden ter wereld zijn: 123456, password, qwerty, abc123 en iloveyou. Als jouw wachtwoord hierop lijkt, verander het vandaag nog.

3. Rainbow Tables

Rainbow tables zijn enorme tabellen met vooraf berekende hashes. In plaats van elke hash opnieuw te berekenen, zoekt de aanvaller de hash simpelweg op in de tabel. Dit werkt razendsnel, maar vereist gigabytes aan opslagruimte.

Het goede nieuws: salting maakt rainbow tables nutteloos. Wanneer elke hash een unieke salt heeft, zou de aanvaller voor elke salt een aparte rainbow table moeten berekenen - dat is onpraktisch.

4. Credential Stuffing

Bij credential stuffing gebruikt een aanvaller gestolen inloggegevens van de ene website om in te loggen op andere websites. Gebruik je hetzelfde wachtwoord voor je e-mail, Netflix en je bank? Dan is een lek bij Netflix genoeg om al je accounts in gevaar te brengen.

$ hydra -L users.txt -P passwords.txt target.com http-post-form "/login:user=^USER^&pass=^PASS^:Invalid"
[80][http-post-form] host: target.com login: admin password: Welkom123 login: jan password: Zomer2025! [!] 2 van 500 combinaties succesvol [TIP] Credential stuffing werkt omdat 65% van mensen wachtwoorden hergebruikt!
Let op: hydra is een krachtige offensive tool voor het testen van inlogbeveiliging. Gebruik deze tool uitsluitend op systemen waar je schriftelijke toestemming voor hebt. Ongeautoriseerd gebruik is strafbaar onder art. 138ab van het Wetboek van Strafrecht.

5. Social Engineering en Phishing

Soms hoeft een aanvaller helemaal niks te kraken. Via social engineering wordt je simpelweg gevraagd je wachtwoord in te voeren op een nep-website die eruitziet als de echte. Of je krijgt een e-mail die beweert van je bank te zijn. Geen enkel sterk wachtwoord beschermt je als je het zelf weggeeft.

Hashcat: de koning van password cracking

hashcat is de meest gebruikte password cracking tool ter wereld, zowel door ethische hackers als door criminelen. Het maakt gebruik van je GPU (videokaart) om miljarden hashes per seconde te berekenen. Ter vergelijking: een CPU doet er misschien miljoenen - een GPU doet er miljarden.

$ hashcat -m 1000 -a 0 ntlm_hashes.txt rockyou.txt --rules best64.rule
hashcat v6.2.6 OpenCL API (OpenCL 3.0) - Platform #1 [NVIDIA] * Device #1: NVIDIA GeForce RTX 4090, 24GB Approaching final keyspace - workload adjusted. aad3b435b51404eeaad3b435b51404ee:leeg_wachtwoord 31d6cfe0d16ae931b73c59d7e0c089c0:Welkom123 a4f49c406510bdcab6824ee7c30fd852:Zomer2026! Session..........: hashcat Status...........: Exhausted Speed.#1.........: 95238.1 MH/s Recovered........: 3/5 (60.00%) [TIP] -m 1000 = NTLM hashes (Windows wachtwoorden) [TIP] --rules past variaties toe: Welkom -> W3lk0m, welkom!, WELKOM

Hashcat ondersteunt meer dan 350 hash-types, van MD5 en SHA-256 tot WPA2 wifi-wachtwoorden en Windows NTLM hashes. Het is de Zwitserse zakmessen van password cracking.

In HackSimulator.nl kun je hashcat veilig uitproberen zonder echte hashes te kraken. Je leert de syntax, de aanvalsmodi, en de logica achter password cracking - in een veilige simulatie.

Hoe lang duurt het kraken?

De kraaktijd hangt af van drie factoren: de lengte van het wachtwoord, de complexiteit (welke tekens), en het gebruikte hash-algoritme. Hieronder een overzicht voor MD5-hashes op een moderne GPU (10 miljard hashes per seconde):

Wachtwoord Karakterset Kraaktijd (MD5)
6 tekens, alleen kleine letters a-z (26) < 1 seconde
8 tekens, kleine + hoofdletters a-z, A-Z (52) ~15 minuten
8 tekens, letters + cijfers a-z, A-Z, 0-9 (62) ~1 uur
8 tekens, alles + speciale tekens 95 tekens ~19 uur
10 tekens, alles + speciale tekens 95 tekens ~7 maanden
12 tekens, alles + speciale tekens 95 tekens ~6000 jaar
16 tekens, alles + speciale tekens 95 tekens ~50 miljard jaar
Merk op: het verschil tussen 8 en 12 tekens is niet een beetje - het is het verschil tussen uren en duizenden jaren. Elke extra teken vermenigvuldigt de kraaktijd enorm. Met bcrypt of Argon2 in plaats van MD5 worden bovenstaande tijden nog eens duizenden keren langer.

Hoe bescherm je jezelf?

Nu je weet hoe aanvallen werken, kun je je verdediging opbouwen. Hier zijn de zes belangrijkste maatregelen, van meest tot minst impactvol:

1. Gebruik lange wachtwoorden (12+ tekens)

Lengte verslaat complexiteit. Het wachtwoord mijn-kat-eet-graag-vis (21 tekens, alleen kleine letters en streepjes) is astronomisch veel sterker dan K@t!2026 (7 tekens met speciale tekens). De reden: brute force schaalt exponentieel met lengte.

Een goed patroon is een passphrase: vier of meer willekeurige woorden aan elkaar. Makkelijk te onthouden, bijna onmogelijk te kraken:

$ # Zwak: kort maar "complex"
P@ssw0rd! (9 tekens, ~2 dagen kraken)
$ # Sterk: lang en makkelijk te onthouden
koffie-fiets-regen-piano (24 tekens, miljoenen jaren)

2. Gebruik een password manager

Een password manager genereert en onthoudt unieke, sterke wachtwoorden voor elk account. Je hoeft zelf maar een sterk master-wachtwoord te onthouden. Populaire opties zijn Bitwarden (gratis, open source), 1Password en KeePassXC (lokale opslag).

Met een password manager kun je per account een uniek wachtwoord van 20+ willekeurige tekens gebruiken. Je hoeft ze niet te onthouden - de manager doet dat voor je. Dit elimineert het risico van credential stuffing volledig.

3. Activeer tweefactorauthenticatie (2FA)

2FA voegt een tweede beveiligingslaag toe. Zelfs als een aanvaller je wachtwoord kraakt, heeft die ook nog je telefoon of security key nodig om in te loggen. Gebruik bij voorkeur een authenticator app (Google Authenticator, Authy) in plaats van SMS-codes, omdat SMS onderschept kan worden via SIM-swapping.

4. Hergebruik nooit wachtwoorden

Dit is de nummer een fout die mensen maken. Als je hetzelfde wachtwoord gebruikt voor je e-mail en een webshop, en die webshop wordt gehackt, dan is je e-mail ook compromised. En via je e-mail kan een aanvaller wachtwoorden resetten van al je andere accounts. Een password manager lost dit probleem automatisch op.

5. Check of je gegevens gelekt zijn

Via websites als Have I Been Pwned kun je controleren of je e-mailadres of wachtwoorden voorkomen in bekende data breaches. Dit is gratis en veilig om te gebruiken. Staan je gegevens erbij? Verander dan direct je wachtwoord op die dienst en overal waar je hetzelfde wachtwoord gebruikte.

6. Wees alert op phishing

Controleer altijd de URL voordat je inlogt. login.bank.nl is niet hetzelfde als login-bank.nl.attacker.com. Klik niet op links in onverwachte e-mails, en gebruik bij twijfel de officiƫle app of typ de URL zelf in. Geen enkel sterk wachtwoord beschermt je als je het zelf weggeeft op een phishing-pagina.

Ethische context: responsible disclosure

Als ethisch hacker kun je password cracking technieken gebruiken om systemen sterker te maken. Denk aan een penetratietest waarbij je de wachtwoorddatabase van een bedrijf test. Als je ontdekt dat 40% van de werknemers "Bedrijfsnaam2026" als wachtwoord gebruikt, is dat waardevolle informatie voor de IT-afdeling.

Maar hiervoor gelden strenge regels:

  • Schriftelijke toestemming - Altijd een contract of scope-document voordat je begint
  • Responsible disclosure - Vind je een kwetsbaarheid? Meld het bij de eigenaar, publiceer het niet
  • Data beschermen - Gekraakte wachtwoorden rapporteer je, maar deel je niet met onbevoegden
  • Proportionaliteit - Test wat nodig is, ga niet verder dan de scope
Password cracking op systemen zonder toestemming is illegaal, ongeacht je bedoelingen. In Nederland valt dit onder computervredebreuk (art. 138ab Sr) met straffen tot 4 jaar gevangenis. Gebruik tools als hashcat en hydra alleen ethisch: in een lab-omgeving, op eigen systemen, of met expliciete schriftelijke toestemming.

Oefenen in HackSimulator.nl

Wil je zelf ervaren hoe password cracking werkt? In HackSimulator.nl kun je veilig experimenteren met hashcat en hydra in een gesimuleerde omgeving. Je leert:

  • Hoe je hashes identificeert (MD5, SHA-256, bcrypt)
  • Welke aanvalsmodus je kiest (brute force, dictionary, rule-based)
  • Hoe je de output interpreteert
  • Waarom sommige wachtwoorden in seconden vallen en andere nooit
$ hashcat -m 0 -a 0 hash.txt wordlist.txt
Bezig met kraken... 5f4dcc3b5aa765d61d8327deb882cf99:password [TIP] MD5 hash gekraakt! Dit wachtwoord stond in de woordenlijst. Gebruik langere, unieke wachtwoorden. [!] Gebruik hashcat ALLEEN met toestemming.

Probeer het zelf!

Open de simulator en type hashcat om te zien hoe password cracking werkt. Of begin met leerpad als je helemaal nieuw bent. Alles draait veilig in je browser.

Start de simulator

Samenvatting

Laten we de belangrijkste lessen op een rij zetten:

  • Wachtwoorden worden opgeslagen als hashes - eenrichtingsfuncties die niet teruggerekend kunnen worden
  • Aanvallers proberen miljoenen wachtwoorden te hashen en vergelijken de resultaten (brute force, dictionary attack)
  • Rainbow tables versnellen dit proces, maar salting maakt ze nutteloos
  • Moderne GPU's kraken korte wachtwoorden in seconden - lengte is je beste verdediging
  • Gebruik een password manager, activeer 2FA, en hergebruik nooit wachtwoorden
  • Password cracking is legaal als tool voor ethische hackers - maar alleen met toestemming

Meer lezen?