Этот токен сброса пароля недействителен что значит

.Net Core токен сброса пароля и токен Identityserver 4 недействительны

Мои приложения и API защищены с помощью IdentityServer 4.

У меня есть централизованный API для управления пользователями (регистрация новых пользователей, обновление, удаление и сброс паролей). Токен, сгенерированный этим api, будет использоваться сервером идентификации для сброса пароля пользователя.

Проблема в том, что я всегда получаю ошибку неверного токена. Я знаю, что это не имеет ничего общего с кодировкой URL, потому что забытый пароль обрабатывается сервером идентификации, а токен, созданный сервером идентификации, работает нормально. Проблема в том, что токен генерируется разными api (даже на одной машине).

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

Я использую usermanager Asp Identity для создания токена сброса пароля:

Вот как мой IdentityServer настроен на использование Asp Identity:

И вот как мой UserManagement Api настроен для использования Asp Identity:

2 ответа

Пришлось перейти к другим вопросам, а сейчас вернусь к этому. Я решил эту проблему, убедившись, что все мои API и экземпляр IdentityServer настроены для использования защиты данных ASP.NET Core. Я использую redis в качестве моей распределенной системы кеширования, поэтому мне просто нужно было настроить каждый из моих api и identityserver, и теперь все использует одни и те же ключи при генерации токенов. Вот что я использую в каждом файле startup.cs:

А затем не забудьте использовать сеанс (в API):

Источник

Токен недействителен при сбросе пароля с помощью удостоверения ASP.NET

Я реализовал ASP.NET Identity в своем приложении MVC, скопировав код из шаблонов VS 2013. Основная вещь работает, но мне не удалось заставить работать сброс пароля. Когда я показываю страницу «забытый пароль», создается электронное письмо, содержащее токен. Этот токен возвращается методом:

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

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

5 ответов

Токен, сгенерированный UserManager в ASP.NET Identity, обычно содержит символы » + «, которые при передаче в качестве строки запроса заменяются на » » (пробел) в URL-адресе. В ResetPassword ActionResult замените » » на » + » следующим образом:

Это должно делать свое дело. У меня была такая же проблема, и я нашел ответ здесь.

Просто хотел добавить, что наиболее распространенной проблемой за пределами кодирования / декодирования HTML является то, что в вашей пользовательской записи в базе данных может отсутствовать SecurityStamp. В ASP.NET Identity есть ошибка, когда одна функция устанавливает значение null при создании токена, тогда как другая при проверке токена проверяет наличие пустой строки.

Если ваш SecurityStamp имеет значение null или пустую строку, это вызовет проблему с недопустимым токеном.

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

Если ваш SecurityStamp изменится после создания вашего токена, токен также недействителен.

Так, например, вы генерируете свой токен, используя

Источник

Не могу зайти на Sendpulse — выдаётся ошибка: токен отсутствует или неверен

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Случается так, что, при желании посетить личные владения в Sendpulse, ни в какую невозможно зайти в аккаунт… Мы, не долго размышляя, пробуем вновь ввести /перезаписать пароль — всё одно войти не получается! и многие наши поползновения открыть страничку личного аккаунта СендПульс не приводят к положительным результатам!

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

В общем-то ошибка рядовая! однако, начинающего владелица рассылки, может озадачить тот факт что сендпульс не впускает в аккаунт; тратится масса времени на выяснение и устранение ошибки.

Ну, давайте рассмотрим сцену драмы подробнее: и через минуту будем в аккаунте!)

Токен (их много! нас интересует: программный токен), это понятие означает следующее — свидетельство о наличии полномочий для успешной аутентификации и используется для идентификации уникального владельца.

Программный токен автоматически выдаётся пользователю аккаунта перед/после успешной авторизации и является обязательным ключом для доступа к сервису.

если Sendpulse не принимает пароль аккаунта

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

Принцип решения доступа в аккаунт Sendpulse достаточно прост, но, неожиданность задачи входа на сайт рассылки, как и говорилось, вводит в замешательство!

