Was ist das schwächste Glied in deinem System? Deine Datenbank oder deine Verschlüsselungsarchitektur? Nein, meistens ist die größte Schwachstelle die Architektur deines Passwort-Hashings selbst. Das Passwort eines Nutzers im Klartext zu speichern (zum Beispiel „123456“), gefährdet das gesamte System.
Der MD5-Irrtum
Passwörter zu „hashen“, bevor man sie speichert, ist selbstverständlich notwendig – aber veraltete Algorithmen wie MD5 schützen dich nicht, sie vermitteln nur ein falsches Gefühl von Sicherheit. Algorithmen wie MD5 wurden bewusst so entworfen, dass sie extrem schnell laufen. Für einen Angreifer ist diese Geschwindigkeit ein enormer Vorteil. Dank riesiger Rainbow Tables, die frei im Internet verfügbar sind, lassen sich Milliarden MD5-gehashter Passwörter in Sekunden zurückrechnen und knacken. Die Knackzeit liegt buchstäblich bei etwa 0,01 Sekunden.
Die Lösung: Salt und Bcrypt
Die Lösung für dieses Problem ist einfach: Dasselbe Passwort muss ein anderes Ergebnis liefern. Zu jedem Passwort wird ein völlig zufälliger Salt hinzugefügt. So sind die in der Datenbank gespeicherten Werte selbst dann völlig verschieden, wenn zwei Nutzer genau dasselbe Passwort („admin123“) wählen. Diese Methode macht vorberechnete Rainbow Tables komplett nutzlos.
Aber ein Salt allein reicht nicht. Geschwindigkeit ist eine Schwachstelle. SHA-256 kann zum Beispiel zig Milliarden Hashes pro Sekunde erzeugen – für einen Angreifer immer noch eine fantastische Geschwindigkeit. Bcrypt dagegen wird der Sicherheit zuliebe absichtlich verlangsamt. Eine zusätzliche Verzögerung von 200 Millisekunden auf dem Server belastet weder dein System noch normale Nutzer, aber sie streckt die Arbeit eines Angreifers, der Milliarden von Versuchen durchlaufen muss, auf Jahre oder sogar Jahrhunderte.
Engineering-Standards
Echte Engineering-Standards laufen auf ein paar einfache Regeln hinaus:
- Verwende weder MD5 noch SHA. Der Standard für die Speicherung von Passwörtern verlangt Algorithmen wie Bcrypt, Argon2 oder PBKDF2. Bcrypt ist in den meisten Sprachen der De-facto-Standard.
- Füge keine manuellen Salts hinzu. Versuch nicht, dir ein eigenes Hashing-Schema zu basteln, indem du beliebige Strings anhängst. Bcrypt kümmert sich intern bereits um das Salting.
- Erfinde keinen eigenen Algorithmus. „Roll your own“ funktioniert in der Sicherheitswelt nicht. Verlass dich auf bewährte Industriestandards.
Hinweis: Passwort-vergessen-E-Mails
Wenn dir ein System bei „Passwort vergessen“ jemals dein altes Passwort im Klartext per E-Mail schickt, speichert es deine Passwörter im Klartext (oder in einem umkehrbaren Format). Das ist ein riesiges Warnsignal für seine Architektur!
Zum Schluss
Die Sicherheit deiner Daten beginnt mit einer soliden Architektur. Auch du solltest das Passwort des Nutzers nicht kennen (und Systemadministratoren erst recht nicht). Bremse deine Daten absichtlich aus und nimm Angreifern den Wind aus den Segeln!
Interaktive Roadmap & Tool
System Design: Skalierung auf eine Million Nutzer
Mehr Server reichen nicht: eine Schritt-für-Schritt-System-Design-Karte dazu, warum Systeme an großen Tagen ausfallen und wie die Last reduziert wird, bevor sie die Datenbank erreicht.
SQL oder NoSQL?
Beantworte sechs Fragen, und ich sage dir, welche Art von Datenbank zu deinem Projekt passt und warum.
Als Nächstes lesen
- CZDEPHP CVE-2026-115560 im Detail: Session Upload Progress und Serialize-Handler-Mismatch erklärt
PHP CVE-2026-115560 im Detail: Session Upload Progress und Serialize-Handler-Mismatch erklärt
24. Oktober 2026 · 3 Min. Lesezeit - CZDEWas ist eine IDOR-Schwachstelle? Authentication vs. Authorization und wie du BOLA verhinderst
Was ist eine IDOR-Schwachstelle? Authentication vs. Authorization und wie du BOLA verhinderst
24. Oktober 2026 · 3 Min. Lesezeit