Измените алгоритм хэширования пароля для пользователей SuSE с blowfish на MD5

У меня есть сеть из примерно 1000 машин SuSE с 20-200 пользователями на каждой. Используемый алгоритм хеширования паролей используется по умолчанию, т.е. blowfish. Чтобы проверить, использовал ли пользователь словарное слово в качестве пароля, написал небольшую утилиту, которая использует системный вызов crypt. Системный вызов crypt для blowfish выполняется 10 циклов и работает очень медленно. Это делает использование blowfish с 10 итерациями в качестве алгоритма хеширования пароля неосуществимым. Следовательно, хотите изменить алгоритмы хеширования для всех пользователей на всех машинах на MD5. Может кто-нибудь предложить способ, который требует минимум или вообще не требует работы для пользователей.

2 ответа

Вы вроде задаете этот вопрос:

изменение алгоритма теневого хэша в bcrypt: как перефразировать

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

Что касается предотвращения повторного ввода паролей пользователями на основе словарных слов, обратите внимание на запуск cracklib при вводе пароля, а не задним числом. Это должно быть сделано через PAM (например, pam_cracklib.so вызывается для смены пароля). Вот информация о пакете CentOS для cracklib:

Name       : cracklib
Arch       : i386
Version    : 2.8.9
Release    : 3.3
Size       : 140 k
Repo       : installed
Summary    : A password-checking library.
URL        : http://sourceforge.net/projects/cracklib/
License    : Artistic
Description: CrackLib tests passwords to determine whether they match certain
           : security-oriented characteristics, with the purpose of stopping users
           : from choosing passwords that are easy to guess. CrackLib performs
           : several tests on passwords: it tries to generate words from a username
           : and gecos entry and checks those words against the password; it checks
           : for simplistic patterns in passwords; and it checks for the password
           : in a dictionary.

Там должно быть пакет или библиотека по этим направлениям для SuSE.

В этом-то и дело. Если вы беспокоитесь о том, что люди могут получить хеши паролей и взломать их (как вы пытаетесь это сделать), вам следует использовать более сильный хеш, чтобы сделать это более трудным.

Если вы не беспокоитесь о том, что люди получат ваши хэши паролей, вам не следует тратить время на их хеширование и хранить их в виде простого текста.

Если вы хотите запретить своим пользователям выбирать небезопасные пароли, было бы лучше запретить им выбирать небезопасные пароли, используя что-то вроде passwdqc, чем гоняться за взломщиками, чтобы поймать их после факта.

Другие вопросы по тегам