Вот сервисная страничка входа:

…и такое, к примеру, предупреждение:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Перезагрузка (как предлагает сервис) странички и перезапись пароля на этом этапе как правило не помогают.

Однако для некоторых владельцев весьма успешно способствует некоторая профилактика браузера, например — попробуем удалить куки сервиса рассылки и вообще — все личные данные аккаунта, чтобы как-то обновить токен:

1 — очистим данные сервиса: куки, пароли и кэш пр. пр.

В этой статье не стану пояснять подробно — как удаляются данные сервисов, — для этого есть иные полезные статьи: (подробнее описано тут: удаляем ненужные пароли, куки… и здесь: удалить в браузере данные SendPulse).

Но в теме этого поста… и чтобы как-то натолкнуть читателя на мысль решения проблемы входа в аккаунт Сендпульс, напоминаю: очистка кук в браузере, к примеру, в Фаерфокс происходит в этих настройках адресной строки обозревателя:

(во всех остальных случаях различных браузеров решения аналогичны!)

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Если это не помогло — предупреждение не исчезло… ничего страшного (профилактика браузера лишней не бывает))! — приступим к следующему варианту:

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

как восстановить пароль sendpulse

На страничке входа, соответственно кликаем «Забыли пароль?».

…Через некоторое время на указанную почту придёт ссылка на страничку восстановления пароля Сендпульс.

Возможно перейти по ссылке прямо из письма (в каком-то другом браузере) и… заменить пароль — Но!! я советую (если у вас почта открыта в стороннем браузере) скопировать ссылку и ввести в адресное окно основного своего обозревателя: таким образом данные обновятся и ничего не нужно будет вводить повторно!

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Ну вот и всё — доступ восстановлен!

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Если что-то не совсем ясно в моём описании, милости прошу к комментариям…

На этом занавес представления опускается…
…на рампы пыль печальная ложится…

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значитOnline консультация по настройкам и созданию сайтов на WordPress

. подписываясь на обновления mihalica.ru —
. расстаёмся с невежеством.

Источник

Токен сброса пароля недействителен что делать. PIN-код для токенов: пароль с особыми правилами. Я забыл пароль etoken, что делать

2. Установите чекбокс напротив поля Удалить все запомненные пароли закрытых ключей: Пользователя

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Запустите программу eToken Properties. Переключитесь в подробный вид отображения. Для этого нажмите на кнопку и проверьте количество «попыток пароля пользователя – осталось». Должно быть «15», если «0», то еТокен заблокирован.

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

Внимание! Ни в коем случае не допускайте блокировку под администратором. В этом случае произойдет полная блокировка устройства без возможности восстановления ключа! Если не знаете пароль, обратитесь за консультацией в техническую поддержку.

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

После установки пароля пользователя, количество попыток будет 15 – еТокен разблокирован.

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

Я забыл пароль etoken, что делать

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

Запустите программу eToken PKI Client (при необходимости установите программу)

Выберите считыватель eToken, затем нажмите «Показать подробный вид»

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Нажмите на кнопку «Вход с правами Администартора»

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Если пароль администратора был введен правильно, должно появиться сообщение «Выполнен вход с правами Администратора»

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Затем нажмите на кнопку «Установить пароль пользователя»

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Задайте новый пароль и нажмите « ОК « (настоятельно рекомендуем указывать пароль по умолчанию 1234567890 ), чтобы точно уже не забыть.

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Токены, электронные ключи для доступа к важной информации, приобретают всю большую популярность в России. Токен сейчас – не только средство для аутентификации в операционной системе компьютера, но и удобное устройство для хранения и предъявления персональной информации: ключей шифрования, сертификатов, лицензий, удостоверений. Токены надежнее стандартной пары “логин/пароль” за счет механизма двухфакторной идентификации: то есть пользователь не только должен иметь в наличии носитель информации (непосредственно сам токен), но и знать PIN-код.

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

