RFC 5802 – Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms
| Status | Proposed Standard |
|---|---|
| Veröffentlicht | Juli 2010 |
| Volltext | rfc-editor.org/rfc/rfc5802 |
RFC 5802 spezifiziert die Salted Challenge Response Authentication Mechanism (SCRAM) als Familie von SASL- und GSS-API-Mechanismen. SCRAM adressiert Sicherheitsprobleme von Klartext-Passwort-Authentifizierung über TLS, indem es eine Challenge-Response-Authentifizierung mit gesalzenen Passwort-Hashes ermöglicht. Das Verfahren ist so konzipiert, dass die im Authentifizierungsserver gespeicherten Informationen allein nicht ausreichen, um einen Client zu imitieren – selbst bei Diebstahl der Datenbank durch einen Precomputed-Dictionary-Angriff.
Der Kernmechanismus basiert auf einem mehrschrittigen Austausch: Der Client sendet einen Benutzernamen und einen Client-Nonce, worauf der Server mit einem eigenen Nonce, dem Salt und der Iterationsanzahl antwortet. Der Client berechnet daraus mittels einer kryptografischen Hashfunktion (z. B. SHA-1) einen Client-Proof, der dem Server seine Kenntnis des Passworts nachweist, ohne dieses direkt zu übertragen. Der Server wiederum kann die Client-Authentifizierung überprüfen und optional eine Server-Proof-Nachricht senden, die dem Client die Authentizität des Servers bestätigt (mutual authentication).
SCRAM gilt als moderner und deploymentsfreundlicher Nachfolger älterer Challenge-Response-Mechanismen wie CRAM-MD5 oder DIGEST-MD5. Es ist für den Einsatz mit externen Sicherheitsschichten wie TLS vorgesehen und unterstützt Channel Binding zur Anbindung an diese Schicht. Durch die Trennung von Client- und Server-seitig gespeicherten Schlüsseln und die Verwendung eines Salt-Wertes bietet SCRAM eine praxistaugliche Lösung für sichere Authentifizierung in Protokollen wie SMTP, XMPP oder LDAP.