In einer zunehmend vernetzten Welt reicht es nicht mehr aus, Passwörter einfach nur zu speichern oder zu verschlüsseln. Cyberkriminelle entwickeln ständig neue Methoden, um sensible Daten abzugreifen – deshalb braucht es stärkere Schutzmechanismen. Passwort-Hashing und Salting gehören zu den effektivsten Verfahren, um eure Zugangsdaten wirksam vor Missbrauch zu schützen. In diesem Artikel erklären wir euch, wie diese Technologien funktionieren – und warum sie heute zum Standard jeder sicheren IT-Infrastruktur gehören sollten.
Was ist Passwort-Hashing?
Beim Passwort Hashing handelt es sich um einen Prozess, bei dem ein Passwort mithilfe einer sogenannten Hashfunktion in eine Zeichenkette fester Länge umgewandelt wird. Diese Zeichenkette – der sogenannte Hashwert – sieht völlig anders aus als das ursprüngliche Passwort und lässt sich (theoretisch) nicht zurückrechnen. Typische Algorithmen dafür sind z. B. bcrypt, scrypt oder Argon2.
Warum ist Passwort Hashing notwendig?
1. Schutz bei Datenlecks
Wenn eine Datenbank komprimitiert wird und die Passwörter im Klartext gespeichert sind, kann jeder Angreifer sofort auf die Konten zugreifen. Hashes hingegen sind unlesbar – und durch zusätzliche Sicherheitsmechanismen wie Salting sogar individuell unterschiedlich, selbst bei identischen Passwörtern.
2. Einwegfunktion
Hashfunktionen sind nicht umkehrbar – das heißt, selbst der Betreiber der Plattform kann das Originalpasswort nicht rekonstruieren. Das ist ein wichtiges Prinzip des „Zero Knowledge“-Prinzips in der IT-Sicherheit.
1. Standart in der IT-Sicherheit
Das Hashing (in Kombination mit Salt und einem sicheren Algorithmus) ist ein anerkannter Best Practice-Standard und wird u. a. in der DSGVO und in Sicherheitsstandards wie ISO 27001 indirekt gefordert
Hashing vs. Verschlüsselung: Der Unterschied erklärt
Hashing und Verschlüsselung werden oft verwechselt, erfüllen aber unterschiedliche Zwecke. Verschlüsselung ist ein reversibler Prozess – das bedeutet, dass ein Passwort oder eine Nachricht mit einem Schlüssel verschlüsselt und später mit dem passenden Schlüssel wieder entschlüsselt werden kann. Das Ziel ist die Vertraulichkeit der Information über eine bestimmte Zeit hinweg.
Hashing dagegen ist nicht umkehrbar. Ein gehashter Wert kann nicht sinnvoll in das ursprüngliche Passwort zurückgewandelt werden. Deshalb eignet sich Hashing ideal zur Verifizierung von Passwörtern: Beim Login wird das eingegebene Passwort erneut gehasht und mit dem gespeicherten Hash verglichen – ohne das Passwort selbst jemals speichern zu müssen.
Kurz:
- Verschlüsselung = wiederherstellbar (z. B. für Datenübertragung)
- Hashing = Einweg-Funktion (z. B. für Passwortverifikation)
Eigenschaften sicherer Hashfunktionen
Eine sichere Hashfunktion für Passwörter muss spezifische Anforderungen erfüllen:
- Langsamkeit (Rechenintensität): Um Brute-Force-Angriffe zu erschweren
- Salt-Unterstützung: Um Rainbow-Table-Angriffe zu verhindern
- Resistenz gegen parallele Verarbeitung: Verhindert effiziente GPU- oder ASIC-Angriffe
- Zukunftssicherheit: Algorithmus sollte aktiv gepflegt und sicherheitsgeprüft sein
- Speicherhärtung (bei Argon2): Erschwert Angriffe mit dedizierter Hardware
Was ist ein Salt – und wofür wird es gebraucht?
Ein Salt ist eine zufällig generierte Zeichenfolge, die zusätzlich zum Passwort in den Hash einfließt. Dadurch wird sichergestellt, dass auch identische Passwörter unterschiedliche Hashes erzeugen. Ohne Salt könnte ein Angreifer vorberechnete Hash-Wörterbuchtabellen (sogenannte Rainbow Tables) verwenden, um Passwörter sofort zu erkennen. Der Salt macht diese Methode praktisch nutzlos, da der Angreifer für jeden Hash und jeden Salt neu rechnen müsste.
Beispiel:
- Nutzer A & B verwenden beide „Passwort123“
- Ohne Salt: gleicher Hash → leicht angreifbar
- Mit Salt: völlig unterschiedliche Hashes → sicherer
Empfohlene Algorithmen fürs Passwort-Hashing
Für sicheres Passwort-Hashing gelten heute insbesondere folgende Algorithmen als Best Practices:
- bcrypt: Weit verbreitet, gut getestet, unterstützt Salting und ist konfigurierbar in der Rechenzeit
- scrypt: Zusätzlich speicherintensiv → erschwert Angriffe mit spezialisierter Hardware
- Argon2: Gewinner des Password Hashing Competition (PHC), gilt aktuell als modernster Standard (besonders Argon2id)
Diese Algorithmen bieten Schutz gegen moderne Angriffe und können in der Konfiguration an Sicherheitsanforderungen angepasst werden.
Warum MD5 & SHA-1 unsicher sind
MD5 und SHA-1 wurden ursprünglich nicht für Passwortsicherheit, sondern für schnelle Integritätsprüfungen konzipiert. Genau das ist ihr Problem: Sie sind viel zu schnell und damit ideal für Brute-Force- oder Dictionary-Attacken geeignet. Zudem sind beide Algorithmen heute kryptografisch gebrochen – das bedeutet, es gibt reale Methoden, um gezielt Kollisionen zu erzeugen, also zwei verschiedene Eingaben mit identischem Hash. Das macht sie nicht nur unsicher, sondern ist für Passwörter völlig ungeeignet.
So funktioniert die Passwortprüfung mit Hashes
Beim Login läuft die Überprüfung wie folgt ab:
- Der Benutzer gibt sein Passwort ein.
- Das System entnimmt aus der Datenbank den zugehörigen Salt und Hash.
- Es hasht das eingegebene Passwort mit demselben Salt.
- Das Ergebnis wird mit dem gespeicherten Hash verglichen.
- Stimmen die Werte überein, ist die Authentifizierung erfolgreich.
Das eigentliche Passwort wird dabei nie gespeichert oder direkt verglichen – nur die Hashwerte entscheiden.
Warum Rechenintensität entscheidend ist
Rechenintensität (auch Work Factor genannt) ist ein Sicherheitsmerkmal: Je mehr Rechenzeit ein Hash benötigt, desto schwieriger ist es für Angreifer*innen, Millionen Hashes pro Sekunde auszuprobieren. Moderne Algorithmen wie bcrypt oder Argon2 lassen sich so konfigurieren, dass ein Hashvorgang z. B. 200 Millisekunden dauert. Für legitime Nutzer ist das kein Problem – aber für Angreifer, die Milliarden Passwörter testen wollen, ist es ein massives Hindernis.
Wichtig: Der Work Factor sollte regelmäßig überprüft und ggf. angepasst werden, wenn die Rechenleistung zunimmt.
Risiken durch unsichere Passwortspeicherung
Die größten Risiken sind:
- Kompletter Identitätsdiebstahl: Wenn Klartextpasswörter geleakt werden, können Accounts direkt übernommen werden.
- Credential Stuffing: Die gleichen Passwörter werden oft auf mehreren Plattformen verwendet – Angreifer testen sie automatisiert auf anderen Seiten.
- Image- und Vertrauensverlust: Ein Datenleck mit Klartextpasswörtern kann den Ruf eines Unternehmens langfristig ruinieren.
- DSGVO-Verstöße und Bußgelder: Fehlender Schutz personenbezogener Daten kann rechtliche Konsequenzen nach sich ziehen.
So stellst du sicher auf modernes Hashing um
Die Umstellung ist technisch anspruchsvoll, aber machbar:
- Neue Hashmethode implementieren (z. B. bcrypt statt SHA1)
- Bestehende Passwörter zunächst weiter verwenden, aber:
- Beim nächsten Login oder Passwort-Reset den neuen Hashalgorithmus anwenden
- Optional: alle Nutzer zu Passwortänderung auffordern, um Migration zu beschleunigen
- Ggf. Versionierung der Hashes einführen (z. B. Hash mit Prefix: $2y$ bei bcrypt)
Wichtig ist, die Umstellung transparent und sicher zu gestalten – inklusive Tests, Logging und ggf. Benachrichtigung der Nutzer.
FAQ
Was ist der Unterschied zwischen Hashing und Verschlüsselung?
Was ist der Unterschied zwischen Hashing und Verschlüsselung?
Was ist ein „Salt“ und warum ist er für die Sicherheit unverzichtbar?
Was ist ein „Salt“ und warum ist er für die Sicherheit unverzichtbar?
Ein Salt ist eine zufällig generierte Zeichenkette, die dem Passwort vor dem Hashing hinzugefügt wird. Das sorgt dafür, dass selbst identische Passwörter zweier Nutzer völlig unterschiedliche Hashwerte erzeugen. Ohne Salt könnten Angreifer vorgefertigte Tabellen (sogenannte Rainbow Tables) nutzen, um gehashte Passwörter blitzschnell zu knacken.
Welche Hash-Algorithmen gelten als sicher und welche sollten nicht mehr verwendet werden?
Welche Hash-Algorithmen gelten als sicher und welche sollten nicht mehr verwendet werden?
Wie überprüft ein System beim Login das Passwort, wenn es gar nicht gespeichert ist?
Wie überprüft ein System beim Login das Passwort, wenn es gar nicht gespeichert ist?
Beim Login gibt der Nutzer sein Passwort ein. Das System holt den zur E-Mail/dem Benutzernamen gehörigen Salt aus der Datenbank, hängt ihn an das eingegebene Passwort an und hasht diese Kombination mit demselben Algorithmus. Stimmt das neu berechnete Hash-Ergebnis mit dem in der Datenbank hinterlegten Hashwert überein, ist die Anmeldung erfolgreich – ohne dass das Klartext-Passwort jemals gespeichert oder übertragen werden muss.







