Web аутентификация с помощью hardware token?

Здравствуйте.

На сайте сейчас реализована авторизация по SSL сертификатам, устанавливаемых в браузер. Хочется перенести сертификат и приватный ключ на внешнее устройство. Желательно что бы устройство было не банальной флешкой с приватным ключем, а само подписывало запрос на авторизацию, без возможности извлечения приватного ключа.

т.е. хочется:
* Устройство в формате кредитной карты (USB, либо смарткарта)
* С криптопроцессором, что бы все операции по подписи происходили на устройстве и не было возможности извлечь приватный ключ
* Некоторое количество открытой памяти, для хранения преимущественно сертификата.
* Кроссплатформеность (Win, BSD, Lin, Mac) и кроссбраузерность.
* Желательно нативная поддержка, без установки всяких PKI как со стороны клиента, так и со стороны сервера. (нативность со стороны сервера преимущественна).
  • Вопрос задан
  • 3764 просмотра
Решения вопроса 1
Aladdin e-Token Java в форм-факторе смарт-карты.
Требует установки клиентских драйверов (eToken PKI Client).
Требует считывателя смарт-карт (в форм-факторе USB-токена удобнее работать (если нет встроенного считывателя например на ноутбуке), но меньше количество подключений, после которых расшатается либо гнездо либо разъем).
Поддерживает RSA-ключи в неизвлекаемом виде, т.е. вся криптообработка идет внутри чипа.
На серверной стороне - соответственно любое ПО, "понимающее" клиентские SSL-сертификаты с ключами RSA (на мой взгляд есть под любую платформу, в нашем проекте был Microsoft IIS)
Клиентский софт уже достаточно хорошо отлажен.
В-общем, рекомендую. Ни в коем случае не реклама.
У RuToken тоже должен быть аналогичный продукт - они с Аладдином имеют полностью идентичные линейки, но я его в руках не держал. Они на выставке недавно, кстати, много говорили об интерфейсном плагине для всех веб-браузеров - можно посмотреть и в эту сторону.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Смартфон с приложением (начать лучше с Андроид).
Генерация приватного ключа в смартфоне по коду (4-6 цифр) WEB-сессии (QR-код или ввод вручную).
Как сервер дал "добро" смарту (для отображения сообщения, что все ОК) - ставите флаг на сервере, что именно эта сессия авторизована и сертификат подтвержден.
AJAX на вебе автоматически покажет, что все ОК и можно работать уже авторизованно.
Закрыть сессию - можно либо со смарта, либо из веба дав команду "завершить сессию и выйти".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы