Почему подход «вызов-ответ» - плохое решение для забытых паролей? - PullRequest
5 голосов
/ 05 марта 2009

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

Мой первоначальный план состоял в том, чтобы потребовать от пользователя ввести как адрес электронной почты, так и ответ на ранее выбранный / введенный контрольный вопрос, при этом временный пароль был отправлен по почте на указанный адрес электронной почты (при условии, что электронная почта действует). Но я прочитал здесь и здесь (оба на SO), что подход вызов-ответ небезопасен.

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

Чего мне не хватает ... есть ли лучший подход? Спасибо!

Ответы [ 6 ]

15 голосов
/ 05 марта 2009

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

Добавлено из комментариев:

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

3 голосов
/ 05 марта 2009

Как объясняется в этой статье , учетная запись электронной почты губернатора Пейлина была недавно взломана с использованием ответов на ранее заданные вопросы. Из статьи:

Как подробно описано в сообщениях, взлом Пэйлин не требовал никаких реальных навыков. Вместо этого хакер просто сбросил пароль Пэйлин, используя ее дату рождения, почтовый индекс и информацию о том, где она встретила своего супруга - секретный вопрос в ее учетной записи Yahoo, на который (Wasilla High) ответил простой поиск в Google.

1 голос
/ 07 марта 2009

Существует несколько распространенных способов управления утерянными паролями:

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

  • Отправить новый пароль. Чтобы обойти этот элемент управления, требуется доступ к учетной записи электронной почты или позиция «человек в середине» (MITM): вы либо считываете временный пароль из почтового ящика пользователя, либо перехватываете посередине. Этот подход созрел для неправильного использования, потому что любой может сбросить пароль и заставить пользователя выйти из системы, если он не может прочитать электронное письмо с новым паролем.

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

  • Рассмотрим некоторые внеплановые коммуникации, например, в печатном контракте запишите ПИН-код. Затем попросите пользователя позвонить в службу поддержки по известному номеру телефона (проверьте с помощью идентификатора вызывающего абонента) и укажите свое имя пользователя и PIN-код.

0 голосов
/ 04 августа 2010

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

0 голосов
/ 05 марта 2009

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

0 голосов
/ 05 марта 2009

Разве не было бы легко / выполнимо передать все управление паролями, как это делал SO, и использовать OpenId или подобное? Конечно, это добавит еще одну зависимость, но вы должны поменять ее на необходимость сохранять (и защищать) пароли и работать с ними, как вы описали.

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