2009-07-13 1 views
3

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

Первоначально я собирался заставить пользователей выбрать секретный вопрос (из списка 5) и дать ответ. Если они когда-либо вошли на страницу «Забыли пароль», они должны были бы ввести свой идентификатор входа в систему, а также ответ на их вопрос безопасности. Это кажется немного неуверенным, так как ответ на эти типы вопросов (девичья фамилия матери, город рождения и т. Д.), Как правило, не так сложно приобрести.

Так вот некоторые из моих вопросов:

  • Есть вопросы безопасности лучший подход к этой проблеме?
  • Если да, то какие у вас лучшие вопросы?
  • Сколько вопросов должно потребоваться пользователю для ввода ответов?
  • Нужно ли помещать CAPTCHA на страницу Забыли пароль?
  • Лучше ли пользователям создавать собственные вопросы?

Любая помощь/комментарии/литература по этому вопросу были бы весьма полезными.

ответ

2

Являются ли вопросы безопасности наилучшим подходом к этой проблеме?

Поскольку вы не можете использовать другие средства аутентификации (такие как адрес электронной почты, OpenID и т. Д.), Это лучшее, что вы можете сделать на самом деле. Однако вы всегда можете добавить «подсказку пароля» к процессу регистрации.

  • Если да, то какие у вас лучшие вопросы?
  • Лучше ли пользователям создавать собственные вопросы?

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

Сколько вопросов должно быть необходимо для ввода ответов на вопросы?

Разрешите использовать один вопрос/ответ.

Необходимо ли прислать CAPTCHA на странице Забыли пароль?

Ну, должна быть какая-то попытка защитить от грубой атаки, особенно от ботов.Я бы использовал ту же технологию, что использует SO: reCAPTCHA

0

Я не могу вспомнить местоположение, но если вы выполните поиск в Google по проверке подлинности на основе знаний, вы получите ifnd, что Q & Аутентификация очень слабая. Одной из существенных проблем является энтропия (возможная случайность) потенциальных ответов и фактических ответов. Если вы попросите любимый цвет, на самом деле есть только очень маленький список цветов, которые выбирают большинство пользователей. Это может стоить 1 бит энтропии. Затем, если вы зададите второй вопрос, например, в городе, где вы выросли, это может дать вам еще один или два энтропии (в Мексике для каждого из 3-х городов есть такой шанс 30%).

Одна оценка, которую я видел, заключалась в том, что для получения одинаковой силы для пароля с 8 символами вам потребуется около 26 вопросов.

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

Удачи вам!

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

  • Нет связанных вопросов^_^