0Pricing
Cloud & IT Cert Prep · Lektion

Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2

Vergleichen Sie Hashing-Algorithmen für Passwörter anhand ihrer Widerstandsfähigkeit gegen GPU- und ASIC-Angriffe und verstehen Sie, wie Arbeitsfaktoren und Speicherhärte abgestimmt werden.

Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2 ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Warum sich Passwort-Hashing unterscheidet

Für die Speicherung von Passwörtern ist eine spezielle Klasse kryptografischer Funktionen erforderlich, die als Passwort-Hashfunktion (PHF) oder Schlüsselableitungsfunktion (KDF) bezeichnet wird. Reguläre kryptografische Hashfunktionen wie SHA-256 sind auf hohe Geschwindigkeit ausgelegt – eine moderne GPU kann Milliarden von SHA-256-Hashes pro Sekunde berechnen. Diese Geschwindigkeit ist bei der Passwortspeicherung katastrophal: Ein Angreifer, der eine Hash-Datenbank stiehlt, kann Milliarden von Passwörtern pro Sekunde ausprobieren. Passwort-KDFs sind absichtlich langsam und lassen sich so konfigurieren, dass Brute-Force-Angriffe praktisch nicht durchführbar sind, während eine legitime Anmeldung weiterhin innerhalb von Millisekunden möglich bleibt.

Salt-Verwendung: Rainbow-Tabellen abwehren

Bevor spezielle Passwort-KDFs existierten, verwendeten Angreifer Rainbow-Tabellen – vorberechnete Zuordnungen von Hashwerten zu Klartextpasswörtern. Ein Salt ist ein zufälliger, pro Benutzer eindeutiger Wert, der vor dem Hashing dem Passwort vorangestellt oder angehängt wird. Dadurch wird jeder Hash eindeutig, selbst wenn identische Passwörter verwendet werden. Salts werden zusammen mit dem Hash in der Datenbank gespeichert – sie sind nicht geheim, sondern lediglich zufällig. Ein geeignetes Salt muss mindestens 16 Byte lang sein, von einem kryptografisch sicheren Zufallszahlengenerator erzeugt und pro Benutzer gespeichert werden (es darf niemals für mehrere Konten wiederverwendet werden).

PBKDF2: Der Passwortstandard

PBKDF2 (Password-Based Key Derivation Function 2) ist in RFC 8018 definiert und von NIST zugelassen. Dabei wird eine HMAC-Funktion (typischerweise HMAC-SHA-256) konfigurierbar oft auf das Passwort und das Salt angewendet. Die Anzahl der Iterationen bildet den Arbeitsfaktor – NIST empfiehlt seit 2023 mindestens 600.000 Iterationen von PBKDF2-HMAC-SHA256. PBKDF2 wird häufig eingesetzt (Django, iOS Keychain, WPA2-PSK), hat jedoch eine Schwäche: Es kann effizient auf GPUs implementiert werden und ist daher weniger GPU-resistent als Alternativen.

# PBKDF2 example (Python pseudocode concept)
# import hashlib
# dk = hashlib.pbkdf2_hmac(
#   'sha256',         # hash algorithm
#   b'password',      # password bytes
#   b'random_salt',   # salt bytes
#   600000            # iterations
# )

bcrypt: Speicher- und CPU-Härte

bcrypt wurde 1999 von Niels Provos und David Mazieres entwickelt und wird weiterhin häufig eingesetzt. Die wichtigste Neuerung ist ein Kostenfaktor (Parameter „rounds“), bei dem sich die Berechnungszeit mit jeder Erhöhung verdoppelt. bcrypt verwendet eine modifizierte Blowfish-Chiffre mit einer Eksblowfish-Schlüsseleinrichtung, die sowohl CPU- als auch speicherintensiv ist. Dadurch lässt sich bcrypt im Vergleich zu PBKDF2 deutlich schwerer auf GPUs beschleunigen. bcrypt begrenzt außerdem die Passworteingabe auf 72 Byte (längere Passwörter werden abgeschnitten). Daher müssen lange Passwörter in manchen Implementierungen zunächst mit SHA-256 gehasht werden.

