2012-07-31 15 views
5

Für das Leben von mir, ich kann nicht scheinen, das irgendwo zu finden und wenn jemand kann mir nur einen Link geben, würde ich sehr dankbar sein.Wie schalten Sie Passwort Hashing (SSHA) in openLDAP

Wir versuchen SSHA-Hashing in openLDAP zu aktivieren. Standardmäßig speichert es Passwörter im Klartext, was ich für kriminell halte, aber hey, ich bin ein AD-Typ, also was weiß ich. Aber Sie würden denken, dass sie es leicht machen würden, die Informationen zu finden, die benötigt werden, um Hashing zu aktivieren, wenn Sie dies wünschen. Und würdest du nicht wählen?

+1

Es ist hier erwähnenswert für andere: Speichern gehashten Passwörter in Ihrer Authentifizierungsdatenbank (LDAP, AD oder irgendetwas anderes) ist nicht ganz das Sicherheits-Allheilmittel es scheint . SASL verbessert drastisch die Sicherheit über die Leitung (über das Netzwerk), erfordert jedoch, dass das ursprüngliche Kennwort für beide Enden der Verbindung verfügbar ist. Der Kompromiss besteht also in einer besseren Sicherheit im Datenspeicher (Hashing) gegen bessere Sicherheit über die Leitung (SASL). –

+0

Von 'man slapo-ppolicy': Geben Sie an, dass Klartext-Kennwörter, die in Anfragen zum Hinzufügen und Ändern enthalten sind, vor dem Speichern in der Datenbank gehashed werden sollen. Dies verstößt gegen das X.500/LDAP-Informationsmodell, kann jedoch erforderlich sein, um LDAP-Clients zu kompensieren, die den erweiterten Vorgang Kennwortänderung zum Verwalten von Kennwörtern nicht verwenden. –

Antwort

7

Sie können 'Passwort-Hash' verwenden, um den Hash-Algorithmus zu ändern, der Standardwert ist SSHA (kein klarer Text).

Beachten Sie, dass slapd das oben genannte nur dann verwendet, wenn das von Clients gesendete Kennwort im Nur-Text-Format vorliegt. Wenn Ihr Client ein Hash-Kennwort sendet, wird es so wie es ist gespeichert.

für zB: mit pam_ldap, verwendet pam_password EXOP (oder zu löschen)

, wie Tests der Stärke von Passwörtern ist auf dem Server ausgeführt werden, wenn das Passwort in gehashten kommt und ich weiß, das ist ein Merkmal openLDAP- Schlepper ?

Wenn Sie Hash-Passwörter gesendet, slapd kippen Festigkeitsprüfungen durchführen, so müssen die Clients gesendet Passwörter im Klartext (pPolicy Option/zu akzeptieren hat reject Hash-Passwort).

Hinweis:

  1. sicherstellen, dass Ihre Kunden verwenden ssl/tls (so die passwds werden nicht im Klartext gesendet)
  2. userpassword-Attribut enthält Sonderzeichen ({}) so haben Sie eine base64 zu tun -d, um den verwendeten Hashalgorithmus zu identifizieren.

zB: in der Regel der Attribute in folgendem Format (:: zeigen das Ergebnis ist Base64 codiert)

userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ= 
= 

$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d 
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng== 
+2

Danke Naj. Ihre Vorschläge wurden Teil unserer Lösung. Mein Kommentar zum Testen der Stärke war, andere zu befragen, die vorschlugen, dass das Hashing stattfinden sollte, bevor es an LDAP für die Authentifizierung gesendet wird. Die obige Aussage war etwas, das mir auffiel und mich der Bemerkung verdächtig machte. Nochmals vielen Dank ... Gewinn geht an dich mein Freund. –

1

OpenLDAP unterstützt eine Vielzahl von Speicherschemata, unter denen der Administrator auswählen kann. Das Tool, mit dem Sie Konten erstellen, muss für das Hashen konfiguriert werden. Der Server speichert Kennwörter in dem vom Client angeforderten Format. Wenn Hashing richtig gemacht wird, wird ldapsearch die Hash-Passwörter wie folgt zeigen:

userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb 

Siehe http://www.openldap.org/doc/admin24/security.html für weitere Einzelheiten.

Wenn es um Verwaltungstools kommt würde ich persönlich http://phpldapadmin.sourceforge.net

+0

Wirklich? Sie sagen also, dass der einzige Weg zum Passwort-Hashing darin besteht, den Client oder eine externe Quelle dazu zu veranlassen. Das scheint weniger als optimal und ein bisschen gefährlich. In der AD-Welt wird es zentral erledigt und zentral verwaltet. Das ist schwer für mich zu glauben. –

+0

Warte, wie laufen die Passwortstärketests auf dem Server ab, wenn das Passwort gehashed wird und ich weiß, dass dies ein Feature ist, das openLDAP anbietet? –

+0

LDAP ist nur ein Verzeichnis. Das Erzwingen von Kennwortrichtlinien liegt in der Authentifizierungsschicht und nicht in der Speicherschicht. Genau so funktioniert die UNIX-Welt, es gibt ein Werkzeug, das nur eine Sache macht und es gut macht. Um Kennwortrichtlinien durchzusetzen, müssen Sie das Tool konfigurieren, mit dem Ihre Benutzer ihr Kennwort ändern, sei es eine Webschnittstelle oder ein Befehlszeilendienstprogramm. Ich verstehe, dass dies schwer zu glauben ist, dass es keine "zentrale" Sache gibt, die alles tut, aber das ist die Idee der Modularität. – anttix

2

Die LDAP-Spezifikation erfordert Klartext-Passwörter für die Interoperabilität empfehlen. Der oben genannte Link zur Sicherheit bietet Ihnen die Option für Standard-Hash-Typen, die der Server erzwingen kann, berücksichtigen jedoch die Auswirkungen.

+0

Sie haben Recht bezüglich der Anforderung, reinen Text zu senden. Ich denke, das ist der Grund, warum openLDAP erfordert, dass SL aktiviert wird, bevor man es konfigurieren kann, Hash-Passwörter zu starten. Meine Frage ist, warum erlaubt man es, Klartextpasswörter mit deaktiviertem Hashing zu senden. Sicherheitshalber wäre es nicht besser, Hashing von Anfang an aktiviert zu haben und vom Benutzer zu deaktivieren. Art des BSD-Modells, alles standardmäßig geschlossen, was das Gelernte erfordert, die gefährlichen Sachen einzuschalten. –

1

Wenn Sie zu speichern versuchen userPassword Attribut in Hinzufügen/Ändern LDAP-Operationen zurückgegeben werden, userPassword Wert wird als Nur-Text gespeichert. Sie können dieses Verhalten jedoch mit der Option ppolicy_hash_cleartext in ppolicy Overlay-Modul in OpenLDAP überschreiben. Wenn der Client nach der Aktivierung ein Klartextkennwort sendet, wird er standardmäßig als SSHA gespeichert.Weitere Informationen zum Aktivieren von Hash-Passwort in OpenLADP von here