Периодически генерировать более безопасный пароль с помощью случайно сгенерированной соли?

Периодически генерировать более безопасный пароль с помощью случайно сгенерированной соли?

Есть ли способ сделать пароли еще более безопасными, например, используя запланированный скрипт Bash для изменения случайно сгенерированной соли для паролей пользователей, например, два раза в месяц, без того, чтобы обычный пользователь сервера ничего об этом не знал или это не оказало никакого влияния на поведение пользователя или чтобы ему самому не пришлось совершать никаких действий со своим паролем?

Ссылка на более раннюю тему форума, где модератор сказал мне задать новый вопрос после того, как мой комментарий был удален, находится по адресу Как создать зашифрованный пароль

решение1

Добро пожаловать на Unix и Linux StackExchange!

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

(Да, теоретически возможно, что два введенных пароля могут привести к одному и тому же хешу, но этоочень сильновряд ли.)

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

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

Использование соленых хэшей для хранения паролей преследует две цели:

1.) это не позволяет администраторам, просматривающим хэши, случайно заметить, что у двух пользователей одинаковый фактический пароль,

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

Обратите внимание, что в современных системах хэши паролей хранятся в файлах, /etc/shadowкоторые не могут быть прочитаны обычными пользователями. Так что если хэши попадут в руки злоумышленников, это будет означать, что безопасность вашей системы уже довольно серьезно скомпрометирована — и у вас есть проблемы поважнее, чем беспокоиться о ворчании ваших пользователей по поводу необходимости менять пароли!

Связанный контент