# bcrypt cost factor
# Cost 10 = ~100ms on modern hardware
# Cost 12 = ~400ms
# Cost 14 = ~1600ms
# Each +1 doubles the work
# Recommended: cost 12-14 for web apps
# Command: htpasswd -bnBC 12 username password

Argon2: Der moderne Spitzenreiter

Argon2 gewann 2015 den Password Hashing Competition und wird derzeit von OWASP empfohlen. Es gibt drei Varianten: Argon2d (schneller, anfällig für Seitenkanalangriffe, am besten für Kryptowährungen geeignet), Argon2i (konstante Laufzeit, am besten für Passwort-Hashing geeignet) und Argon2id (Hybridvariante, für die meisten Anwendungen empfohlen). Argon2id lässt sich in drei Dimensionen konfigurieren: time cost (Iterationen), memory cost (benötigter Arbeitsspeicher) und parallelism (Threads). Der hohe Speicherbedarf erschwert die Parallelisierung auf GPUs erheblich und macht sie auf ASICs vollständig undurchführbar.

# Argon2id recommended parameters (OWASP 2023)
# Memory: 64MB (65536 KiB)
# Iterations: 3
# Parallelism: 4 threads
# Output length: 32 bytes
# argon2 -id -t 3 -m 16 -p 4 -l 32

Speicherhärte: Warum sie GPU-Angriffe abwehrt

GPUs verfügen über Tausende von Kernen, aber nur über begrenzten Speicher pro Kern – sie eignen sich besonders gut für die Parallelisierung einfacher, speicherarmer Berechnungen. Speicherharte Funktionen wie Argon2 und scrypt benötigen für jede Hash-Berechnung große Mengen an Arbeitsspeicher. Wenn ein Angreifer 10.000 parallele Argon2id-Berechnungen ausführen möchte, die jeweils 64 MB Speicher benötigen, braucht er 640 GB GPU-Speicher – weit mehr, als jeder verfügbare GPU-Cluster bereitstellen kann. Diese Eigenschaft, die als Speicherhärte bezeichnet wird, zwingt Angreifer dazu, entweder langsame sequenzielle Berechnungen auszuführen oder in außergewöhnlich teure Hardware zu investieren, wodurch Angriffe unwirtschaftlich werden.

Arbeitsfaktor in der Praxis abstimmen

Der passende Arbeitsfaktor hängt von Ihrer Hardware und der akzeptablen Latenz ab. Als allgemeines Ziel gelten 100–300 ms auf der Produktionshardware des Servers pro Authentifizierung. Mit leistungsfähigerer Hardware sollten Sie den Arbeitsfaktor erhöhen. Deshalb speichern bcrypt und Argon2 die Parameter zusammen mit dem Hash und ermöglichen so transparente Aktualisierungen: Bei der nächsten Anmeldung wird das Passwort überprüft und anschließend mit den neuen, höheren Parametern erneut gehasht. OWASP pflegt aktuelle empfohlene Mindestparameter für PBKDF2, bcrypt und Argon2id, die jährlich überprüft werden sollten.

scrypt: Die andere speicherharte KDF

scrypt, 2009 von Colin Percival entwickelt, war die erste weithin eingesetzte speicherharte KDF und wird von Litecoin sowie vielen Passwort-Managern verwendet. scrypt wird durch N (CPU-/Speicherkosten), r (Blockgröße) und p (Parallelisierungsfaktor) parametrisiert. Wie bei Argon2 erfordern hohe N-Werte große Mengen an Arbeitsspeicher pro Berechnung. scrypt gilt als sicher, für neue Anwendungen wird jedoch im Allgemeinen Argon2id bevorzugt, da es den PHC gewonnen hat und umfassender kryptografisch analysiert wurde. Beide sind akzeptable Optionen.

Was Sie NICHT verwenden sollten: MD5, SHA-1 und SHA ohne Salt

