Проверка надежности пароля: сравнение с предыдущими паролями - PullRequest
15 голосов
/ 04 июня 2011

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

Хотя сначала это звучит логично, я думаю следующее: какони это делают?Они хранят мои пароли в виде простого текста?Я бы принял ответ, который они принимают, если бы не тот факт, что это такие приложения, которые притворяются, что заботятся о безопасности настолько, что заставляют вас сменить пароль, если срок его действия истек!Microsoft Exchange является одним из примеров этого.

Я не очень хорош в криптографии и хэш-функциях, поэтому мой вопрос таков: возможно ли применять политику такого рода без хранения паролей в виде простого текста?

Знаете ли вы, как эта политика реализуется в реальных приложениях?

ОБНОВЛЕНИЕ : пример.Я недавно менял свой пароль Microsoft Exchange.Я использую только Web Access, так что он может немного отличаться - я понятия не имею.Это заставляет меня сменить пароль.Иногда я заменяю это чем-то новым, а потом почти сразу возвращаю обратно.Странная часть в том, что это не позволило мне даже изменить его обратно из-за этого.Я попытался немного изменить его, добавив перед ним букву или поменяв один символ - не повезло, он жаловался.

Ответы [ 2 ]

8 голосов
/ 04 июня 2011

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

7 голосов
/ 04 июня 2011

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

  1. Только буквенные символы
  2. Только числовые символы
  3. Вседругие символы

Например, вы можете потребовать изменения всех хэшей, чтобы пользователи не могли просто изменить свой пароль с SecretPassword01 на SecretPassword02.

КриптографияЭксперт может оценить, может ли это быть сделано так же безопасно, как одиночный хеш.

ПРИМЕЧАНИЕ , что это не так же безопасно, как одиночный хеш, так что передВы приступаете к реализации этого, убедитесь, что вы действительно провели свое исследование.

...