Beitrag wurde zuletzt am aktualisiert

Verzeichnisschutz per htdigest

Verschlüsselter Passwortschutz mit Apache-AuthType htdigest

Bei einer einfachen Passwort-Authentifizierung mit htaccess wird die Anmeldung unverschlüsselt zum Server übertragen. Um aber einen sicherheits­relevanten Bereich nicht durch die Verwendung einer ungesicherten Passwortübertragung zu gefährden, würde ich möglichst immer auf Apache AuthType Digest zugreifen.
Die Einrichtung und der Betrieb erfordern kaum einen Mehraufwand gegenüber der klassischen AuthType Basic-Methode und somit spricht nichts gegen diesen zusätzlichen Schutz der eigenen Web-Inhalte.

Für diese Art des Verzeichnisschutzes wird das Apache-Modul auth_digest benötigt, was möglicherweise nicht bei jedem Provider zum Standard gehört. Hier hilft entweder nachfragen, die FAQs lesen oder mit Hilfe einer info.php selbst nach den Modulen Ausschau zu halten.

Unter Debian lässt es sich durch den Aufruf:

sudo a2enmod auth_digest
apache2clt -t
apache2clt restart

schnell einbinden und aktivieren.

Einsatzgebiete für eine (zusätzliche) Authentifikation

Wie bereits im Artikel Verzeichnisschutz per htaccess-Datei beschrieben, lassen sich sesible Bereiche einer Webseite per Zugangs-Kontrolle problemlos schützen. So zum Beispiel der WordPress-Login unter /wp-admin, die Server-Info-Azeigen unter /server-status sowie /server-info und auf jeden Fall administrative Bereiche wie /phpmyadmin, ein eventuell genutztes Plesk- oder Confixx-Panel und die gern vergessenen Logstatistiken wie sie beispielsweise Webalizer erzeugt. Alles Inhalte, die niemanden etwas angehen, außer euch selbst, und trotz eventuell bereits vorhandenen, programmseitigen Passwortschutzes niemanden zum Ausprobieren verleiten sollten.

  1. Die htdigest-Syntax
  2. Einrichtung der Zugangskontrolle
  3. Anpassungen in der htaccess-Datei
  4. Verwendung im Browser
  5. Generatoren zum Anlegen eines htdigest-Schutzes

Die htdigest-Syntax

Fast wie beim häufiger anzutreffenden htpasswd, gibt es auch bei htdigest eine recht einfache Syntax.
Der Aufruf des Befehls auf der Linux-Kommandozeile, gefolgt von dem optionalen Parameter „-c“ (create), der Pfad zur Passwort-Datei, dem Realm sowie abschließend dem gewünschten Nutzernamen.
Nach der Bestätigung mit Enter muss zwei mal das zu vergebende Passwort angegeben werden und schon ist der User angelegt.

htdigest [ -c ] passwdfile realm username

Anlegen der Zugangskontrolle

Das Kommandozeilen-Tool htdigest wird vom Apachen mitgeliefert und lässt sich unter Unix-Systemen auf der Kommandozeile wie folgt aufrufen:

htdigest -c /mein/verzeichnis/zu/.pwdigest "HTTP Digest Verzeichnisschutz" nutzer1

Die Option -c (create) wird nur beim Anlegen der Passwortdatei benötigt. Möchte man weitere Nutzer hinzufügen, so darf dieser Schalter nicht verwendet werden, da sonst eine bestehende Datei mit diesem Namen einfach überschrieben werden würde. Der Pfad zur Passwortdatei hat natürlich nichts innerhalb der DocumentRoot zu suchen! Diese Datei gehört unter einen Pfad abgelegt, der sich nicht per Browser aufrufen lässt.

Die Bezeichnung für die Datei .pwdigest ist frei gewählt, sollte aber immer mit einem Punkt beginnen. Somit wird die Datei auf Unix-Systemen versteckt. Der Realm, also die Bezeichnung/ der Name für den Authentifizierungsbereich HTTP Digest Verzeichnisschutz muss mit dem in der .htaccess-Datei bzw. dem im vhost-Eintrag übereinstimmen, da dieser bei den Berechtigungen mit einbezogen wird. Und zu guter Letzt nutzer1 ist der Loginname des ersten Benutzers. Nach dem Bestätigen per Enter-Taste erfolgt die Eingabe des Passworts.

htdigest -c /mein/verzeichnis/zu/.pwdigest "HTTP Digest Verzeichnisschutz" nutzer1
Adding password for nutzer1 in realm HTTP Digest Verzeichnisschutz.
New password: ******
Re-type new password: ******

Weitere Nutzer können hinzugefügt werden, indem der Schalter -c nicht eingesetzt wird. Ist ein Username bereits vorhanden, so wird dieser ohne Rückfrage überschrieben. Soll der Username ein Leerzeichen beinhalten, so muss dieser in Anführungszeichen gesetzt werden.

htdigest /mein/verzeichnis/zu/.pwdigest "HTTP Digest Verzeichnisschutz" "nutzer zwei"

Die htaccess-Datei

Im zu schützenden Verzeichnis wird die .htaccess-Datei abgelegt bzw. im vhost-Eintrag der entsprechende Directory-, Location- oder File-Block um die hier aufgeführten Zeilen erweitert.

# vhost-Konfiguration
# Schutz des Verzeichnis /wp-admin
<Location /wp-admin>
  AuthType Digest
  AuthName "HTTP Digest Verzeichnisschutz"
  AuthDigestProvider file
  AuthUserFile /mein/verzeichnis/zu/.pwdigest
  Require user nutzer1 "nutzer zwei"
</Location>

htdigest-Anmeldung im Browser

Der Ablauf der Authentifizierung ist sicherlich jedem bekannt und einmal eingegeben kann die Zugriffsschutz auch im Browser gespeichert werden. Die Passwort-Abfrage per htdigest weist im Safari auf die sichere Übertragung hin. Andere Browser verzichten meines Wissens auf diese Information.
Natürlich kann man auch mit einem Netzwerk-Sniffer den Datenstrom überprüfen – wer das denn möchte.

Passwortschutz mit htdigest, gesicherte Anmeldeübertragung

htdigest-Generatoren

Da ich meine Zugänge auf der Linux-Kommandozeile anlege, habe ich keinerlei Erfahrung mit einem htdigest-Generator. Google überschüttete mich nicht gerade mit Online-Tools zu diesem Thema.
Lediglich auf Jesin’s Blog konnte ich etwas passendes finden. Wer noch Generatoren kennt, vielleicht auch für Windows, kann dies in den Kommentaren gern posten.

Hinterlasse einen Kommentar

E-Mail Adresse wird nicht veröffentlicht.