многофакторная аутентификация для asp.net - PullRequest
1 голос
/ 17 ноября 2010

Есть ли у кого-нибудь указатели для реализации следующего:

Я хочу дешево включить многофакторную аутентификацию на сайте asp.net.Я хочу, чтобы люди могли использовать приложение на своем телефоне (по крайней мере, на iPhone), чтобы генерировать токен, который используется вместе с именем пользователя и паролем для входа на сайт.нести стороннее устройство / брелок для генерации токена.

спасибо, Андрей

Ответы [ 3 ]

0 голосов
/ 17 ноября 2010

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

Наиболее распространенным (и самым разочаровывающим) методом проверки является пароль. Это секрет, который, предположительно, знает только пользователь.

Другие формы проверки включают в себя:

  • MAC-адрес / идентификатор машины (если он получен из известного источника, вероятно, это они, к сожалению, также легко подделываются).
  • PKI - единственное, что делает управление ключами более безопасным, чем пароль. По сути, вы должны убедиться, что запрос сертификата, который они отправляют со своего устройства, действительно принадлежит им. Как только вы это сделаете, вы выдадите сертификат, который они используют с этого момента. ПРИМЕЧАНИЕ: не все браузеры поддерживают PKI (в данный момент это явный недостаток в Google Chrome).
  • Вторичный общий секрет. Это может быть GUID, которым обмениваются через зашифрованное соединение, или что-то в этом роде.
  • биометрия. Требуется внешнее оборудование, но копирование отпечатков пальцев и сетчатки может быть затруднено.
  • Мутирующий ключ от внешнего сервиса. Что-то вроде брелка RSA, который каждую минуту отображает новый шестизначный ключ. Комбинация серийного номера брелка и отображаемого ключа гарантирует, что у вас есть правильный парень.

ПРИМЕЧАНИЕ: брелок RSA - это внешнее устройство, которое вы выпускаете и не требует подключения к клиентскому компьютеру. После того, как вы связали серийный номер брелка с учетной записью, вы используете предоставленный пользователем шестизначный ключ в сервисе аутентификации RSA. Конечно, время вашего сервера должно быть синхронизировано с RSA. Многие корпоративные VPN используют этот метод в качестве дополнительного (или иногда основного) метода проверки пользователя.

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

0 голосов
/ 07 августа 2011

Я наконец-то решил свою проблему, используя Google Authenticator и небольшую модификацию этого: http://code.google.com/p/g-authenticator-wp7/

0 голосов
/ 17 ноября 2010

Мой подход будет:

  • Каждый клиент получает копию открытого ключа
  • Каждый клиент получает случайный GUID, который будет идентифицирован с
  • Пользовательский код, который генерирует токен на основе времени (до минуты), IP-адреса (возможно) и GUID с помощью ключа.

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

Затем для использования сайта токен генерируется и шифруется ключом и отправляется на сервер. Сервер разбирает токен и идентифицирует GUID и сопоставляет время и IP-адрес (возможно).

...