# Challenge-Response-Authentifizierung

Das Challenge-Response-Verfahren (übersetzt etwa Aufforderung-Antwort-Verfahren) ist ein sicheres Authentifizierungsverfahren eines Teilnehmers auf Basis von Wissen. Hierbei stellt ein Teilnehmer eine Aufgabe (engl. challenge), die der andere lösen muss (engl. response), um zu beweisen, dass er eine bestimmte Information (gemeinsames Geheimnis) kennt, ohne diese Information selber zu übertragen. Dies ist ein Schutz dagegen, dass das Passwort von Angreifern auf der Leitung mitgehört werden kann.
Hierfür gibt es im Detail unterschiedliche Methoden, die auf diesem Grundprinzip beruhen: Wenn sich eine Seite (in der Kryptographie meist als Alice benannt) gegenüber einer anderen Seite (meist Bob genannt) authentifizieren möchte, so sendet Bob eine Zufallszahl N (Nonce) an Alice (Bob stellt also die Challenge). Alice ergänzt diese Zahl N um ihr Passwort, wendet eine kryptologische Hashfunktion oder Verschlüsselung auf diese Kombination an und sendet das Ergebnis an Bob (und liefert somit die Response). Bob, der sowohl die Zufallszahl als auch das gemeinsame Geheimnis (= das Kennwort von Alice) und die verwendete Hashfunktion bzw. Verschlüsselung kennt, führt dieselbe Berechnung durch und vergleicht sein Ergebnis mit der Response, die er von Alice erhält. Sind beide Daten identisch, so hat sich Alice erfolgreich authentifiziert.

## Angriffe
### Known-Plaintext-Angriff

    Ein Angreifer, der auf der Leitung mithört, hat allerdings die Möglichkeit, einen sogenannten Known-Plaintext-Angriff zu starten. Hierzu zeichnet er die übertragene Zufallszahl (Challenge) sowie die dazugehörige Response auf und versucht, mit kryptoanalytischen Methoden auf das verwendete Passwort zu schließen.
       Beispiel
       Solche Angriffe haben z. B. in GSM-Systemen zum Erfolg geführt.
       Schutz
       Eine weitere Möglichkeit zur weitgehenden Verhinderung dieses Angriffs ist das zusätzliche Einbeziehen eines nur für kurze Zeit gültigen Zeitstempels in die Challenge, so dass die Gültigkeitsdauer der Response abläuft, bevor der Angreifer das Passwort erraten kann. Um ein erneutes Übertragen (Replay-Attacke) einer abgefangenen Response erfolglos zu machen, muss zudem sichergestellt sein, dass die Zufallszahl im Challenge mit jeder Verbindung bzw. Sitzung wechselt und sich ein langfristiges Sammeln der Response-Antworten durch den Angreifer nicht lohnt; dies wird durch das Ablaufen der Zeitstempel erreicht.

### Wörterbuchangriff

    Eine weitere Möglichkeit besteht im Wörterbuchangriff. Hier rät der Angreifer das Passwort, verschlüsselt damit die Zufallszahl und vergleicht sein Ergebnis mit der Response.
       Beispiel
       Auf diese Weise konnte die Version 4 des Kerberos-Protokolls erfolgreich attackiert werden.
       Schutz
       Abhilfe schafft beispielsweise die verschlüsselte Übermittlung der Zufallszahl von Bob zu Alice.

## Nachteile

Es muss sichergestellt sein, dass der Passworthash, der sich auf der Server-Seite befindet, auf der Client-Seite erzeugt werden kann. Andernfalls müsste das Passwort im Klartext auf der Server-Seite gespeichert werden. Bei Hashing-Algorithmen mit Salt muss der Client über diesen verfügen, um den Hash auf der Client-Seite zu erzeugen.
Ein weiterer Nachteil ist, dass auch auf Client-Seite (Alice) das Geheimnis im Klartext vorliegen muss, damit der Client sich als berechtigter Benutzer ausgeben kann. Dies kann man dadurch beheben, dass die Response auf einer Chipkarte berechnet wird, dann hat man aber wieder das Problem, dass man sicherstellen muss, dass kein Unbefugter Alices Chipkarte benutzt.

## Anwendung

Anwendungen findet die Challenge-Response-Authentifizierung im APOP-Authentifikationsverfahren des POP3-Protokolls, in der CHAP-Authentifizierung für PPP-Netzwerkverbindungen (z. B. ADSL- oder Modem-Internetverbindungen) oder im CRAM-MD5-Verfahren.
Apples Version des VNC-Protokolls für die Bildschirmfreigabe nutzt ebenfalls ein Challenge-Response-Verfahren zur Anmeldung.

## Normen und Standards

* J. Klensin, R. Catoe, P. Krumviede: RFC 2195 – IMAP/POP AUTHorize Extension for Simple Challenge/Response. September 1997 (englisch).