Dienstag, 7. März 2017

htaccess - Sicheres Passwort - Passwort Schutz

Überall wird einem geraten, man solle Sonderzeichen in Passwörtern verwenden. Nirgends wird dabei erwähnt, welche Sonderzeichen Probleme bereiten können. Hier nun die erlaubten Sonderzeichen für Passwörter.

Das Thema "Sichere Passwörter" muss wegen Inkompatibilität einiger Programme aus einer anderen Perspektive betrachtet werden. Niemanden nützt ein Passwortschutz, wenn die Ressource mittels dem richtigen Passwort nicht freigegeben wird. Die "Sicherheit" bei einem Passwort besteht deswegen aus sicheren Sonderzeichen, die auch wirklich funktionieren.

Beim anlegen eines .htaccess Passwort-Schutzes mittels .htpasswd passiert es am ehesten, dass die Imkompatibilität eines Programmes Probleme bereitet. Dann funktioniert das Passwort nicht, obwohl alles richtig gemacht wurde. Das Problem dabei besteht darin, dass eines der verwendeten Programme, zum Beispiel der Browser, nicht wirklich sicher UTF-8 kann. UTF-8 beinhaltet unter anderem die Umlaute äöüÄÖÜ. Hat der Browser Probleme mit dem Senden von Passwörtern mit Zeichen aus dem UTF-8 Zeichensatz, funktioniert das Passwort nicht.

Ein weiteres Problem besteht beim generieren eines htaccess Passwortes, wenn dieses über einen der im Internet zu findenden Passwort-Generatoren generiert wurde. Denn es sind darunter einige, die keine Zeichen aus dem UTF-8 Zeichensatz verwenden können. Diese Passwort-Generatoren generieren zwar ein Passwort, aber es funktioniert nicht. 

Programme, die nicht wirklich mit UFT-8 umgehen können bereiten Probleme bei Passwörtern mit bestimmten Sonderzeichen. Das kann schon beim Browser anfangen, mittels dem das Passwort übermittelt wird. Deshalb ist es ratsam auf Umlaute, wie äöüÄÖÜ und einige Sonderzeichen zu verzichten. Webmastern wird daher auch empfohlen, keine Usernamen mit Umlauten oder Sonderzeichen außerhalb des ASCII Zeichensatz zu verwenden.

Mit dem Schlagwort "ASCII" ist dieser Artikel auch schon an seinem Ziel. Wirklich sichere Passwörter bestehen nur aus Zeichen aus dem ASCII Zeichensatz. Mit diesen Zeichen kann jeder sicher sein, dass Passwörter mit allen Programmen funktionieren.

Die Zeichen im ASCII Zeichensatz:
!"#$%&'()*+,-./
0123456789
:;<=>?@
ABCDEFGHIJKLMNOPQRSTUVWXYZ
[\]^_`
abcdefghijklmnopqrstuvwxyz
{|}~

Verwende nur diese Zeichen für einen .htaccess Passwortschutz, bzw. genehmige nur diese Zeichen für Username und Passwort auf deiner Webseite und alles ist "sicher".

Bei den Passwort-Generatoren im Internet, weiß man nie, ob diese die eingegebenen Passwörter sammeln. Deshalb ist es das Beste, wenn das Passwort auf dem eigenen Server selbst generiert wird.

Tutorial: Password Protection mit der htaccess

1.) Ein Verzeichnis anlegen
Lege ein Verzeichnis an, dessen Zugang mit einem Passwort geschützt werden soll.
Beispielname für das Verzeichnis: "privat"

2.) Die .htaccess Datei
Lege in dem Verzeichnis "privat" eine neue Datei mit den Namen ".htaccess" an.
Schreibe in die .htaccess Datei folgendes:
AuthType Basic
AuthName "Privat"
AuthUserFile "/voller/pfad/zur/password/datei/.htpasswd"
Require valid-user
Bei "AuthUserFile" muss der vollständige Pfad zur Passwort-Datei angegeben werden.
Beispiel: "/var/www/virtual/username/html/privat/.htpasswd"

3.) Die .htpasswd Datei
Lege eine neue Datei mit dem Namen ".htpasswd" in dem in Punkt 2 von dir angegebenen Verzeichnis an.
Schreibe in die .htpasswd Datei die Namen und das verschlüsselte Passwort der Leute, die Zugang haben sollen.
Beispiel:
Sibille:{SHA}pkA4tgAuDbAbQf+A214iWhKIEJ4=
Privatpirat:{SHA}9JfmGc1grKUwFyPQ2ewNdHj38IU=
Meinereiner:{SHA}sjAtKfFsc+s/dYxY89gWq3snhEY=
Die verschlüsselten Passwörter kannst du wie folgt ganz einfach anlegen. Dabei müssen die Namen der Leute noch nicht in die .htpasswd Datei geschrieben sein, können aber schon drin stehen. Die folgende Anleitung funktioniert auch für das Updaten eines Passwortes für einen bestehenden Namen, sowie für das neue Anlegen eines Namens mit Passwort.

Wenn ein Zugriff auf die Shell (Kommandozeile) besteht, kann ein .htpasswd Passwort in Apache mit folgender Kommandozeile in SHA1 Hash angelegt werden. Bereits bestehende Passwörter werden dabei überschrieben.
Zuvor muss die Datei .htpasswd angelegt worden sein.

htpasswd -bs /verzeichnis/zur/htpasswd/datei/.htpasswd username passwort

Ohne vorher angelegte .htpasswd:
htpasswd -cbs /verzeichnis/zur/htpasswd/datei/.htpasswd username passwort

oder, wenn die .htpasswd im gleichen Verzeichnis wie die .htaccess (mit dem "Require") ist, dann nur:

htpasswd -bs .htpasswd username passwort

Ohne vorher angelegte .htpasswd:
htpasswd -cbs .htpasswd username passwort

"username" = Der Name für den Login.
"passwort" = Das dazugehörige Passwort für den Login.

In Apache 2.4 kann ein Passwort auch in bcrypt erstellt werden.

htpasswd -bB /verzeichnis/zur/htpasswd/datei/.htpasswd username passwort

Ohne vorher angelegte .htpasswd:
htpasswd -cbB /verzeichnis/zur/htpasswd/datei/.htpasswd username passwort

Nach dem Schließen der Shell (exit) bitte die Datei ".bash_history" leeren, da der Befehl samt blankem Passwort dort gespeichert wird.

Sollen die Dateien in einem Verzeichnis im Browser angezeigt werden anstatt eine PHP oder HTML Webpage, dann diese Zeile in die .htaccess im passwortgeschützten Verzeichnis schreiben.

Options +Indexes

Ausschluss-Klausel: Keine Garantie. Keine Gewähr. Kein Support. Anfragen zwecklos.
Weiterlesen »