Назад | Перейти на главную страницу

Как работает «ваш новый пароль должен отличаться как минимум на n символов от предыдущего», если хранятся только хэш-коды?

Мне интересно, как политика паролей "ваш новый пароль должен отличаться хотя бы п символы из вашего старого пароля "работает.

Насколько я понимаю, ОС никогда не магазины старые пароли самих себя, но их хэш-коды вместо. И невозможно узнать, сколько символов различаются между двумя строками, если у вас есть только их хеш-коды.

Правильно ли я предполагаю, что это может сработать, только если passwd программа прямо спрашивает в то же время также для вашего старого пароля?

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

Ты прав. Если пароли хранятся в виде хешей, операционные системы не могут узнать, чем новый пароль отличается от старого.

Проверка политики выполняется из инструмента, и она работает, поскольку инструмент также запрашивает у вас старый пароль, а затем проверяет различия на соответствие набору правил политики.

Такие политики обычно реализуются путем их применения при запросе старого пароля.

Другой вариант - перебрать старый. Когда вы вводите свой новый, современный компьютер без проблем перебирает все пароли, которые отличаются от нового на 2 символа. Насколько мне известно, это не используется при обычной аутентификации в типичных дистрибутивах Linux, но, возможно, некоторые модули PAM реализуют это.

Обычный подход к смене паролей root - это предположить, что суперпользователь знает, что делает. Программа passwd не запрашивает старый пароль и позволяет вам отменять такие правила, как минимальная длина, на ваш страх и риск.

И является ли следствие, что если пользователь root меняет чужой пароль, политика «количества разных символов» здесь просто не может быть применена?

Административный пользователь обычно может напрямую управлять базой данных паролей, поэтому фактически все политики паролей могут игнорироваться этим пользователем.
Например, root может предоставить хешированный пароль (с usermod -p), который будет установлен дословно, или отредактировать /etc/shadow и установите там хешированный пароль.

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