Наиболее популярные модели токенов на современном электронном рынке России – Рутокен, eToken от компании “Аладдин”, и электронный ключ от компании “Актив”. Рассмотрим наиболее часто задаваемые вопросы касательно PIN-кодов для токена на примере токенов этих производителей.

1. Какой PIN-код используется по умолчанию?

В таблице ниже представлены информация о PIN-кодах по умолчанию для токенов Рутокен и eToken. Пароль по умолчанию отличается для разных уровней владельцев.

ВладелецПользовательАдминистратор
Рутокен1234567887654321
eToken1234567890По умолчанию пароль администратора не устанавливается. Может быть установлен через панель управления только для моделей eToken PRO, eToken NG- FLASH, eToken NG-OTP.
JaCarta PKI1111111100000000
JaCarta ГОСТНе задан1234567890
JaCarta PKI/ГОСТДля PKI-функционала: 11111111

Для ГОСТ-функционала: PIN-код не задан

Для ГОСТ-функционала: 1234567890

JaCarta PKI/ГОСТ/SEДля PKI-функционала: 11111111

Для ГОСТ-функционала: 0987654321

Для ГОСТ-функционала: 1234567890

JaCarta PKI/BIO1111111100000000
JaCarta PKI/Flash1111111100000000
ESMART Token1234567812345678
карта IDPrime000048 нулей
JaCarta PRO/JaCarta LT12345678901234567890

2. Надо ли изменять PIN-код по умолчанию? Если да, то в какой момент работы с токеном?

3. Что делать, если PIN-коды на токене неизвестны, а PIN-код по умолчанию уже сброшен?

4. Что делать, если PIN-код пользователя заблокирован?

Разблокировать PIN-код пользователя можно через панель управления токена. Для выполнения этой операции необходимо знать PIN-код администратора.

5. Что делать, если PIN-код администратора заблокирован?

6. Какие меры безопасности предприняты производителями для снижения риска подбора пароля?

Основные пункты политики безопасности для PIN-кодов USB-токенов компаний “Аладдин” и “Актив” представлены в таблице ниже. Проанализировав данные таблицы можно сделать вывод, что eToken предположительно будет иметь более защищенный пин код. Рутокен, хоть и позволяет задавать пароль всего из одного символа, что небезопасно, по остальным параметрам не уступает продукту компании “Аладдин”.

Администрирование безопасности PIN-кода

ПараметрeToken Рутокен
Минимальная длина PIN-кода41
Буквы, цифры, специальные символыЦифры, буквы латинского алфавита
Больше или равно 7До 16
ЕстьЕсть
ЕстьЕсть

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

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

Источник

Всё, что вы хотели знать о безопасном сбросе паролей. Часть 1

Недавно у меня появилось время снова поразмыслить над тем, как должна работать функция безопасного сброса пароля, сначала когда я встраивал эту функциональность в ASafaWeb, а потом когда помогал сделать нечто подобное другому человеку. Во втором случае я хотел дать ему ссылку на канонический ресурс со всеми подробностями безопасной реализации функции сброса. Однако проблема в том, что такого ресурса не существует, по крайней мере, такого, в котором описывается всё, что мне кажется важным. Поэтому я решил написать его сам.

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

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Хранение паролей: хэширование, шифрование и (ох!) простой текст

Мы не можем обсуждать, что делать с забытыми паролями, прежде чем не обсудим способ их хранения. В базе данных пароли хранятся в одном из трёх основных видов:

Шифрование лучше, но имеет свои слабые стороны. Проблема шифрования — в дешифровке; можно взять эти безумно выглядящие шифры и преобразовать их обратно в простой текст, а когда это произойдёт, мы вернёмся к ситуации с читаемыми паролями. Как это происходит? Небольшой изъян проникает в код, занимающийся дешифровкой пароля, делая его публично доступным — это один из способов. Доступ к машине, на которой хранятся зашифрованные данные, получают взломщики — это второй способ. Ещё один способ опять-таки заключается в том, что похищают резервную копию базы данных, и кто-то также получает ключ шифрования, которые часто хранятся очень ненадёжно.

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

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

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

