2009-09-20 2 views
11

Лучше ли пользователь забыть свой пароль, чтобы сбросить пароль или просто отправить потерянный пароль обратно?Лучше ли сбросить пароль или отправить потерянный пароль?

+0

посмотреть: http://stackoverflow.com/questions/647514/what-is-the-best-way-to-implement-2-way-encryption-with-php – Jacco

+8

Вы не должны иметь Первоначальный пароль в первую очередь, он должен быть безвозвратно хэширован. – Stann

ответ

1

Безопаснее сбросить пароль, так как третья сторона может перехватить почтовый пароль.

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

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

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

+2

Итак, как пользователь может получить пароль сброса, учитывая, что рассылка небезопасна? :) – Zed

+0

@Zed: отправьте ссылку пользователю, которая содержит случайное одноразовое значение (которое вы помните), чтобы при нажатии на него вы можете сбросить свой пароль и отправить новый (более https). –

+1

@Greg: В этом суть. Нет никакой разницы между отправкой «случайного пароля» или «случайным значением, которое пользователь может использовать для ...». Вы используете их для того, чтобы _temporarily_ идентифицировать пользователя. Третья сторона может вмешиваться в любой из них. – Zed

40

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

Я хотел бы предложить следующий механизм Wordpress для сброса пароля:

  1. Отправить ссылку с подтверждением сбросом пароля
  2. Следуйте ссылку для подтверждения на страницу , которая будет генерировать случайный пароль и отправить его к пользователю
  3. Позвольте пользователю войти в систему с новым паролем и изменить его на что-то лучше запомнить.
+0

Я подумывал отправить пароль для сброса, хотя пользователю проще отправить им старый пароль. – 2009-09-20 09:52:33

+2

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

+6

Просто добавьте немного ответа Эймантаса. Для обеспечения безопасности сервер никогда не должен сохранять пароль пользователя в виде обычного текста. Он должен сохранять односторонний зашифрованный пароль. При входе пользователя в систему клиент должен зашифровать пароль с помощью javescript и отправить зашифрованную строку на сервер. Это немного похоже на работу входа в систему Unix. Часто пользователь использует один и тот же пароль для другого веб-сайта. Если вы сохраните его в виде обычного текста, вы получите доступ ко всем из них. Как пользователь, я бы очень волновался об этом. – user172818

17

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

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

+1

Если вы используете (в) вопросы безопасности, они НЕ ДОЛЖНЫ рассматриваться как резервный пароль, а только как гейткиперы доступа к механизму сброса пароля.В противном случае вы получите свою учетную запись электронной почты, когда кто-то смотрит в старшую школу, в которую вы отправились, и попробовал ее как ответ «Где вы встретили своего супруга?» (как это случилось с Сарой Пэйлин в прошлом году). –

+0

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

7

Многие пользователи используют один и тот же пароль на многих веб-сайтах. Чтобы уважать конфиденциальность людей, рекомендуется всегда хранить пароли в одностороннем порядке с помощью хеш-функций, таких как SHA-256 или MD5. Но вы не должны использовать их без дополнительной соли, поскольку словарные атаки могут быть просто выполнены на этих паролях. Соблюдение конфиденциальности пользователей - основа надежных отношений между вами и вашими клиентами.

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

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

Также имейте в виду, что отправка паролей через http без ssl очень небезопасна, особенно в общедоступных сетях, таких как wlan hotspots. Взгляните на методы аутентификации сообщений, такие как HMAC в сочетании с Diffie-Hellman-Key-Exchange. Или, по крайней мере, используйте дополнительную функцию hash + salt во время входа в систему.

+2

SHA-256 и MD5 слишком быстр, чтобы их можно было считать безопасными. Проверьте BCrypt или PBKDF2. –

Смежные вопросы