CRAM-MD5

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

CRAM-MD5 (Challenge-Response Authentication Mechanism, Message Digest 5) ist ein Authentifizierungsverfahren nach dem Challenge-Response-Prinzip auf der Basis des MD5-HMAC-Algorithmus.

Es wird beispielsweise gerne zur Authentifizierung gegenüber SMTP- oder IMAP-Servern eingesetzt, da es die Übertragung des Passworts im Klartext vermeidet. Durch dieses Verfahren kann auch über unverschlüsselte Kanäle eine sichere Authentifizierung gegenüber einem Server erfolgen.

Verfahren[Bearbeiten]

In RFC 2195 ist das Verfahren näher beschrieben:

  1. Der Server sendet eine Zeichenkette (Zahlen, Zeitstempel und voll qualifizierter Hostname des Servers) zum Client (Challenge).
  2. Der Client antwortet mit einer Zeichenkette aus Nutzernamen, Leerzeichen und einem „Digest“. Dieses Digest ist der Base64 kodierte MD5-Hash eines Wertes berechnet aus Challenge und Passwort (Response).
  3. Der Server kann das erhaltene Digest überprüfen, indem er dieselbe Berechnung durchführt und das Ergebnis mit dem vom Client erhaltenen vergleicht. Dazu benötigt er Hashwerte (ipad/opad) des Passwortes (oder bei falscher Implementierung das Passwort im Klartext).

Die Berücksichtigung des Zeitstempels vom Server bei der Berechnung des Passwort-Hashs verhindert also, dass Angreifer über unsichere Verbindungen an die direkten Authentifizierungsmerkmale eines Benutzers gelangen können. Würde das Passwort des Benutzers lediglich gehasht, brauchte ein Angreifer nur diesen Hash abzugreifen und könnte sich damit gegenüber einem Server beliebig authentifizieren. Selbst unter Kenntnis des Zeitstempels, den der Server zum Client geschickt hat, gelingt einem Angreifer dies nicht mehr, weil sich der Zeitstempel vom Server bei jedem Authentifizierungsvorgang ändert, der Angreifer aber nicht im Besitz des Passwortes ist, um dieses inklusive des Zeitstempels hashen und selbst an den Server schicken zu können. Es besteht lediglich die Möglichkeit, den Zeitstempel des Servers und den daraus generierten Digest des Clients abzugreifen und mit verschiedenen kryptografischen Attacken, Brute-Force, Dictionary Attack, Rainbow Table usw., ausgehend von Hash und Zeitstempel wieder auf das Klartextpasswort zurück zu schließen. Da dies sehr aufwändige Prozesse sind, kann CRAM-MD5 durchaus als ausreichend sicher gelten.

Weblinks[Bearbeiten]

  • RFC 2104 – Keyed MD5
  • RFC 2195 – IMAP/POP Authorize Extension for simple challenge/response