Рутокен WEB PKI Edition

от автора

Решение Рутокен 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. Главная страница

Для того, чтобы пользователь мог начать работу с банком требуется в разделе Загрузить скачать и установить плагин, соответствующий ОС пользователя. После этого следует пройти процедуру Регистрации.

image

2. Регистрация

image

При регистрации на токене пользователя аппаратно генерируется ключевая пара ГОСТ Р 34.10-2001 и для нее формируется самоподписанный запрос на сертификат в формате PKCS#10. В качестве поля Common Name сертификата используется логин, указанный пользователем. Запрос отправляется на сервер и по нему выдается сертификат X.509, который затем записывается на токен пользователя. Сертификат сохраняется в базе данных сервера и «привязывается» к аккаунту пользователя.

image

При желании можно посмотреть запрос в виде PEM-строки и сертификат.

image

3. Авторизация

При авторизации Демо-банк производит поиск всех подключенных к компьютеру токенов, а затем на каждом из них поиск всех пользовательских сертификатов, связанных с закрытым ключом. Формируется список сертификатов, в котором каждый сертификат представлен Common Name. При выборе пользователем нужного сертификата вызывается функции аутентификации, в которую передаются случайные данные, пришедшие с сервера. Функция аутентификации добавляет к этим данным дополнительный рэндом и затем подписывает результат закрытым ключом, связанным с сертификатом. В итоге формируется «присоединенная» подпись в формате CMS, которая отправляется на сервер. Сервер производит проверку подписи, с выстраиванием цепочки, сверяет «присоединенные» данные и авторизует пользователя в личном кабинете по сертификату, содержащемуся в сообщении CMS.

image

И вот вы в личном кабинете

image

4. Подпись платежа

Демо-банк эмулирует работу платежной системы — через него можно провести платеж, заверив его подписью.
При формировании подписи используется тот же сертификат, что и при авторизации в личном кабинете. Заверенный подписью платеж отправляется на сервер, где по результатам проверки подписи принимается.

image

На сайте Демо-банка имеется раздел API, в котором можно ознакомиться с описанием функциональности браузерного плагина. Если требуется задать вопросы по решению, обращайтесь на форум forum.rutoken.ru/forum/8/

ссылка на оригинал статьи http://habrahabr.ru/company/aktiv-company/blog/155835/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *