HTTP-Grundlagen

Hypertext Transfer Protocol

Digest Access Authentication

Die Basic-HTTP-Authentication unterliegt einer massiven Einschränkung: Sie sieht keine Verschlüsselung der Benutzerdaten vor. Um diese Schwäche zu beseitigen, wurde Digest Access Authentication (RFC 2617) eingeführt.

Digest Access Authentication benutzt mehrere Parameter für die Verschlüsselung. Die Verwendung von Zufallswerten ist dabei vorgeschrieben. Für die Verschlüsselung des Passwortes nimmt der Mechanismus neben dem Zufallswert den Benutzernamen, das Passwort, die HTTP-Methode und die angeforderte URL. Die Verschlüsselungsmethode basiert in der Praxis meist auf einem MD5 -Algorithmus. Versucht ein Client auf eine gesicherte Site zuzugreifen, antwortet der Server zunächst mit einem Unauthorized-Header:

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest
realm="testrealm@host.com",
qop="auth,auth-int",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
opaque="5ccc069c403ebaf9f0171e9517f40e41"

Der Client übermittelt anschließend Benutzername und Passwort zum Server. Die Antwort des Clients verdeutlicht der nachstehende Authorization Header:

Authorization: Digest username="Benutzername",
realm="testrealm@host.com",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
uri="/dir/index.html",
qop=auth,
nc=00000001,
cnonce="0a4f113b",
response="6629fae49393a05397450978507c4ef1",
opaque="5ccc069c403ebaf9f0171e9517f40e41"

Nach der Übermittlung des verschlüsselten Passwortes gewährt oder aber verwehrt der Server den Zutritt.

Die zwischen HTTP-Server und Client übertragen Daten und Kommandos bleiben von diesem Mechanismus unberührt. (mhe)