Mehrere Hashing-Verfahren dürfen niemals für Passwörter verwendet werden: MD5 (gebrochen, Milliarden Hashes pro Sekunde auf handelsüblicher Hardware), SHA-1 (dasselbe Problem), SHA-256 ohne Salt (schnell, Rainbow-Tabellen trivial einsetzbar) und einfache Verschlüsselung (umkehrbar; der Diebstahl des Schlüssels legt alle Passwörter offen). Historische Datenpannen wie bei LinkedIn (2012) verwendeten SHA-1 ohne Salt und legten 117 Millionen Passwörter offen, die innerhalb weniger Tage geknackt wurden. Adobe (2013) verschlüsselte Passwörter, anstatt sie zu hashen – ein grundlegendes Missverständnis, durch das 153 Millionen Konten offengelegt wurden. Diese Vorfälle gehören zum Prüfungsstoff von Security+.

Schlüsselableitung für Verschlüsselungsschlüssel

KDFs werden auch verwendet, um Verschlüsselungsschlüssel aus Passwörtern abzuleiten (anstatt Passwort-Hashes zu speichern). Wenn ein Benutzer ein Masterpasswort für einen verschlüsselten Tresor festlegt, verwendet die Anwendung eine KDF, um aus diesem Passwort den eigentlichen AES-256-Verschlüsselungsschlüssel abzuleiten. Deshalb können Passwort-Manager Ihren Tresor lokal entschlüsseln: Sie führen die KDF mit Ihrem Masterpasswort aus, um den Verschlüsselungsschlüssel wiederherzustellen, der Ihr Gerät niemals verlässt. HKDF (HMAC-based Key Derivation Function) ist der Standard zur Ableitung mehrerer Schlüssel aus einem einzelnen Secret mit hoher Entropie und wird in TLS 1.3 zur Ableitung von Handshake- und Anwendungsschlüsseln verwendet.

Credential-Stuffing und KDF-Schutz

Credential-Stuffing-Angriffe verwenden Benutzernamen-/Passwort-Kombinationen, die bei einem Angriff erbeutet wurden, erneut bei anderen Diensten. Starke KDFs verkürzen das Zeitfenster für Offline-Cracking nach einem Sicherheitsvorfall – wenn der Angreifer pro Versuch 300 ms statt Mikrosekunden aufwenden muss, wird das Knacken eines zufälligen 10-stelligen Passworts praktisch unmöglich. KDFs schützen jedoch nicht vor der Wiederverwendung von Passwörtern auf mehreren Websites – dafür müssen Benutzer eindeutige Passwörter verwenden. Die Kombination aus eindeutigen Passwörtern + Argon2id-Speicherung + MFA macht auf Anmeldedaten basierende Angriffe in der Praxis unwirksam.

Schnelltest

Testen Sie Ihr Verständnis der CompTIA-Security+-Konzepte (SY0-701) aus dieser Lektion.

Zusammenfassung der Lektion

In dieser Lektion haben Sie gelernt: Passwort-KDFs sind absichtlich langsam und verfügen über anpassbare Arbeitsfaktoren, um Offline-Brute-Force-Angriffe praktisch undurchführbar zu machen, speicherintensive Funktionen wie Argon2id und scrypt verhindern die Parallelisierung durch GPUs, indem sie pro Berechnung große Mengen RAM erfordern, und MD5, SHA-1 und ungesalzene Hashes sind für die Passwortspeicherung völlig ungeeignet, wie mehrere viel beachtete Sicherheitsvorfälle gezeigt haben. Als Nächstes befassen wir uns mit Post-Quanten-Kryptografie und den von NIST ausgewählten Algorithmen, die RSA und ECC ersetzen sollen.

Häufig gestellte Fragen

Ist die Lektion „Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2“ kostenlos?

Ja — der vollständige Text von „Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2“?

Vergleichen Sie Hashing-Algorithmen für Passwörter anhand ihrer Widerstandsfähigkeit gegen GPU- und ASIC-Angriffe und verstehen Sie, wie Arbeitsfaktoren und Speicherhärte abgestimmt werden. Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. TLS-1.3-Handshake und 0-RTT-Wiederaufnahme
  2. Authentifizierte Verschlüsselung: AES-GCM und ChaCha20-Poly1305
  3. Schlüsselableitungsfunktionen: PBKDF2, bcrypt und Argon2
  4. Postquantenkryptografie: CRYSTALS-Kyber und Dilithium
← Zurück zu Cloud & IT Cert Prep