Сходство пароля


9

Я хотел изменить свой пароль на Unix-машине. Я сделал обычный passwd и набрал свой старый и новый пароль.

Затем машина вернулась ко мне со следующим сообщением:

BAD PASSWORD: is too similar to the old one

Это заставило меня задуматься ... Значит ли это, что у машины где-то есть мой пароль в виде открытого текста? В противном случае он не сможет сравнивать старый и новый пароль, верно? Или есть хеш-функция, которая позволяет это?

Ответы:


6

Итак, я последовал предложению Майкла Хэмптона и пошел посмотреть на код файла pam_cracklib.c, и кажется, что pam_cracklib получает старый (известный как текущий) пароль из PAM через вызов функции (что я считаю вполне приемлемым, так как Я только что ввел этот текущий пароль для аутентификации), а затем провел анализ сходства (функция расстояния) между тем старым паролем и новым, который я только что ввел.

Но он не делает этот анализ для всех старых паролей в своей истории. Это было бы невозможно, потому что они хранятся только в виде хэшей. Для них может быть только проверка, если они одинаковы. Кажется, все в порядке, как я и ожидал, но теперь я понимаю, почему это ... спасибо всем.


3

Ваши старые пароли не хранятся в виде обычного текста.

Вместо этого ваши старые хэши паролей хранятся в /etc/security/opasswdPAM. Затем выполняется сравнение при смене пароля на основе того, что было указано в конфигурации PAM.

Пример конфигурации PAM:

password required pam_unix.so sha512 remember=12 use_authtok

Здесь rememberон запоминает 12 предыдущих паролей.

Для получения дополнительной информации см. Защита паролем Linux с помощью pam_cracklib .


Хм ... ну, это определенно не тот пароль, который я когда-либо использовал раньше ... Так что он должен проверять изменения символов в старом пароле. Но если все, что было сохранено, является хэшем этого пароля, то как же тогда выполнить сравнение? Разве это не одна из основных функций криптографически защищенных хэшей, чтобы не допустить сравнения между различными открытыми текстами?
dertoni

Тут ты меня подловил. Я думаю, что вы должны прочитать исходный код, чтобы ответить на него наверняка.
Майкл Хэмптон

Я ожидаю, что он вносит изменения в новый пароль, и если какой-либо из хэшей этих изменений совпадает с хэшем старого пароля, он слишком похож. Таким образом, хранятся только хэши. Конечно, я не проверял это и в исходном коде ...
Ladadadada

хорошо, прочитайте код ... добавил ответ о моих выводах. +1 за помощь в поиске ответа ;-) спасибо.
Дертони

0

Некоторые системы могут хранить / вычислять энтропию (сложность пароля) и сравнивать их, я не знаю, относится ли это к PAM.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.