насколько небезопасно использовать пароль md5 в качестве токена в письме о восстановлении пароля? - PullRequest
1 голос
/ 26 февраля 2012

Я думал отправить письмо с паролем md5 в качестве токена и проверить правильность адреса электронной почты и пароля, прежде чем показывать форму восстановления пароля

1) пользователь вводит почту

2), еслипочта существует, отправьте на нее электронное письмо с паролем в виде токена

3) когда пользователь нажмет на ссылку: проверьте правильность пароля почты и md5, если так:

4) показать генератор паролейform

-EDIT-

Так как можно быть безопаснее, не добавляя ни одного столбца в пользовательскую таблицу?

Ответы [ 5 ]

5 голосов
/ 26 февраля 2012

Это, по крайней мере, теоретически небезопасно. Смотрите, например MD5 декодирование. Как они это делают? и Безопасность MD5 в порядке?

Но зачем это вообще? Следующее было бы намного более безопасным, и только немного более трудным для реализации:

  1. Создать случайный ключ, например, 123456789abc
  2. Сохраните его в записи пользователя
  3. Добавить ключ к URL lookup.php?key=123456789abc
  4. Когда пользователь щелкает URL-адрес, найдите ключ, чтобы найти правильный адрес электронной почты.
  5. По завершении операции удалите ключ.

Дайте ключу срок службы, скажем, 24 часа, чтобы незаконные запросы исчезли.

1 голос
/ 26 февраля 2012

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

Это не лучшая практика, но я думаю, что сценарий «скомпрометированной электронной почты» не представляет интереса, поскольку почти каждый метод «уязвим» для этого.

1 голос
/ 26 февраля 2012

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

Используйте засолку и более интенсивный процесс расчета.

0 голосов
/ 26 февраля 2012

Возможно, было бы лучше , по крайней мере, использовать MD5 чего-то другого, поскольку, если пароль слабый, злоумышленник может использовать словарь для его обнаружения.

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

0 голосов
/ 26 февраля 2012

вы можете использовать случайную строку вместо пароля md5.Вам нужно только убедиться, что лицо, которое просит вас сбросить пароль, также является владельцем адреса электронной почты.

Когда вы отправляете что-то, связанное с паролем (например, хеш), вы даете подсказку, которую вам не нужно выдавать.Существуют таблицы, которые делают обратное хешу md5'а, и его можно использовать для угадывания пароля.

Представьте случайную строку как идентификатор сессии .

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