Подтвердить что ты не робот

Пароль reset путем отправки временных паролей по электронной почте

Группа в моей компании реализует API REST для единого входа для наших приложений. Эта служба аутентификации имеет функцию пароля reset. Приложение отправляет имя пользователя функции reset. Если это имя пользователя связано с адресом электронной почты, тогда на этот адрес отправляется электронное письмо с временным паролем.

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

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

Есть ли существенные причины безопасности, чтобы предпочесть один метод другому? Есть ли другой, более безопасный способ сделать это?

4b9b3361

Ответ 1

В обоих случаях личная информация (временный пароль или ссылка reset) передается через один и тот же носитель. С этой точки зрения нет никакой разницы в безопасности. Однако ссылка reset имеет несколько преимуществ: вы вынуждаете пользователя выбирать новый пароль. Как только он это сделает, ссылка недействительна и не может быть злоупотреблена. Временные пароли, напротив, имеют тенденцию быть не такими временными, как вам нравится. Даже если вы вынудите пользователя выбрать новый пароль при следующем входе в систему, он, скорее всего, снова войдет в временный.

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

Ответ 2

Есть ли существенные причины безопасности, чтобы предпочесть один метод другому?

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

Ответ 3

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

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

  • угадываемы. Такие вопросы, как "любимый цвет", довольно восприимчивы к угадыванию общих вариантов, таких как "красный", "синий", "зеленый" и т.д.
  • обнаружимого. Многие из них связаны с профилем Facebook/MySpace/Twitter/Flickr или иным способом для Google.
  • забывающимися. Я выбрал "любимое место отдыха", а затем через год или два не смог вспомнить, что я выбрал.
  • Трудно разобрать. Если я наберу "Святой Павел" для названия города, но позже вернусь с "Святым Павлом", это будет принято?

Ответ 4

Существует много более безопасных способов для пароля reset. Все они очень неудобны для ваших пользователей и дорогие в обслуживании. Каждый пользователь отправляет вам образец ДНК и отпечатки пальцев, а затем требует, чтобы они отображались лично для проверки, должны помочь с вашей безопасностью. Я удивлен, что ваша совершенно секретная организация позволяет вам получить рекомендации по безопасности в stackoverflow. Все шутите в сторону, насколько безопасно ваше приложение? Удастся ли нападающим сбросить ваши пароли пользователей, а затем получить доступ к их электронной почте?

XKCD всегда говорит, что лучше http://xkcd.com/538/