Всегда сбрасывайте пароль, никогда его не напоминайте

Вас когда-нибудь просили создать функцию напоминания пароля? Сделайте шаг назад и подумайте об этой просьбе в обратную сторону: зачем нужно это «напоминание»? Потому что пользователь забыл пароль. Что мы на самом деле хотим сделать? Помочь ему снова войти в систему.

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

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

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

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Выглядит ненамного лучше, к сожалению; и электронная почта подтверждает наличие проблемы:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Это говорит нам о двух важных аспектах usoutdoor.com:

Перечисление имён пользователей и его влияние на анонимность

Эту проблему лучше проиллюстрировать визуально. Проблема:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Подобные практики также вызывают возникновение опасности «перечисления имён пользователей», при котором можно проверить существование на веб-сайте целой коллекции имён пользователей или адресов почты простыми групповыми запросами и изучением ответов на них. У вас есть список адресов электронной почты всех сотрудников и несколько минут на написание скрипта? Тогда вы видите, в чём проблема!

Какова же альтернатива? На самом деле, она довольно проста, и замечательно реализована на Entropay:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Здесь Entropay совершенно ничего не раскрывает о существовании в своей системе адреса электронной почты тому, кто не владеет этим адресом. Если вы владеете этим адресом и он не существует в системе, то вы получите подобное электронное письмо:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

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

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

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

Ещё одно примечание, немного отклоняющееся от темы: функции помощи входу в систему, раскрывающие правильность имени пользователя или адреса электронной почты, обладают той же проблемой. Всегда отвечайте пользователю сообщением «Неправильное сочетание имени пользователя и пароля» (You username and password combination is invalid), а не подтверждайте явным образом существование идентификационной информации (например, «имя пользователя верное, но пароль введён неверно»).

Отправка пароля сброса против отправки URL сброса

Следующая концепция, которую нам нужно обсудить, связана со способом сброса пароля. Существует два популярных решения:

Но кроме этого у первого пункта существует ещё одна серьёзная проблема — он максимально упрощает блокировку учётной записи со злым умыслом. Если я знаю адрес почты того, кто владеет учётной записью на веб-сайте, то я могу заблокировать его в любой момент времени, просто сбросив его пароль; это атака типа «отказ в обслуживании», выложенная на блюдечке с голубой каёмочкой! Именно поэтому сброс должен выполняться только после успешной проверки у запрашивающего права на него.

Когда мы говорим об URL сброса, то подразумеваем адрес веб-сайта, который является уникальным для этого конкретного случая процесса сброса. Разумеется, он должен быть случайным, его не должно быть легко разгадать и он не должен содержать никаких внешних ссылок на учётную запись, упрощающих сброс. Например, URL сброса не должен быть просто путём наподобие «Reset/?username=JohnSmith».

Мы хотим создать уникальный токен, который можно будет отправить по почте как URL сброса, а затем сверить его с записью на сервере с учётной записью пользователя, подтвердив таким образом, что владелец учётной записи и в самом деле тот же самый человек, который пытается сбросить пароль. Например, токен может иметь вид «3ce7854015cd38c862cb9e14a1ae552b» и храниться в таблице вместе с ID пользователя, выполняющего сброс, и временем генерации токена (подробнее об этом чуть ниже). При отправке письма оно содержит URL наподобие «Reset/?id=3ce7854015cd38c862cb9e14a1ae552b», а когда пользователь загружает его, страница запрашивает существование токена, после чего подтверждает информацию пользователя и разрешает изменить пароль.

Разумеется, поскольку описанный выше процесс (будем надеяться) позволяет пользователю создать новый пароль, нужно гарантировать загрузку URL по HTTPS. Нет, передать его POST-запросом по HTTPS недостаточно, этот URL с токеном должны использовать безопасность транспортного слоя, чтобы на форму ввода нового пароля невозможно было совершить атаку MITM и созданный пользователем пароль передавался по защищённому соединению.

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

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

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

