HTTP-Authentifizierung


HTTP-Authentifizierung

HTTP-Authentifizierung ist ein Verfahren, mit dem sich der Nutzer eines Webbrowsers gegenüber dem Webserver bzw. einer Webanwendung als Benutzer authentisieren kann, um danach für weitere Zugriffe autorisiert zu sein.

Es ist Teil des Hypertext Transfer Protocol (http), das die Grundlage des World Wide Web bildet.

Inhaltsverzeichnis

Funktion

Stellt der Webserver fest, dass für eine angeforderte Datei Benutzername oder Passwort nötig sind, meldet er das dem Browser mit dem Statuscode 401 Unauthorized und dem Header WWW-Authenticate. Der Browser ermittelt nun die zur Anmeldung notwendigen Daten (indem er den Nutzer fragt oder schon früher eingegebene Werte verwendet) und sendet das Ergebnis dem Server, der daraufhin die gewünschte Seite übermittelt.

Serverseitig ist die Authentifizierung entsprechend zu konfigurieren, beim Apache HTTP Server etwa durch Notation entsprechender durch Authentifizierungsmodule bereitgestellter Direktiven in einer .htaccess-Datei. Der bevorzugte Weg ist jedoch die Notation der Direktiven in der zentralen Serverkonfigurationsdatei httpd.conf.

Der Nutzer ist nach Ablauf des Protokolls gegenüber dem Webserver authentifiziert, allerdings gilt die Umkehrung nicht: Der Nutzer kann nicht sicher sein, dass der Webserver wirklich der ist, der er vorgibt zu sein. Ein Spoofing-Angriff kann einen legitimen Webserver vortäuschen, um beispielsweise an weitere Nutzerdaten zu gelangen. Üblicherweise wird für die Authentifizierung des Webservers gegenüber dem Nutzer ein Sicherheitsprotokoll wie HTTPS benutzt, welches mit Hilfe von digitalen Zertifikaten die Identität des Webservers bestätigen kann.

Verwendung

Größere Webauftritte verwenden dieses standardisierte Verfahren nur noch selten, da sich die Eingabefelder für Benutzername und Passwort nur auf Umwegen gestalten und nicht so einfach in die eigene Webseite einbinden lassen wie bei einem HTML-Formular. Teils wird die HTTP-Auth-Abfrage auch durch eigene JavaScript-Funktionen ergänzt.

Auf einfachen Homepages ist HTTP-Authentifizierung öfter zu finden, da keine Programmierung in einer Skriptsprache notwendig ist. Viele Webspace-Provider bieten dabei eine einfache Möglichkeit zur Konfiguration per Web-Interface.

Verfahren

Es gibt mehrere Möglichkeiten, Benutzer (Clients) zu authentifizieren. Verbreitet sind:

Basic Authentication

Die Basic Authentication nach RFC 2617 ist die häufigste Art der HTTP-Authentifizierung. Der Webserver fordert mit

WWW-Authenticate: Basic realm="RealmName"
Eingabe von Benutzername und Passwort

eine Authentifizierung an, wobei RealmName eine Beschreibung des geschützten Bereiches darstellt. Der Browser sucht daraufhin nach Benutzername/Passwort für diese Datei und fragt gegebenenfalls den Benutzer. Anschließend sendet er die Authentifizierung mit dem Authorization-Header in der Form Benutzername:Passwort Base64-codiert an den Server. Beispiel:

Authorization: Basic d2lraTpwZWRpYQ==

d2lraTpwZWRpYQ== ist die Base64-Codierung von wiki:pedia und steht damit für Benutzername wiki, Passwort pedia. Ein Nachteil dieses Verfahrens ist, dass Benutzername und Passwort nur aus technischen Gründen codiert, jedoch nicht verschlüsselt werden. Bei einer Verschlüsselung mit SSL/TLS bei HTTPS wird bereits vor der Übermittlung des Passwortes eine verschlüsselte Verbindung aufgebaut, so dass auch bei Basic Authentication das Passwort nicht abhörbar ist.

