Безопасный сброс пароля без отправки электронного письма - PullRequest
7 голосов
/ 22 июля 2009

Как я могу реализовать функцию безопасного сброса пароля, не отправляя пользователю электронное письмо? Есть еще один безопасный бит информации, который я храню, и только пользователь должен знать об этом, но кажется небезопасным просто позволить пользователю обновить пароль только потому, что он знает 9-значное число.

Обратите внимание, что пользовательские данные хранятся в простой таблице SQL из-за ограничений реальных пользователей базы данных на сервере, на котором я работаю.

Любой вклад будет оценен.

Обновление:
Сделав попытку OpenID и вспомнив, что этот сервер не позволяет PHP (и, следовательно, cURL) делать какие-либо внешние запросы, я снова попытался отправить почту с PHP. По-видимому, все мои предыдущие ужасные события с mail () на этом сервере прошли.

Спасибо за ваш вклад, в будущем я могу снова посмотреть на OpenID.

Ответы [ 4 ]

2 голосов
/ 22 июля 2009

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

это беспроигрышный вариант.

1 голос
/ 22 июля 2009

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

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

Единственный метод, который я могу придумать, не использующий эту систему, это вопрос безопасности,Банки часто используют их для дополнительной проверки, когда пользователи входят в систему или не могут войти в систему несколько раз.Иногда они также используются в качестве «секретного» кода для получения пароля, но даже в этом случае он обычно отправляется пользователю по электронной почте, а не отображается на странице.

0 голосов
/ 22 июля 2009

У вас нет возможности узнать, кто пытается сбросить пароль "Джо". Это может быть Джо или кто-то, изображающий из себя Джо.

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

Позвонить на телефон Джо с помощью аудиосообщения просто с http://www.twilio.com/ Но любой может получить офисный телефон Джо. Поэтому, как правило, перед вызовом вам понадобится дополнительная задача. Например, секретный вопрос / ответ. Используя телефон и секретные вопросы и ответы, вы усложнили работу плохих парней, но все еще выполнимо Джо.

Другая идея состоит в том, чтобы отправить сообщение о сбросе кому-то, кому Джо доверяет и кто знает Джо. (Отправьте по электронной почте или по телефону / смс.) Вариант этого - отправить сотруднику, который знает Джо, например, его назначенного сотрудника отдела продаж, представителя отдела кадров и т. Д.

Использовать сообщение: Отправьте почтовое письмо с кодом сброса. Потребовалось бы пару дней, чтобы добраться туда, но кража почты - федеральный рэп. См. http://www.postalmethods.com/ Если есть очень плохие возможные отрицательные результаты, это может быть хорошим решением.

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

Другой способ - заставить Джо позвонить в службу поддержки и позволить человеку допросить его.

Суть в том, что ни одна техника не идеальна. Смотрите историю взлома в твиттере: http://www.technewsworld.com/story/67612.html?wlc=1247790901&wlc=1248238327

Последняя мысль: не забывайте об антифишинге. Зачастую это делается путем предоставления Джо возможности выбрать изображение, которое сайт покажет ему при выполнении чего-то важного. Идея состоит в том, что фишинговый сайт не сможет копировать пользовательский интерфейс, что вызывает подозрения у Джо, что он, возможно, не попал на нужный сайт.

0 голосов
/ 22 июля 2009

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

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

Я должен предупредить вас, что это не очень хороший способ защитить свой пароль от несанкционированного доступа. Для хорошей статьи прочитайте: http://www.schneier.com/blog/archives/2005/02/the_curse_of_th.html

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