Wie kann ich abrufen, ein Salz von LDAP?
Die Organisation, für die ich arbeite nutzt PPolicy (ein OpenLDAP-Modul) automatisch salt und hash-Passwörter. Leider habe ich keinen Zugang zu dem Rechner mit dem OpenLDAP-server, so dass ich nicht hineinschauen kann in der config-Datei. Was ich gesehen habe, obwohl, so ziemlich alles zu sein scheint-setup mit den default-Einstellungen.
Ich würde gerne in der Lage, zum abrufen des Salzes für einen bestimmten Benutzer. Wenn ich sehe, auf die die Benutzer-Attribute userPassword ist die SSHA Passwort. Ich glaube nicht, siehe nichts über ein salt für diesen bestimmten Benutzer. Ich landete Blick auf das LDAP-schema und ich sehe nichts über Salze gibt.
Wenn Sie zu erraten, wo das Salz abgelegt waren für jeden user, wo würde es sein? Ich verstehe, das ist vage und wahrscheinlich nicht viel Informationen, aber ich kann nicht finden überall in der OpenLDAP-docs, die erklären, wo genau die einzigartige Salze gespeichert werden. Vielleicht jemand, der so konfiguriert hat, dass ein OpenLDAP-server, bevor Sie wissen, wo der Standard-Speicherort ist.
Danke.
Jeder Benutzer Passwort hat eine einzigartige Salz -, aber ich sehe es nicht überall, nicht unter normalen Attribute für diesen Benutzer, nicht unter ausgeblendeten Attribute, und auch nicht in das schema.
InformationsquelleAutor blkhp19 | 2013-07-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit SSHA, normalerweise ist das Salz wird an der SHA1-hash und dann die ganze Sache ist Base64-codiert ist (ich habe nie gesehen, wie ein LDAP-das hat nicht SSHA). Sie sollten in der Lage sein zu sagen, diese durch einen Blick auf das userPassword-Attribut. Wenn es 28 Zeichen lang mit a = am Ende, es ist nur der hash.
Wenn die Base64-Wert ist 32 Zeichen lang ist oder größer, es enthält sowohl den hash und das Salz. Base64 Dekodieren des Wert-und ausziehen, die ersten 20 bytes, das ist der SHA1-hash. Die verbleibenden bytes sind das Salz.
Beispiel:
Edit: Nach der doppelten Kontrolle, es scheint, dass die variable-Länge-Salze sind manchmal unterstützt. Korrigiert die Kodierung Beschreibung um für dieses Konto.
Ich bin nicht darüber reden, wie das Passwort ist gesalzen, das ursprüngliche Salz ist buchstäblich gespeichert, zusammen mit dem hash, und abgestreift später, wenn der LDAP-braucht, um zu versuchen und überprüfen Sie die Benutzer-Passwort. Der Algorithmus zum generieren der userPassword Wert ist
Base64Encode(SHA1(salt+password)+salt)
. So im inneren, dass die Base64-Wert, den Sie haben, sowohl die hash-und salt.Ah, jetzt verstehe ich! Vielen Dank, ich werde markieren Sie diese als Antwort! Ich habe ein followup-Frage - falls die hashes in der Datenbank kompromittiert wurde, konnte nicht der Angreifer leicht abzustreifen, das Salz und verwenden, um Ihnen zu helfen knacken das Passwort?
Ja, aber das ist nicht wirklich der Zweck des Salzes. Mit einem Salz hilft zu verhindern, dass Angreifer mit rainbow tables zu knacken alle Passwörter in einem Rutsch, oder einfach nur knacken mehrere identische Passwörter bei der gleichen Zeit. Wenn Sie verwenden, ein Salz, ein Angreifer zu knacken, jede Benutzer-Passwort separat mit eigenen Salz.
Eigentlich denke ich, es ist
Base64Encode(SHA1(password+salt)+salt)
(die Verkettung, bekommt SHA1-verdaut hat Sie das Kennwort, bevor Sie das Salz (von tools.ietf.org/id/...)).InformationsquelleAutor Syon
Den post von Syon haben mir sehr geholfen, vielen Dank dafür! Ich dachte, einem working test, wäre ein nettes extra für jemand anderes mit dem Thema zu kämpfen ;).
InformationsquelleAutor Bouke Woudstra
In PHP, verglichen mit einem nur-text-Kennwort (in der Regel von einem Benutzer eingegeben), die zu einer gegebenen ssha-hash (in der Regel werden in Ihrem db):
InformationsquelleAutor Parampal Pooni