Рейтинг:0

Как проверить политику хранения паролей ldap

флаг cn

Как проверить, как пароли хранятся на локально работающем сервере OpenLDAP? Я бы предпочел какой-то запрос, в котором будет указана используемая конфигурация. В качестве альтернативы также допустим доступ к сохраненным паролям, чтобы убедиться, что они зашифрованы. Просто проверить файл конфигурации недостаточно.

Я перечислил пользователей с их паролями, используя ldapsearch

ldapsearch -x -b ou=people -H ldap://127.0.0.1 -D cn=admin -w <пароль>

и пароли не указаны в виде открытого текста, но действительно ли это подтверждает, что они не хранятся в открытом виде, или ldapsearch шифрует их перед возвратом результатов?

Рейтинг:1
флаг td
bob

Я перечислил пользователей с их паролями, используя ldapsearch и пароли не указаны в открытом виде, но действительно ли это подтверждает, что они не хранятся в открытом виде?

Да нет наверное.

Я думаю ldapsearch и например наложение политики паролей не заменяйте сохраненные пароли в открытом виде зашифрованной или хешированной версией в ответах поиска. Шифрование/хеширование паролей в открытом виде происходит только при установке/обновлении паролей. Я думаю, что в этом отношении вы можете доверять тому, что ldapsearch показывает вам.

Но оба ldapsearch и бездельник отображать пользовательский пароль в формате с кодировкой base64. Двойное двоеточие :: после того, как имя атрибута используется для указания того, что значение закодировано в base64.

 Пароль пользователя:: c2VjcmV0LXBhc3N3b3JkCg==
 пароль пользователя:: e1NTSEF9RGtNVHdCbCthLzNEUVR4Q1lFQXBkVXROWEdnZFVhYzMK

На самом деле вы не узнаете, пока не расшифруете эту строку символов base64, является ли пароль хешированным или открытым текстом. Если вы найдете только пароли в виде {префикс хеша} соль/значение:

 Пароль пользователя: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3
 Пароль пользователя: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb
 Пароль пользователя: {CRYPT}$1$czBJdDqS$TmkzUAb836oMxg/BmIwN.1
 Пароль пользователя: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
 Пароль пользователя: {SMD5}4QWGWZpj9GCmfuqEvm8HtZhZS6E=

тогда ты в порядке. Пароли без такого префикса представляют собой обычный текст.

Просто проверить файл конфигурации недостаточно.

Верно. Когда хеширование/шифрование паролей включено/изменено, ни существующие пароли в открытом виде, ни существующие пароли, зашифрованные с помощью различных алгоритмов, не преобразуются.
Насколько мне известно, после изменения политики паролей по умолчанию существующий открытый текст и пароли, хэшированные с помощью других алгоритмов, также не перестанут работать, демон ldap просто перебирает все поддерживаемые механизмы всякий раз, когда выполняется запрос аутентификации.

Чтобы проверить содержимое фактических сохраненных данных в OpenLDAP, проще всего, вероятно, экспортировать базу данных в читаемый формат LDIF с помощью бездельник ; извлечь все значения атрибутов userPassword из этого LDIF и декодировать их с помощью base64.

флаг cn
Большое спасибо, Боб, это отвечает на мой вопрос! Я не знал, что это кодировка base64. Также отличный совет о префиксах и о том, как существующие пароли не преобразуются.

Ответить или комментировать

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