In den Artikeln zum Thema Verzeichnisschutz bin ich bereits auf die beiden Varianten zur server­seitigen Authentifizierung mit htpasswd und htdigest eingegangen. Hier wird auch erklärt, wie man diesen Schutz anlegt, was zu beachten ist und wann man eine Passwort-Authentifizierung nutzen sollte.
Die Möglichkeit eines basic-Schutzes per htpasswd bieten sicherlich die meisten Hoster von Haus aus und man fühlt sich als Betreiber der Webseite schon mal recht sicher. Bei der sichereren digest-Authentifikation ist die Verbreitung vielleicht nicht ganz so groß, aber nachfragen oder mit Hilfe von phpinfo testen, ob die eigene Webserver-Umgebung die Zusatzschutz bietet, schadet sicherlich nicht. Auch htdigest lässt sich ganz einfach per htaccess-Datei einbinden und bedeutet kaum Mehraufwand bei der Einrichtung.

Was ist so unsicher an htpasswd?

Probiert mal selbst euch die Anfrage-Header an den Webserver anzeigen zu lassen! Zum Beispiel mit Hilfe des Firebug Netzwerkmoduls für den Firefox (siehe Screenshot). Ich habe hierfür unter www.htpasswd.redirect301.de einen htpasswd-Verzeichnisschutz abgelegt, an dem ihr „mal schnell“ meinen Zugangsschutz „knacken“ könnt. Natürlich könnt ihr auch eigene, mit htpasswd geschützte Bereiche für diesen kleinen Test nutzen.

Im Screenshot seht ihr einen Mitschnitt meines Anfrage- und Antwort-Headers. Der hier gelb markierte Bereich ließe sich mit irgend einem einfachen Netzwerksniffer ohne weiteres mitschneiden. Es muss hier kein Hackertool o.ä. zum Einsatz kommen; unter Ubuntu gehört so was prinzipiell zum Standard-Installations­umfang und unter Windows fehlt es mit Sicherheit auch nicht an schnell installierten Freeware-Lösungen.

Hier ist es der Firebug der die Base64-Codierte Anmeldeinformation bereit stellt. Ich habe bestimmt mal irgendwann gelernt, wie man mit einem Zettel und einem Stift aus Base64 etwas lesbares macht und wer möchte, kann sich bei der Wikipedia die entsprechenden Grundlagen hierzu holen. Viel einfacher und schneller kann dies natürlich ein entsprechendes Onlinetool, wie z.B. der Base64-Decoder von opinionatedgeek.com.

Einfach den mitgeschnitten Wert per Copy & Paste in das Formular übertragen und schon hat man den Nutzernamen sowie das dazugehörige Passwort im Klartext.

Request-Header bei htaccess-Authentifizierung

Request-Header: Authorization Basic dW5zaWNoZXI6bXlQYXNzd29yZA==

Wer diesen oder den eigenen Base64-Code umgerechnet hat, der kennt nun den Zugang (Benutzername + Passwort) zur eigentlich Kennwort-geschützten Webseite.


Fazit

Für eine zusätzliche Absicherung von Login-Bereichen (wp-admin, phpmyadmin, webmail usw.) bietet das einfache htpasswd sicher einen guten Schutz. Bots, Crwaler und neugierige Webnutzer werden so problemlos aus diesen Bereichen fern gehalten. Für kritische Inhalte kommt eine unverschlüsselte Authentifizierung nicht in Frage und es sollte unbedingt eine Absicherung mit dem Apache-Modul auth_digest erfolgen. Alles andere würde mir spätestens in unüberschaubaren Netzwerken wie an einer Uni oder in einem Kundennetz Bauchschmerzen bereiten. Auch weiß wohl niemand wirklich, was im Urlaub im Hotel-WLAN oder im Internet-Café alles im Netzwerkverkehr dazwischen geschaltet wurde.

Wer kann sollte darauf achten, dass sämtliche serverseitigen Authentifizierungen, die mit den entsprechenden Apache-Modulen realisiert werden, die Anmeldeinformationen nicht unverschlüsselt im Netz übertragen.