Frage

Ist es möglich, ein Salz Passwörter in .hpasswd Dateien hinzufügen? Ich gehe davon aus nicht, da der Server das Salz für jeden Benutzer benötigen, um würde das Passwort zu bestätigen, und ich kann nicht glauben, wie sie sie bekommen würden, aber ansonsten, wenn die Liste erhalten war zu, es wäre ziemlich anfällig. Gibt es eine Lösung?

Vielen Dank für Ihre Hilfe, Ben

War es hilfreich?

Lösung

Standardmäßig htpasswd nutzt die Standard- Krypta Funktion und somit Passwörter bereits gesalzen - in diesem Beispiel fest, dass beide Benutzer das gleiche Passwort haben noch die Hashes sind unterschiedlich:

simon@diablo:~$ htpasswd -b -c htpasswd simon abcd
Adding password for user simon
simon@diablo:~$ htpasswd -b htpasswd simon2 abcd
Adding password for user simon2
simon@diablo:~$ cat htpasswd 
simon:NWvm/LCCxQ64E
simon2:2I.LBzsRqULN6

(Anmerkung: die -b Flagge wird in der Regel abgeraten, da andere Benutzer Ihre Befehlszeilenargumente sehen und damit das Passwort)

Die ersten beiden Zeichen des Hash sind das Salz; Passwörter werden durch den Aufruf crypt() erneut verifiziert. Die Eingabe eines falschen Passworts erzeugt eine Zeichenfolge, die mit dem Hash-Passwort ungleich ist:

>>> from crypt import crypt
>>> crypt("wrongpass", "NWvm/LCCxQ64E")
'NWbxQgX1unvso'

, während das korrekte Passwort erzeugt die erwartete hash:

>>> crypt("abcd", "NWvm/LCCxQ64E")
'NWvm/LCCxQ64E'

htpasswd -m verwendet einen anderen Algorithmus, der MD5-basiert und verwendet eine längere Salz:

simon@diablo:~$ htpasswd -m -b -c htpasswd simon abcd
Adding password for user simon
simon@diablo:~$ cat htpasswd
simon:$apr1$mfvnBVmG$iIHIHOaH9vcImG5G.8eVa/

Hier ist das Salz die 8 Zeichen zwischen dem zweiten und dritten $.

htpasswd -s speichert einen SHA-1 ohne Salz verdauen;

: Dies scheint für die Kompatibilität mit Netscape / LDIF zu sein
simon@diablo:~$ htpasswd -s -b -c htpasswd simon abcd
Adding password for user simon
simon@diablo:~$ htpasswd -s -b htpasswd simon2 abcd
Adding password for user simon2
simon@diablo:~$ cat htpasswd 
simon:{SHA}gf6L/odXbD7LIkJvjleEc4KRes8=
simon2:{SHA}gf6L/odXbD7LIkJvjleEc4KRes8=

Diese können leicht rückgängig gemacht werden - convert in ein Sechseck verdauen:

>>> "".join("%02x" % ord(c)
...      for c in "gf6L/odXbD7LIkJvjleEc4KRes8=".decode("base64"))
'81fe8bfe87576c3ecb22426f8e57847382917acf'

dann verwenden, um eine Online-Hash-Datenbank .

Andere Tipps

Das htpasswd Dienstprogramm bereits Nutzt Salze in den meisten Fällen:

Die crypt () und MD5-Formate permutieren die Darstellung durch eine zufällige Salz Zeichenfolge vorangestellt wird, Wörterbuch-Attacken gegen die Passwörter schwieriger zu machen.

Und das ist (Art) den Zweck von Salzen in Passwort-Dateien. Während Salze in der Server-.htpasswd Datei enthalten sein müssen für den Server, um Passwörter zu überprüfen, ist es die zahlreichen verschiedenen Möglichkeiten, was ein Salz wie rainbow Tables .

Allerdings, wenn Ihre Benutzer schwach oder gemeinsame Passwörter wählen, ist das Knacken von Passwörtern ein Problem sowieso, da der Angreifer (mutmaßlich Zugriff auf die Passwort-Datei haben) wird versuchen, diese erste, sehr schnell in der Tat (nicht durch die Geschwindigkeit begrenzt der Server und Internet-Verbindung), indem Sie in der normalen Art und Weise zu erraten. Der beste Rat, den ich geben kann, ist, dass die Benutzer immer starke Passwörter wählen sollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top