Rechnernetze
Home Nach oben Stichworte

Challenge-Response-Verfahren

Man kann eine Person A identifizieren, indem  A eine bestimmte Handlung vollführen muss, die B nachprüfen kann, ohne dass ein dritter aus dem Ergebnis die Handlung selbst erkennen und somit nachvollziehen kann. Bei der Handlung handelt es sich meistens um eine gemeinsam vereinbarte Berechnung. 

Beim Challenge-Handshake Authentication Protocol (CHAP, RFC 1994) werden die folgenden Phasen abgewickelt, wobei B (im Protokoll authenticator) die Identität eines anderen Teilnehmers überprüfen will, während A seine Identität nachweisen will.

  1. B sendet einen Datensatz (challenge) an A.
  2. A berechnet mittels einer "Ein-Weg-Hashfunktion" einen Wert und sendet diesen an B zurück.
  3. B überprüft die Antwort anhand einer eigenen Berechnung.
    Stimmen die Ergebnisse überein, so ist die Authensierung abgeschlossen.
    Stimmen die Ergebnisse nicht überein, schlug die Authensierung fehl. 
  4. B sendet in zufälligen Abständen neue Anfragen an A, die dieser bestätigen muss.

CHAP bietet Schutz gegen Playback-Angriffen durch A, wenn ein sich ständig ändernder Datensatz (challenge) verwendet wird. B kann sich nach Belieben von der Identität von A überzeugen. Allerdings hängt die Authentisierung von einem gemeinsamen Geheimnis ab, dass nur A und B bekannt sein darf. Die Authentisierung kann natürlich in beiden Richtungen erfolgen, wenn das Verfahren von B nach A und von A nach B verwendet wird. 

Nachteilig ist, dass das "Geheimnis" im Klartext vorliegen muss, so dass keine Ein-Weg-Verschlüsselte Passwortdatenbanken verwendet werden können. Auch muss das Geheimnis bei A und B verwahrt werden, was insbesondere bei sehr großen Installation schwer zu handhaben sein wird. Der Standard schlägt vor, dass das Geheimnis an einem zentralen Server verwaltet und überprüft wird, so dass man zu einer Art von Schlüsselzentrum oder Zertifizierungsstelle kommt. Als möglicher Hash-Algorithmus wird MD5 erwähnt, der auch mindestens implementiert werden muss. Es können jedoch auch andere Verfahren ausgehandelt werden. 

Erweiterungen dieses Verfahrens werden im Challenge-Response Authentication Mechanism (CRAM) festgelegt. Dort wird HMAC: Keyed-Hashing for Message Authentication (RFC 2104) verwendet, um eine Abfrageprotokoll für E-Mail-Server (IMAP=Internet Message Access Protocol - Version 4rev1, RFC 2060) zu implementieren. HMAC ist ein Hashing-Algorithmus mit einem Schlüssel, d.h. der Hashwert hängt nicht nur vom Text, sondern auch von einem Schlüssel ab. Dabei kann der Schlüssel in einem Datensatz, dem Context, vorbearbeitet gespeichert werden, so dass er nicht mehr im Klartext vorliegen muss. Allerdings stellt dieses natürlich keine verschlüsselte Speicherung des Schlüssels dar.