Grundlagen der Passwortspeicherung und Hash-Funktionen
Passwörter sind ein grundlegender Bestandteil der Authentifizierung in IT-Systemen. Ein zentrales Prinzip der Informationssicherheit besteht darin, dass Passwörter niemals im Klartext gespeichert werden. Stattdessen werden sie durch Hashing in eine Form überführt, die eine Einweg-Transformation darstellt und eine direkte Wiederherstellung verhindert.
Grundprinzip der Passwortspeicherung
Bei der Speicherung eines Passworts wird nicht das Passwort selbst abgelegt, sondern ein daraus abgeleiteter Wert, der sogenannte Hash.
Im Rahmen der Benutzer-Registrierung berechnet das System aus dem gewählten Passwort einen Hash-Wert und speichert ausschließlich dieses Ergebnis. Bei der Authentifizierung wird derselbe Prozess erneut durchgeführt. Das eingegebene Passwort wird gehasht und mit dem gespeicherten Wert verglichen. Stimmen beide Werte überein, gilt die Authentifizierung als erfolgreich.
Dieses Verfahren stellt sicher, dass das System das Passwort zu keinem Zeitpunkt im Klartext kennen oder dauerhaft speichern muss. Selbst im Falle einer kompromittierten Datenbank sind die gespeicherten Werte nicht unmittelbar als Passwörter nutzbar. Die tatsächliche Sicherheit hängt jedoch maßgeblich von der gewählten Hash-Funktion und deren Parametrisierung ab.
Hash-Funktionen
Eine kryptografische Hash-Funktion ist ein mathematisches Verfahren, das Eingaben beliebiger Länge auf einen Wert fester Länge abbildet. Für die Passwortspeicherung sind insbesondere drei Eigenschaften relevant.
Eine Hash-Funktion muss als Einwegfunktion konstruiert sein, sodass sich aus einem Hash-Wert das ursprüngliche Passwort nicht mit vertretbarem Aufwand berechnen lässt. Gleichzeitig ist sie deterministisch, sodass identische Eingaben stets zu identischen Ergebnissen führen. Darüber hinaus wird Kollisionsresistenz gefordert, also die praktische Unmöglichkeit, zwei unterschiedliche Eingaben mit demselben Hash zu finden.
Klassische Hash-Funktionen wie MD5, SHA-1 oder SHA-256 erfüllen diese Eigenschaften grundsätzlich, sind jedoch für die Passwortspeicherung ungeeignet. Der Grund dafür liegt nicht primär in ihrer kryptografischen Struktur, sondern in ihrer sehr hohen Berechnungsgeschwindigkeit.
Problem der Berechnungsgeschwindigkeit
Die hohe Effizienz klassischer Hash-Funktionen stellt im Kontext der Passwortspeicherung ein Sicherheitsproblem dar. Ein Angreifer kann große Mengen möglicher Passwörter automatisiert durchprobieren und die resultierenden Hashes mit den gespeicherten Werten vergleichen.
Durch den Einsatz spezialisierter Hardware wie GPUs oder ASICs lassen sich heute Milliarden Hash-Berechnungen pro Sekunde durchführen. Dadurch können insbesondere schwache oder häufig verwendete Passwörter in kurzer Zeit identifiziert werden.
Salt
Zur Erhöhung der Sicherheit wird bei der Passwortspeicherung ein zusätzlicher Wert verwendet, der sogenannte Salt. Dabei handelt es sich um eine zufällige Zeichenfolge, die vor dem Hashing mit dem Passwort kombiniert wird.
Die resultierende Berechnung folgt dem Prinzip:
Hash = Hashfunktion(Passwort + Salt)
Der Einsatz eines Salts sorgt zunächst dafür, dass identische Passwörter nicht mehr zu identischen Hashes führen. Dadurch kann ein Angreifer nicht erkennen, welche Benutzer dasselbe Passwort verwenden. Darüber hinaus verhindert ein Salt die effiziente Nutzung vorberechneter Angriffe wie Rainbow Tables, da für jeden einzelnen Salt eigene Vorberechnungen erforderlich wären.
Ein weiterer Effekt besteht darin, dass Angriffsergebnisse nicht wiederverwendet werden können. Selbst wenn ein Passwort für einen bestimmten Hash erfolgreich ermittelt wurde, lässt sich dieses Wissen nicht direkt auf andere Hashes übertragen. Jeder Eintrag muss separat angegriffen werden, was den Gesamtaufwand erheblich erhöht.
Ein Salt ist kein Geheimnis und wird gemeinsam mit dem Hash gespeichert. Entscheidend ist, dass er ausreichend lang ist und kryptografisch zufällig erzeugt wird.
Moderne Passwort-Hashing-Verfahren
Da klassische Hash-Funktionen für die Passwortspeicherung ungeeignet sind, wurden spezialisierte Verfahren entwickelt, die gezielt auf diesen Anwendungsfall ausgerichtet sind. Diese Verfahren erhöhen bewusst die Kosten der Berechnung und erschweren dadurch groß angelegte Angriffe.
bcrypt basiert auf Blowfish und ermöglicht die Konfiguration eines sogenannten Work Factors, der die benötigte Rechenzeit pro Hash steuert. scrypt erweitert diesen Ansatz, indem zusätzlich ein hoher Speicherbedarf erzwungen wird, wodurch Angriffe mit spezialisierter Hardware wirtschaftlich deutlich unattraktiver werden.
Argon2 gilt als aktueller Stand der Technik und geht aus der Password Hashing Competition hervor. Das Verfahren erlaubt eine flexible Steuerung von Zeitaufwand, Speicherverbrauch und Parallelisierung. Insbesondere die Variante Argon2id wird in der Praxis als empfohlene Konfiguration betrachtet.
Der wesentliche Unterschied zu klassischen Hash-Funktionen liegt darin, dass die Berechnung gezielt verlangsamt wird. Dadurch steigt der Aufwand für jeden einzelnen Angriffsversuch erheblich, was insbesondere bei groß angelegten Angriffen einen entscheidenden Sicherheitsgewinn darstellt.
Pentest Training
Werfen Sie einen Blick auf die Kapitel vom Pentest Training und lernen Sie Pentesting:
- Vorwort
- Einführung
- Rechtliche Rahmenbedingungen
- Hacking vs. Penetration-Testing
- Klassifizierung
- Aussagekraft von Penetrationstest
- Penetration-Testing-Standards
- Der Hacking-Leitfaden
- Hacking I: Scannen von Netzwerken
- Hacking II: Passwortangriffe
- Hacking III: Webanwendungsangriffe
- Hacking IV: Privilegienausweitung
- Hacking V: Tunnel-Techniken
- Hacking VI: Vulnerability-Scanner und Penetration-Testing-Frameworks
- Vorführung eines Pentests
- Risikobewertung von identifizierten Schwachstellen
- Aufbau Dokumentation und Berichterstellung
- Plauderei aus dem Nähkästchen: Insights von Dubius Payment Ltd.
binsec academy GmbH - Online IT Security Training with Practical Focus
Die binsec academy GmbH ist ein Anbieter von praxisorientierten Online-Trainings im Bereich IT-Sicherheit. Das Schulungsangebot umfasst unter anderem Penetration Testing und sichere Softwareentwicklung. Die Teilnehmer lernen in realitätsnahen Laborumgebungen, die typische IT-Infrastrukturen und Anwendungen simulieren. Die Kurse beinhalten anerkannte Standards wie den OWASP Top 10 und PCI DSS und sind in mehreren Programmiersprachen verfügbar. Nach erfolgreichem Abschluss erhalten die Teilnehmenden Zertifikate wie den Binsec Academy Certified Pentest Professional (BACPP) oder den Binsec Academy Certified Secure Coding Professional (BACSCP), die ihre praktischen Fähigkeiten zur Erkennung und Behebung von Sicherheitslücken belegen.
Gehe zu binsec acadmy GmbH
binsec GmbH – Experten für Penetrationstests
Die binsec GmbH ist ein deutsches IT-Sicherheitsunternehmen mit Schwerpunkt auf professionellen Penetrationstests. Mit über 10 Jahren Erfahrung führt das Team tiefgehende Sicherheitsprüfungen von Netzwerken, Webanwendungen, APIs und mobilen Apps durch. Zertifizierte Experten identifizieren und dokumentieren systematisch Sicherheitslücken, um Unternehmen dabei zu unterstützen, ihre IT-Sicherheit zu verbessern und Compliance-Anforderungen zu erfüllen.
Gehe zu binsec GmbH