Как сделать сайт доступным только тогда, когда у кого-то есть ключ?
-
20-08-2019 - |
Вопрос
Предположим, вы хотите добавить дополнительный уровень учетных данных поверх логина и пароля, зашифрованных по протоколу SSL, но не хотите усложнять пользователю задачу.Есть ли способ добавить требование наличия ключа в схемы аутентификации веб-сервера с существующими кроссплатформенными возможностями браузера?
Другими словами, чтобы получить доступ к веб-сайту, вам потребуются имя пользователя, пароль и USB-ключ, подключенный к клиентскому компьютеру.Ключ, по-видимому, выполнит какой-то запрос/ответ.
Было бы идеально, если бы этот ключ работал с Firefox автоматически или с помощью простого добавления плагина.
Мысли и предложения приветствуются.
Решение
Возможно, вас заинтересует Юбикей.
Это небольшой USB-ключ, который действует как USB-клавиатура (т.не требует специальных драйверов или клиентского программного обеспечения) и предназначен именно для такого рода аутентификации.
Другие советы
Вы могли бы использовать RSA SecurID жетоны, представляющие собой небольшие брелоки-дисплеи, которые меняют отображаемое число каждую минуту.Помимо запроса имени пользователя и пароля, вы также можете потребовать от них ввести номер, который они видят на своем токене, чтобы убедиться, что у них есть аппаратное устройство.Существуют различные аппаратные ключи, некоторые из которых даже требуют ввода PIN-кода, чтобы увидеть меняющийся номер.Это дополнительная сложность на стороне сервера, но у клиента не возникает особых проблем.
Я также использовал Yubikey с хорошими результатами.Еще одно похожее решение — Суики - Возможно, вы тоже захотите это проверить.
Я добился хороших результатов при внедрении аутентификации на веб-сайте и входе в систему с помощью ключей Dinkey и ДинкиВеб система.
Пользователь подключает USB-ключ безопасности к своему компьютеру, посещает вашу «защищенную» веб-страницу и проверяет ключ перед загрузкой страницы.Работает без специальных разрешений или привилегий.
Надеюсь, поможет.
Для этого потребуется что-то, имеющее права доступа к ключу.Существует также проблема взлома — коммуникации невозможно скрыть, поэтому вам нужно убедиться, что это не имеет значения.Это означает, что ключу придется реализовать собственный crpyto.Вам также понадобится поддержка любых систем, которые вы собираетесь поддерживать.
Я вижу, что это очень быстро становится очень сложным.