Cryptology Academy · Les

Waarom gewone SHA-256 niet geschikt is voor wachtwoorden

Begrijp rainbow tables, de snelheid van brute-forceaanvallen en salt.

Les 1 van 413 stappen

Waarom gewone SHA-256 niet geschikt is voor wachtwoorden is een gratis Cryptology Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Welkom

Wachtwoorden veilig opslaan is een van de meest verkeerd begrepen onderwerpen binnen beveiliging. In deze les begrijpen we waarom snelle hashes zoals SHA-256 rampzalig ongeschikt zijn voor wachtwoorden.

Wat er gebeurt als databases uitlekken

Databases worden voortdurend aangevallen. In 2024 lekten bij RockYou2024 10 miljard wachtwoorden. Als de wachtwoorden van je gebruikers herstelbaar zijn opgeslagen, zullen aanvallers ze achterhalen.

Naïeve opslag met SHA-256

Slecht patroon: hashed = sha256(password) store(username, hashed) Problemen: (1) sha256 is razendsnel, (2) hetzelfde wachtwoord → dezelfde hash (geen salt), (3) rainbow tables bestaan voor veelgebruikte wachtwoorden.

Aanval met een rainbow table

Een rainbow table is een vooraf berekende koppeling van hash→wachtwoord voor miljoenen veelgebruikte wachtwoorden. SHA-256('password') is altijd dezelfde hash. Opzoeken in de tabel: onmiddellijke ontsleuteling van de meeste wachtwoorden.

De rol van salt

Salt = willekeurige bytes die vóór het hashen aan het wachtwoord worden toegevoegd. hash = sha256(salt + password) Elke gebruiker krijgt een unieke salt. Rainbow tables worden daardoor nutteloos — de aanvaller moet voor elke gebruiker afzonderlijk brute force toepassen.

Maar salt alleen is niet genoeg

Een moderne GPU berekent 10 MILJARD SHA-256-hashes per seconde. Zelfs met unieke salts kan een aanvaller met gelekte hashes wachtwoorden van 8 tekens binnen enkele minuten kraken.

Het snelheidsprobleem

SHA-256 is ontworpen om snel te zijn — voor bestandsintegriteit, TLS enzovoort. Snelheid is een vijand bij het hashen van wachtwoorden. We hebben bewust trage algoritmen nodig die bestand zijn tegen brute force.

Key stretching

Key stretching past de hashfunctie duizenden keren toe: for i in range(100000): h = sha256(h). Dit vertraagt zowel de aanvaller als de verdediger — maar het hardwarevoordeel blijft bij de aanvaller.

Geheugenintensieve functies

Moderne functies voor het hashen van wachtwoorden vereisen grote hoeveelheden RAM, niet alleen CPU-cycli. GPU's hebben per core minder RAM dan CPU's. De geheugenvereisten van Argon2 neutraliseren de voordelen van GPU's en ASIC's.

Veelgemaakte fouten

Niet doen: - sha256(password) - sha256(salt + password) without iteration - md5(password) (or any MD5) - Wachtwoorden versleutelen (ze kunnen worden ontsleuteld) - sha256(sha256(password)) (nog steeds snel)

Wat je in plaats daarvan gebruikt

Gebruik: bcrypt (het meest toegepast), Argon2id (aanbevolen door OWASP, geheugenintensief), PBKDF2-SHA256 (voldoet aan FIPS, acceptabel). Alle drie zijn bewust langzaam en gebruiken van nature salt.

Korte controle

Waarom is SHA-256 ongeschikt voor het hashen van wachtwoorden, zelfs als je salt gebruikt?

Samenvatting

SHA-256 is niet geschikt voor wachtwoorden. Hierna bestuderen we bcrypt — het algoritme dat hashing bewust langzaam en bestand tegen hardwareaanvallen maakt.
Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “Waarom gewone SHA-256 niet geschikt is voor wachtwoorden” gratis?

Ja — de volledige tekst van “Waarom gewone SHA-256 niet geschikt is voor wachtwoorden” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “Waarom gewone SHA-256 niet geschikt is voor wachtwoorden”?

Begrijp rainbow tables, de snelheid van brute-forceaanvallen en salt. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Waarom gewone SHA-256 niet geschikt is voor wachtwoorden”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Waarom gewone SHA-256 niet geschikt is voor wachtwoorden
  2. bcrypt: algoritme en cost factor
  3. Argon2: memory-hard hashing van wachtwoorden
  4. PBKDF2 en het juiste algoritme kiezen
← Terug naar Cryptology Academy