Роль CAPTCHA

О, CAPTCHA, средство защиты, которое все мы так любим ненавидеть! На самом деле, CAPTCHA средство не столько защиты, сколько идентификации — человек вы или робот (или автоматизированный скрипт). Её смысл в том, чтобы избежать автоматическую отправку форм, которая, разумеется, может применяться как попытка взлома защиты. В контексте сброса паролей CAPTCHA означает, что функцию сброса невозможно будет взломать грубым перебором, чтобы или потом спамить пользователю, или попытаться определить существование учётных записей (что, разумеется, будет невозможно, если вы следовали советам из раздела о проверке идентификации).

Разумеется, сама по себе CAPTCHA неидеальна; существует множество прецедентов её программного «взлома» и достижения достаточных показателей успеха (60-70%). Кроме того, существует решение, показанное в моём посте о взломе CAPTCHA автоматизированными людьми, при котором можно платить людям доли цента для решения каждой CAPTCHA и получения показателя успеха в 94%. То есть она уязвима, однако (слегка) повышает входной барьер.

Давайте взглянем на пример PayPal:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

В данном случае процесс сброса просто не может начаться до решения CAPTCHA, поэтому теоретически автоматизировать процесс невозможно. Теоретически.

Однако для большинства веб-приложений это будет перебором и совершенно точно представляет собой снижение юзабилити — люди просто не любят CAPTCHA! Кроме того, CAPTCHA — это такая вещь, к которой при необходимости можно будет легко вернуться. Если сервис начинает подвергаться нападению (здесь пригождается логгинг, но подробнее об этом позже), то добавить CAPTCHA легче некуда.

Секретные вопросы и ответы

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

На самом деле, представленная выше ссылка о взломе учётной записи Сары Пэйлин на Yahoo! служит двум целям; во-первых, она иллюстрирует, насколько легко можно взламывать (некоторые) почтовые аккаунты, во-вторых, она показывает, как можно со злым умыслом использовать плохие секретные вопросы. Но мы вернёмся к этому позже.

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

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

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

Хакер Дэвид Кернелл получил доступ к учётной записи Пэйлин, найдя подробности её биографии, такие как её вуз и дату рождения, а затем использовав функцию восстановления забытых паролей к учётным записям Yahoo!.

В первую очередь это ошибка проектирования со стороны Yahoo! — указав такие простые вопросы, компания по сути саботировала ценность секретного вопроса, а значит, и защиту своей системы. Разумеется, сброс паролей к учётной записи электронной почты всегда сложнее, ведь вы не можете подтвердить её владение, отправив владельцу электронное письмо (не имея второго адреса), но, к счастью, сегодня для создания такой системы не так уж много способов применения.

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

Какого цвета небо?

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

С кем я переспал на Рождество?

Или откровенно глупые вопросы:

Как пишется «пароль»?

Когда дело касается секретных вопросов, пользователей нужно спасти от самих себя! Другими словами, секретный вопрос должен определять сам сайт, а ещё лучше, задавать серию секретных вопросов, из которых может выбирать пользователь. И не просто выбирать один; в идеале пользователь должен выбрать два или более секретных вопросов в момент регистрации аккаунта, которые затем будут использоваться как второй канал идентификации. Наличие нескольких вопросов повышает степень уверенности в процессе проверки, а также даёт возможность добавления случайности (не всегда показывать одинаковый вопрос), плюс обеспечивает немного избыточности на случай, если настоящий пользователь забыл пароль.

Каким же должен быть хороший секретный вопрос? На это влияет несколько факторов:

Позвольте мне продемонстрировать, как секретные вопросы реализованы в PayPal и, в частности, какие усилия сайт прикладывает для идентификации. Выше мы видели страницу начала процесса (с CAPTCHA), а здесь мы покажем, что происходит после того, как вы вводите адрес почты и решаете CAPTCHA:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

