phpbar.de logo

Mailinglisten-Archive

[php] Fw: [php] Lange Leitung

[php] Fw: [php] Lange Leitung

Kristian =?iso-8859-1?Q?K=F6hntopp?= kk_(at)_netuse.de
Mon, 12 Jul 1999 09:23:59 +0200


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