Расшифровка паролей OpenLDAP - PullRequest
3 голосов
/ 09 мая 2011

У меня есть набор пользователей в OpenLDAP, и я хочу получить от них некоторую информацию, например, "cn" и "userPassword".

Однако, когда я получаю эти данные, пароль не отображается в виде обычного текста, даже если он установлен на моем сервере LDAP.

Есть идеи, как решить эту проблему?

Ответы [ 2 ]

6 голосов
/ 09 мая 2011

Пользовательский пароль обычно хранится в хешированном виде

userPassword: {hasAlgorithm}Hashed value

Пример:

userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3

Атрибут userPassword может иметь более одного значения, и каждое значение может быть сохранено в другой форме. Во время аутентификации slapd будет перебирать значения до тех пор, пока не найдет тот, который соответствует предложенному паролю, или пока у него не закончатся значения для проверки. Схема хранения сохраняется в виде префикса на значение

Вы можете иметь:

CRYPT

Эта схема использует хеш-функцию операционной системы crypt (3). Обычно он создает традиционный 13-символьный хэш Unix, но в системах с glibc2 он также может генерировать более безопасный 34-байтовый хэш MD5

.

MD5

Эта схема просто берет MD5-хэш пароля и сохраняет его в закодированной форме base64

SMD5

Это улучшает базовую схему MD5, добавляя соль (случайные данные, которые означают, что существует много возможных представлений данного незашифрованного пароля). Например, оба эти значения представляют один и тот же пароль

SSHA

Это соленая версия схемы SHA. Считается, что это наиболее безопасная схема хранения паролей, поддерживаемая slapd

Заключение

В большинстве случаев вам не нужно восстанавливать пароль, вам просто нужно вычислить хеш из пароля, указанного пользователем в форме входа в систему, и сравнить его с паролем userPassword.

0 голосов
/ 01 августа 2011

Ваша конфигурация имеет оверлей политики паролей, настроенный для хеширования простого текста.olcPPolicyHashCleartext: TRUE или ppolicy_hash_cleartext.Удалите их, и они должны начать хранить пароли в виде простого текста.

Тем не менее, хранить пароли в виде простого текста не очень хорошая идея.По крайней мере, зашифруйте его, чтобы случайные наблюдатели не могли его легко перевернуть.И нет, кодировка ROT13 или base64 не считается.

...