Я пытаюсь реализовать двухфакторную аутентификацию по дешевке. Как бы я это сделал? - PullRequest
1 голос
/ 13 мая 2010

Хорошо, мне нужно 2 из 3.

Что-то, что знает пользователь.
Что-то, что есть у пользователя.
Что-то, что есть у пользователя.

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

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

Это действительный метод двухфакторной аутентификации?

Как еще это можно сделать?

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

Спасибо за вашу помощь!

Ответы [ 8 ]

3 голосов
/ 12 марта 2012

Система грид-карт, это также дешевая схема двусторонней аутентификации.

enter image description here

Вы можете сгенерировать Grid Card, используя случайные числа или буквы, и сохранить значения на сервере. Затем вы даете карту каждому пользователю и сохраняете серийный номер карты. Позже, во время входа в систему, вы запрашиваете токен в строке и столбце, а затем проверяете значение на сервере.

3 голосов
/ 13 мая 2010

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

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

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

Как и во всех системах безопасности, здесь есть множество подводных камней. Их очень сложно понять правильно. Имейте в виду. Купить страховку;)

2 голосов
/ 18 мая 2010

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

Одним из примеров этого является система Perfect Paper Password Стива Гибсона. Он сделал спецификации и алгоритмы открытыми и предоставляет собственную реализацию с закрытым исходным кодом. Другие построили реализации с открытым исходным кодом. Его система на самом деле может быть не идеальной, но это интересная идея для одного способа решения проблемы.

Независимо от того, какую систему вы решите внедрить, все равно стоит потратить немного денег на проверку экспертом по безопасности ...

2 голосов
/ 18 мая 2010

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

Итак, это не единичная вещь. То же самое касается выданного сертификата.

Не говорю, что это совершенно неэффективно, но просто потому, что оно не уникально, и это может быть потенциальной проблемой.

Популярная «дешевая» техника - это SMS-сообщение на мобильный телефон. Человек входит в систему, затем компьютер отправляет SMS-код, скажем, с 6 цифрами, на зарегистрированный номер телефона, а затем необходимо ввести этот номер. Очевидно, с этим есть проблемы. Не у всех есть мобильный телефон, многие платят за SMS-сообщения и т. Д. Но в некоторых условиях он может хорошо работать.

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

2 голосов
/ 18 мая 2010

Почему бы не использовать решения для проверки телефона, чтобы отключить аутентификацию из Интернета? Это доказывает более надежную аутентификацию. Я слышал, что компания Telesign занимается такими вещами, как блокировка номеров VOIP. Вы должны проверить их, и это довольно недорого.

2 голосов

Можете ли вы использовать клиентские сертификаты X.509? Они бесплатны.

1 голос
/ 13 мая 2010

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

1 голос
/ 13 мая 2010

Или вы можете просто использовать решение с открытым исходным кодом, как у нас: http://www.wikidsystems.com/community-version

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