Означает ли это, что мой университет небезопасно хранит пароли? - PullRequest
7 голосов
/ 05 декабря 2010

Мой университет требует от вас регулярно менять пароли. Если я попытаюсь изменить свой текущий пароль, я получу сообщение:

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

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

РЕДАКТИРОВАТЬ: Может быть, я идиот. Они также требуют ввода текущего пароля.

Ответы [ 4 ]

6 голосов
/ 05 декабря 2010

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

2 голосов
/ 05 декабря 2010

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

Пример. Скажите, что ваш старый пароль - «пароль», и вы пытаетесь изменить его на «pssword». Вставьте «а» после «р» дает вам «пароль», который хэширует то же самое, что и старый пароль. Поэтому, не зная старого пароля, а только хеш, мы определили, что пароли похожи.

Для пароля длиной N это генерирует и сравнивает O (3N) = O (N) хэшей. Предполагая, что для вычисления хэша требуется O (N), общая сложность будет равна O (N ^ 2), что очень удобно для паролей вплоть до 1000 символов.

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

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

1 голос
/ 05 декабря 2010

В Linux (и других Unix-подобных системах) за это отвечают два модуля аутентификации PAM:

(1) Использование параметра Remember = для модуля аутентификации PAM pam_unix . При этом сохраняется ряд прошлых паролей в их хешированной форме, поэтому вы не можете повторно использовать старый пароль без изменений. Обычное расположение для этих старых хэшей: /etc/security/opasswd.

(2) Модуль PAM pam_cracklib использует старый пароль, который вы ввели, чтобы выполнить изменение, и проверяет, отличается ли достаточное количество символов от введенного вами нового пароля (см. Difok = опция pam_cracklib).

Ни в коем случае старые пароли не хранятся в восстанавливаемой форме ...

Любой полукомпетентный системный администратор будет использовать нечто подобное, а не изобретать велосипед, что, вероятно, (но не обязательно) означает, что вам не стоит беспокоиться.

0 голосов
/ 05 декабря 2010

не означает ли это, что пароли хранятся небезопасно или даже в виде открытого текста?

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

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

Но, конечно, возможно, что пароли хранятся в виде простого текста.Вы должны спросить.

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