Rechnernetze / Kommunikationssysteme

Praktikumsversuch HTTP-Authentifizierung

Übersicht

Dieses Praktikum dient der praktischen Erprobung der HTTP-Authentifizierung. Sie werden in die Lage versetzt, dieses Verfahren in eigenen Webanwendungen einzusetzen.

HTTP-Basic-Authentification

Browser

CURL

Nutzen Sie CURL für den Zugriff auf die Datei test.pdf. Lassen Sie sich alle Request- und Response-Header anzeigen. Dies funktioniert mittels der verbose-Option.

Java-Client

HTTP-Digest-Authentification

Der Zugriff auf die Ressource http://www.informatik.htw-dresden.de/~jvogt/it1/digestdemo/test.txt ist per HTTP-Digest-Authentification geschützt. Die Anmeldeinformationen entsprechen denen des Moduls IT1/Webprogrammierung. Greifen Sie mittels CURL auf die Ressource zu. Lassen Sie sich die entsprechenden Antwort-Header anzeigen. Um die gesendeten Daten zu sehen, eignet sich die CURL-Option -v.

Prüfen Sie, ob Nonce des Server-Response mit dem Client-Request übereinstimmt.

Anwendung der Basic-Authentification

Legen Sie in Ihrem Webverzeichnis eine Datei .htaccess mit folgenden Inhalt an:

AuthType Basic
AuthName "Demo"
AuthUserFile  /Pfad/zu/.htpasswd
#
<Files test.html>
Require valid-user  
</Files>

Hinweis: Anstatt Files kann auch die Direktive FilesMatch verwendet werden. Außerdem kann der Zugriff mittels Regex angepasst werden.

# Passwort-Datei
anton:$apr1$UkQE/zdn$Y3azXc/6sC.5.s2ax9Mw21
berta:$apr1$wXkN1bs2$EwILr7AbGiQ0430sW0gTm.

Prüfen Sie den korrekt authetifizierten Zugriff auf eine angelegte Datei test.html.

Für die Digest-Authentification wird folgender Aufbau benötigt: MD5-Hash des Strings user:realm:password als ein 32-Zeichen String von Hexadezimalen Zeichen.

Literatur

  1. Kurose, Ross ”Computernetzwerke”, Pearson
  2. https://www.whitelist1.com/2018/04/capturing-http-basic-authentication.html

Ergebnisse

Fakultativ

HTTP-Proxy (im Labor S311 ist die Nutzung des HTTP-Proxies nicht notwendig)

Die HTW nutzt einen HTTP-Proxy mit den Einstellungen:

Proxy + TLS

// TCP-Socket
Socket sock = new Socket( proxyhost, proxyport );
// Upgrade auf TLS
sock = (SSLSocket) sslFact.createSocket(sock, sock.getInetAddress().getHostAddress(), sock.getPort() ,true);

Letzte Änderung: 09. May 2023 18:10