Mailinglisten-Archive |
Alex Killing wrote: > Ich muß aber zugeben, daß ich keine Ahnung habe was ein > Challenge-Response-Mechanismus ist. Ein Mechanismus, mit dem man die Übertragung des Paßwortes zum Zwecke der Anmeldung verhindert. Client und Server verfügen über eine gleichartige kryptographische Hashfunktionm, zum Beispiel md5. Der Server sendet ein Anmeldeformular, das die Felder Username, Paßwort und als Hiddenvariable eine Zufallszahl enthält, die Challenge. Der Server merkt sich außerdem alle drei dieser Daten. Auf dem Client gibt der Anwender Username und Paßwort ein und durch Anwendung der Hashfunktion wird nun md5("username:paßwort:challenge") berechnet, die Response. Danach wird das Paßwort auf dem Client gelöscht, sodaß zum Server Username und Response zurückübertragen werden. Der Server kann nun mit Kenntnis des Usernamens das Paßwort für diesen User berechnen und - da er sich die Challenge gemerkt hat - selber die erwartete Response md5("username:paßwort:challenge") ausrechnen. Vergleicht er die erwartete Challenge mit der tatsächlich erhaltenen Challenge, kann er bestimmen, ob der User das korrekte Paßwort eingegeben hat oder nicht - ohne daß dabei das Paßwort jemals über die Leitung übermittelt worden ist. Challenge-Response-Authentication wird zum Beispiel vom NT Lan Manager eingesetzt und findet als bevorzugtes Anmeldeverfahren zur HTTP Auth bei Kommunikation zwischen NTS IIS und MSIE statt. Mit PHPLIB Challenge- Auth wird das Verfahren jedoch zwischen beliebigen Servern und Browsern portabel, die Javascript enabled haben. Hat der Browser kein JS enabled, fällt das Verfahren automatisch auf die normale Auth zurück, bei der Paßworte im Klartext übertragen werden. Außerdem erhält die Anwendung noch Information darüber, ob der Client JS-fähig ist oder nicht. Kristian -- Kristian Köhntopp, NetUSE Kommunikationstechnologie GmbH Siemenswall, D-24107 Kiel, Germany, +49 431 386 436 00 Using PHP3? See our web development library at http://phplib.shonline.de/ (GPL)
php::bar PHP Wiki - Listenarchive