В результате пользователь получает такое письмо:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Пока всё вполне обычно, но вот что скрывается за этим URL сброса:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Итак, в дело вступают секретные вопросы. На самом деле, PayPal также позволяет сбросить пароль, подтвердив номер кредитной карты, поэтому существует дополнительный канал, к которому не имеют доступа множество сайтов. Я просто не могу изменить пароль, не ответив на оба секретных вопроса (или не зная номер карты). Даже если кто-то захватит мою электронную почту, он не сможет сбросить пароль учётной записи PayPal, если не знает обо мне чуть больше личной информации. Какой информации? Вот варианты секретных вопросов, предлагаемые PayPal:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

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

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

PayPal — довольно утопический пример безопасного сброса пароля: он реализует CAPTCHA для снижения опасности грубого перебора, требует два секретных вопроса, а затем требует ещё один вид совершенно другой идентификации только для смены ответов — и это после того, как пользователь уже выполнил вход. Разумеется именно этого мы и ожидали бы от PayPal; это финансовая организация, работающая с большими суммами денег. Это не означает, что каждый сброс пароля должен следовать этим этапам — в большинстве случаев это перебор — однако это хороший пример для случаев, когда безопасность — серьёзный бизнес.

Удобство системы секретных вопросов в том, что если вы не реализовали её сразу, то её можно добавить позже, если этого требует уровень защиты ресурса. Хорошим примером этого служит Apple, только недавно реализовавшая этот механизм [статья написана в 2012 году]. Начав однажды обновлять приложение на iPad, я увидел следующий запрос:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Затем я увидел экран, на котором можно было выбрать несколько пар секретных вопросов и ответов, а также спасательный адрес электронной почты:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

Что касается PayPal, то вопросы выбраны заранее и некоторые из них на самом деле довольно неплохи:

Этот токен сброса пароля недействителен что значит. Смотреть фото Этот токен сброса пароля недействителен что значит. Смотреть картинку Этот токен сброса пароля недействителен что значит. Картинка про Этот токен сброса пароля недействителен что значит. Фото Этот токен сброса пароля недействителен что значит

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

Ещё одним аспектом, который нужно рассмотреть относительно ответа на секретный вопрос, является хранение. Нахождение в ДБ простого текста представляет почти те же угрозы, что и в случае пароля, а именно — раскрытие базы данных мгновенно раскрывает значение и подвергает риску не только приложение, но и потенциально совершенно другие приложения, использующие те же секретные вопросы (это снова вопрос ягод асаи). Одним из вариантов является безопасное хэширование (стойкий алгоритм и криптографически случайная соль), однако в отличие от большинства случаев хранения паролей, здесь может быть уважительная причина видимости ответа как простого текста. Типичным сценарием является проверка личности живым оператором по телефону. Разумеется, в этом случае хэширование тоже применимо (оператор может просто ввести названный клиентом ответ), но в самом худшем случае секретный ответ должен находиться на каком-нибудь уровне криптографического хранилища, даже если это просто симметричное шифрование. Подведём итог: обращайтесь с секретами как с секретами!

И последний аспект секретных вопросов и ответов — они более уязвимы для социального инжиниринга. Пытаться напрямую выпытывать пароль к чужому аккаунту — это одно дело, а завязать разговор о его образовании (популярный секретный вопрос) — совершенно другое. На самом деле, вы вполне реально можете общаться с кем-то о многих аспектах его жизни, которые могут представлять секретный вопрос, и не вызывать при этом подозрений. Разумеется, сама суть секретного вопроса в том, что он связан с чьим-то жизненным опытом, поэтому он запоминается, и именно в этом заключается проблема — люди любят рассказывать о своём жизненном опыте! С этим мало что можно поделать, только если выбрать такие варианты секретных вопросов, чтобы их с меньшей вероятностью можно было бы вытянуть социальным инжинирингом.

На правах рекламы

VDSina предлагает надёжные серверы с посуточной оплатой, каждый сервер подключён к интернет-каналу в 500 Мегабит и бесплатно защищён от DDoS-атак!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *