Tag Archiv für HTTP

HTTP Authentifizierung

http-authentifizierung

Die HTTP Authentifizierung besteht in einer Identifizierung, ob der Client berechtigt ist, auf die angeforderten Ressourcen zuzugreifen.
Wenn ein Passwort und ein Nutzername vonnöten sind, um gewisse Inhalte einzusehen, meldet der Webserver dem verwendeten Browser den Statuscode 401 Unauthorized und den Header WWW-Authenciate. Daraufhin ermittelt der Browser die Daten, indem er den Benutzernamen und das Passwort abfragt und diese Daten an den Server sendet. Nun nutzt der Server entweder durch bestimmte Authentifizierungsmodelle bereitgestellte Direktiven oder die Notation von Direktiven in der zentralen Serverkonfigurationsdatei.

Drei Arten der HTTP Authentifizierung werden an dieser Stelle kurz vorgestellt, die Basic-Authentifzierung, die Digest-Authentifizierung und die NTML HTTP-Authentifizierung.

Bei der Basis-Authentifizierung handelt es sich um die am meisten verwendete HTTP Authentifizierung. Sie besteht zunächst in einer Anforderung der Authentifizierung und der darauffolgenden Suche des Browsers nach dem Benutzernamen und des Passwortes, daraufhin sendet er beides base-64-codiert an den Server. Der Nachteil dieses Verfahrens ist, dass sowohl der Benutzername als auch das Passwort codiert, aber nicht verschlüsselt werden, das heißt sie können problemlos ausgelesen werden.

Die Digest-Authentifizierung funktioniert, indem der Server dem Nutzer zusammen mit dem WWW-Authenticate-Header eine zufällig generierte Zahlenfolge zusendet. Der Browser berechnet daraufhin den Hashcode, der sich aus dem Benutzernamen, dem Passwort und der zufälligen Zahlenfolge zusammensetzt und schickt diesen an den Server, der daraufhin die Prüfsumme berechnet und abgleicht. Der Vorteil an dieser Authentifizierung besteht darin, dass das einfache Abhören der Kommunikation dem Angreifer nichts nutzt, da sich die Daten durch die eingesetzte Hashfunktion nicht einfach rekonstruieren lassen.

Bei der dritten Variante, der NTLM HTTP-Authentifizierung handelt es sich um eine sicherere Variante der Digest-Authentifizierung, die einen mehrfachen Austausch zwischen Client und Server erfordert.
Zunächst sendet der Client den Benutzernamen an den Server, der daraufhin eine Zufallszahl an den Client sendet. Dieser verschlüsselt die Zufallszahl mithilfe des Hashwertes des Passwortes und schickt sie zurück, woraufhin der Server die Verschlüsselung ebenfalls anwendet und die von ihm erstellten Daten mit denen des Benutzers abgleicht.

HTTP Authentifizierung wird für gewöhnlich auf kleineren Homepages verwendet, da sie keine Programmierung in einer Schriftsprache erfordert.