Я знаю, что принудительное истечение срока действия паролей по истечении определенного периода времени с момента их создания пользователем не является частью логики Devise, и я планирую написать собственный код, чтобы это произошло.
На практике исследования, связанные с безопасностью, показали, что это плохая идея. Это потому, что вы получаете убывающую отдачу от каждого изменения. Таким образом, пароль начинает работать надежно, а затем со временем ослабевает, когда пользователь пытается соблюдать политику. См. Техническая безопасность Питера Гутмана и Глава 7, Пароли .
Из книги, другие глупые вещи включают требования сложности. (Прежде чем возражать, прочитайте соответствующий раздел книги).
... создайте что-то вроде таблицы user_passwords и используйте логику в моем коде, чтобы новый пароль не совпадал ни с одним в этой таблице для этого пользователя.
И как только вы прочитаете главу, я смогу спросить: почему вы разрешили пользователю выбирать слабый / раненый / взломанный пароль? Эти 60-килобайтные фильтры Блума выглядят очень полезными в сочетании с списком Марка Брунетта из 10 миллионов утекших паролей :)
Предотвращение повторного использования пароля ...
Повторное использование, которое повредит, - это повторное использование пароля на разных сайтах. Браун, Бракен, Зокколи и Дуглас заявляют, что цифры составляют около 70% в Создание и запоминание паролей (Прикладная когнитивная психология, том 18, выпуск 6, стр. 641–651). А Дас, Бонно, Цезарь, Борисов и Ван сообщают о числе около 45% в Запутанная сеть повторного использования пароля . Обратите внимание, что исследование Tangled Web было взломано паролей, так что это число, вероятно, выше, потому что они не смогли восстановить все пароли
Чтобы сделать повторное использование более острой проблемой, пользователи должны запомнить пароли для примерно 25 различных сайтов в соответствии с Das, Bonneau, Caesar, Borisov and Wang в Tangled Web of Password Reuse .
Я даже сгорел этим несколько лет назад. Я использовал один и тот же пароль для двух учетных записей с низким значением. Затем Саванна GNU была взломана, и злоумышленники смогли использовать восстановленный пароль, чтобы взломать немного использованную учетную запись электронной почты.
Теперь я просто генерирую длинную случайную строку, когда мне нужны учетные данные. Я даже не пишу их для большинства сайтов. Когда мне снова нужно получить доступ к сайту, я просто прохожу процесс восстановления.