Решение Рутокен WEB уже достаточно известно на рынке и внедрено в ряд систем ЭДО и web-сервисов. Для интеграции с системами, использующими цифровые сертификаты, нашей компанией создано решение Рутокен WEB PKI Edition, основные характеристики которого представлены ниже:
- работает в браузере
- кроссплатформенность и мультибраузерность
- для установки не требуются права системного администратора
- поддержка российских криптографических алгоритмов (хэш по ГОСТ Р 34.11-94, электронная подпись по ГОСТ Р 34.10-2001)
- поддержка запросов на сертификаты PKCS#10, сертификатов X.509, подписанных сообщений CMS
Для демонстрации возможностей решения создан демонстрационный интернет-банк — pki.rutokenweb.ru
Подробности под катом.
Итак, что умеет плагин.
- Получать список всех подключенных к компьютеру USB-токенов Рутокен ЭЦП или Рутокен WEB
- Получать модель устройства
- Получать метку устройства
- Осуществлять логин на устройство
- Осуществлять логаут с устройства
- Получать список всех ключевых парт ГОСТ Р 34.10-2001 на выбранном USB-токене
- Аппаратно генерировать ключевую пару ГОСТ Р 34.10-2001 на выбранном USB-токене
- Получать метку ключевой пары
- Устанавливать метку для ключевой пары
- Формировать запрос на сертификат в формате PKCS#10 для выбранной ключевой пары (поддерживаются расширения, необходимые для получения квалифицированного сертификата)
- Импортировать на устройство сертификат формата X.509, переданный в виде base64-строки
- Удалять выбранный сертификат с устройства
- Получать информацию, содержащуюся в сертификате X.509 (DN, keyUsages, extendedKeysUsages и т.п.), с поддержкой расширений квалифицированного сертификата. При этом сертификат не обязательно должен уже быть импортирован на токен
- Выдавать информацию о сертификате в виде текста для печати
- Получать список сертификатов, хранящихся на устройстве. Опционально можно задать поиск только тех сертификатов, которые связаны с закрытым ключом
- Осуществлять подпись строки в формте CMS. Опционально строка может быть перекодирована из base64 и подписан бинарный массив.
- Проводить процедуру аутентификации по сертификату (подпись случайных данных)
Теперь немного о логике работы Демо-банка, который является важным примером интеграции плагина.
Демо-банк позволяет пройти процедуру регистрации, после которой пользователю на токен будет записан сертификат и у пользователя появится его личный кабинет, в котором он сможет аутентифицироваться по сертификату. На счет пользователя будут зачислены средства и через личный кабинет можно будет провести платеж, подтвердив его электронной подписью.
1. Главная страница
Для того, чтобы пользователь мог начать работу с банком требуется в разделе Загрузить скачать и установить плагин, соответствующий ОС пользователя. После этого следует пройти процедуру Регистрации.
2. Регистрация
При регистрации на токене пользователя аппаратно генерируется ключевая пара ГОСТ Р 34.10-2001 и для нее формируется самоподписанный запрос на сертификат в формате PKCS#10. В качестве поля Common Name сертификата используется логин, указанный пользователем. Запрос отправляется на сервер и по нему выдается сертификат X.509, который затем записывается на токен пользователя. Сертификат сохраняется в базе данных сервера и «привязывается» к аккаунту пользователя.
При желании можно посмотреть запрос в виде PEM-строки и сертификат.
3. Авторизация
При авторизации Демо-банк производит поиск всех подключенных к компьютеру токенов, а затем на каждом из них поиск всех пользовательских сертификатов, связанных с закрытым ключом. Формируется список сертификатов, в котором каждый сертификат представлен Common Name. При выборе пользователем нужного сертификата вызывается функции аутентификации, в которую передаются случайные данные, пришедшие с сервера. Функция аутентификации добавляет к этим данным дополнительный рэндом и затем подписывает результат закрытым ключом, связанным с сертификатом. В итоге формируется «присоединенная» подпись в формате CMS, которая отправляется на сервер. Сервер производит проверку подписи, с выстраиванием цепочки, сверяет «присоединенные» данные и авторизует пользователя в личном кабинете по сертификату, содержащемуся в сообщении CMS.
И вот вы в личном кабинете
4. Подпись платежа
Демо-банк эмулирует работу платежной системы — через него можно провести платеж, заверив его подписью.
При формировании подписи используется тот же сертификат, что и при авторизации в личном кабинете. Заверенный подписью платеж отправляется на сервер, где по результатам проверки подписи принимается.
На сайте Демо-банка имеется раздел API, в котором можно ознакомиться с описанием функциональности браузерного плагина. Если требуется задать вопросы по решению, обращайтесь на форум forum.rutoken.ru/forum/8/
Автор: VicTun