Digest Access Authentication

Bei der Digest Access Authentication (ebenfalls RFC 2617) sendet der Server zusammen mit dem WWW-Authenticate-Header eine eigens erzeugte zufällige Zeichenfolge. Der Browser berechnet den Hashcode (in der Regel MD5) einer Kombination aus Benutzername, Passwort, erhaltener Zeichenfolge, HTTP-Methode und angeforderter URI. Diese sendet er im Authorization-Header zusammen mit dem Benutzernamen und der zufälligen Zeichenfolge zurück an den Server. Dieser berechnet seinerseits die Prüfsumme und vergleicht. Das Verfahren ist damit dem des Message Authentication Code ähnlich.

Ein Abhören der Kommunikation nützt einem Angreifer nichts, da sich durch die Nutzung einer Hashfunktion die Zugangsdaten nicht rekonstruieren lassen und für jede Anforderung anders lauten. Die restliche Datenübertragung ist jedoch nicht geschützt. Um dies zu erreichen, kann etwa HTTPS verwendet werden.

NTLM HTTP Authentication

In Intranets mit Windows-Servern wird häufig das proprietäre NTLM-Authentifizierungsschema angewandt.

Siehe auch

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • HTTP — (Hypertext Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Datenübertragung, Hypertext u. a. Port: 80/TCP HTTP im TCP/IP‑Protokollstapel: Anwendung HTTP Transport …   Deutsch Wikipedia

  • HTTP-Anfrage — HTTP (Hypertext Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Datenübertragung, Hypertext u. a. Port: 80/TCP HTTP im TCP/IP‑Protokollstapel: Anwendung HTTP Transport …   Deutsch Wikipedia

  • HTTP-Request — HTTP (Hypertext Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Datenübertragung, Hypertext u. a. Port: 80/TCP HTTP im TCP/IP‑Protokollstapel: Anwendung HTTP Transport …   Deutsch Wikipedia

  • Http — (Hypertext Transfer Protocol) Familie: Internetprotokollfamilie Einsatzgebiet: Datenübertragung, Hypertext u. a. Port: 80/TCP HTTP im TCP/IP‑Protokollstapel: Anwendung HTTP Transport …   Deutsch Wikipedia

  • HTTP-Fehlercode — Jede HTTP Anfrage wird vom Server mit einem HTTP Statuscode beantwortet. Er gibt Informationen darüber, ob die Anfrage erfolgreich bearbeitet wurde oder teilt dem Client im Fehlerfall mit, wo (z. B. Umleitung) bzw. wie (z. B. mit… …   Deutsch Wikipedia

  • HTTP-Statuscodes — Jede HTTP Anfrage wird vom Server mit einem HTTP Statuscode beantwortet. Er gibt Informationen darüber, ob die Anfrage erfolgreich bearbeitet wurde oder teilt dem Client im Fehlerfall mit, wo (z. B. Umleitung) bzw. wie (z. B. mit… …   Deutsch Wikipedia

  • HTTP Status Code — Jede HTTP Anfrage wird vom Server mit einem HTTP Statuscode beantwortet. Er gibt Informationen darüber, ob die Anfrage erfolgreich bearbeitet wurde oder teilt dem Client im Fehlerfall mit, wo (z. B. Umleitung) bzw. wie (z. B. mit… …   Deutsch Wikipedia

  • HTTP-Statuscode — Jede HTTP Anfrage wird vom Server mit einem HTTP Statuscode beantwortet. Er teilt damit dem Client mit, ob die Anfrage erfolgreich bearbeitet wurde oder im Fehlerfall, wo, zum Beispiel über einer Umleitung, beziehungsweise wie, zum Beispiel mit… …   Deutsch Wikipedia

  • HTTP-Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • HTTP Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia