HTTP-authenticatie
HTTP-authenticatie is een methode waarmee de gebruiker van een webbrowser zich als gebruiker kan authenticeren bij de webserver of een webapplicatie om vervolgens geautoriseerd te worden voor verdere toegang.
Het maakt deel uit van het Hypertext Transfer Protocol (HTTP), dat de basis vormt van het World Wide Web .
functie
Als de webserver vaststelt dat voor een opgevraagde URL een gebruikersnaam of wachtwoord nodig is, meldt hij dit aan de browser met de statuscode 401 Unauthorized en de WWW-Authenticate header. De browser bepaalt nu de gegevens die nodig zijn voor de registratie (door de gebruiker te vragen of eerder ingevoerde waarden te gebruiken) en stuurt het resultaat naar de server, die vervolgens de gewenste pagina verzendt als de toegangsgegevens correct zijn, anders een bijbehorende foutmelding.
Aan de serverzijde moet de authenticatie dienovereenkomstig worden geconfigureerd, in het geval van de Apache HTTP-server, bijvoorbeeld door notatie van de relevante richtlijnen die worden verstrekt door authenticatiemodules in een .htaccess- bestand of een configuratiebestand van een centrale server.
Nadat het protocol is verlopen, wordt de gebruiker geauthenticeerd bij de webserver, maar het omgekeerde is niet van toepassing: de gebruiker kan er niet zeker van zijn dat de webserver echt is wie hij beweert te zijn. Een spoofing- aanval kan een legitieme webserver simuleren om bijvoorbeeld aanvullende gebruikersgegevens te verkrijgen. Meestal wordt een beveiligingsprotocol zoals Hypertext Transfer Protocol Secure (HTTPS) gebruikt om de webserver te authenticeren bij de gebruiker, die met behulp van digitale certificaten de identiteit van de webserver kan bevestigen.
gebruik maken van
Grotere websites gebruiken deze gestandaardiseerde procedure slechts zelden, omdat de invoervelden voor gebruikersnaam en wachtwoord niet zo eenvoudig kunnen worden ontworpen en geïntegreerd in hun eigen website als bij een HTML- formulier . De HTTP auth-query wordt deels aangevuld met eigen JavaScript- functies.
HTTP-authenticatie is vaak te vinden op eenvoudige homepages, omdat er geen programmering nodig is. Veel aanbieders van webruimte bieden een eenvoudige optie voor configuratie via een webinterface.
procedure
Er zijn verschillende manieren om gebruikers (klanten) te authenticeren. De volgende zijn gebruikelijk:
Basisverificatie
De basisverificatie (basisverificatie) bij RFC 2617 is een soort veelgebruikte HTTP-verificatie. De webserver vraagt ook om
WWW-Authenticate: Basic realm="RealmName"
een authenticatie, waarbij RealmName een beschrijving van het beveiligde gebied vertegenwoordigt - in de afbeelding hiernaast bijvoorbeeld "Logbestanden / Serverinformatie". De browser zoekt vervolgens naar de gebruikersnaam / het wachtwoord voor deze URL en vraagt de gebruiker indien nodig. Vervolgens stuurt het de authenticatie met de autorisatieheader in de vorm van Benutzername:Passwort
Base64- gecodeerd naar de server.
Voorbeeld:
Authorization: Basic d2lraTpwZWRpYQ==
"D2lraTpwZWRpYQ ==" is de Base64-codering van wiki: pedia en staat voor gebruikersnaam wiki , wachtwoord pedia .
Een nadeel van deze methode is dat de gebruikersnaam en het wachtwoord alleen om technische redenen worden versleuteld, maar niet versleuteld. Uit veiligheidsoogpunt is deze procedure daarom net zo onveilig als wanneer het wachtwoord in platte tekst zou worden verzonden. Bij versleuteling met SSL/TLS met HTTPS wordt een versleutelde verbinding tot stand gebracht voordat het wachtwoord wordt verzonden, zodat het wachtwoord ook bij basisverificatie niet kan worden onderschept.
Digest-toegangsverificatie
Met Digest Access Authentication (ook RFC 2617 ), stuurt de server een speciaal gegenereerde willekeurige tekenreeks ( nonce ) samen met de WWW-Authenticate-header. De browser berekent de hash-code (meestal MD5 ) uit een combinatie van gebruikersnaam, wachtwoord, ontvangen tekenreeks, HTTP-methode en gevraagde URL. Het stuurt dit terug naar de server in de autorisatieheader, samen met de gebruikersnaam en de willekeurige string. Deze berekent op zijn beurt de controlesom en vergelijkt deze. De procedure is daarom vergelijkbaar met die van de Berichtauthenticatiecode .
Als de gebruikte hash-functie cryptografisch veilig is, heeft het afluisteren van de communicatie voor een aanvaller geen zin, omdat de toegangsgegevens niet met een hash-functie kunnen worden gereconstrueerd en deze voor elke aanvraag met de nonce anders zijn. (Met name de veelgebruikte MD5- hashfunctie wordt niet langer als veilig beschouwd.) De rest van de gegevensoverdracht is echter niet beveiligd. Hiervoor kan Hypertext Transfer Protocol Secure (HTTPS) worden gebruikt.
NTLM HTTP-verificatie
Het gepatenteerde NTLM- authenticatieschema, dat al jaren als onveilig wordt beschouwd, wordt vaak gebruikt in intranetten met Windows- servers. [1] Bescherming via Kerberos wordt daarom aanbevolen in intranetten.
Zie ook
web links
- RFC 2617 (HTTP-verificatie)
- RFC 2616 (Hypertext Transfer Protocol - HTTP / 1.1)
- Verzameling van nuttige .htaccess-voorbeelden
- Een versleutelde HTTP-authenticatie instellen met htdigest