Общая информация
Плагин Рутокен Web — это специальный плагин для работы с устройством Рутокен Web. Разработка данного плагина была прекращена в 2016 году.
Рутокен Плагин — это плагин для работы с основной линейкой устройств Рутокен, включая ЭЦП 2.0, PINPad, ЭЦП PKI. В настоящее время активно ведется его разработка. Плагин рекомендован для всех устройств Рутокен.
В данной инструкции продемонстрирован процесс перехода с плагина Рутокен Web на Рутокен Плагин. Это возможно в том случае, если у вас уже встроена поддержка устройства Рутокен Web, используется плагин Рутокен Web и серверная часть работает с данными, сгенерированными плагином.
Предложенная схема требует минимальных изменений в клиентском коде и не затрагивает серверный код.
В результате описанных процедур вы получите возможность использовать всю линейку продуктов Рутокен без дополнительных материальных и трудовых затрат.
Для примера будем использовать демонстрационный сайт:
Код серверной части сайта написан на PHP. Для других языков алгоритм будет тот же.
Схема аутентификации с использованием Рутокен Web:
- Зарегистрированный на сайте клиент генерирует ключевую пару и сохраняет ее на сайте.
- При авторизации на сайте запрашиваются случайные данные для подписи. Они сохраняются на сервере и отправляются клиенту.
- Клиент получает данные, генерирует "соль", которая добавляется к данным. Результат подписывается с использованием сгенерированной в п. 1 ключевой пары и вместе с "солью" отправляется на сервер для проверки.
- Сервер производит такую же процедуру с "солью" и сохраненными в п. 2 данными. Проверяется корректность подписи и принимается решение об успешности процесса аутентификации.
В этой схеме нет сложностей, связанных с сертификатами. В процессе ее реализации происходит только подпись данных и проверка корректности самой подписи.
Формирование электронной подписи производится по алгоритму ГОСТ Р 34.10-2001.
Схема миграции с плагина Рутокен Web на Рутокен Плагин
- Установим Рутокен Плагин. Актуальная версия плагина доступна по ссылке:
https://www.rutoken.ru/support/download/rutoken-plugin/ - Изменим загрузчик плагина. Для этого заменим на страницах или в системе сборки скрипт rutokenweb.js на rutoken.js:
https://www.npmjs.com/package/rutoken
Оба скрипта используют Promise. - Если у вас установлен и работает rutokenweb.js, то зависимости должны быть.
- Если rutokenweb.js не работает, то следует установить скрипт для работы с промисами. Для этого перейдите по ссылке:
https://github.com/jakearchibald/es6-promise - Используйте модуль проверки совместимости плагина и браузера:
https://www.npmjs.com/package/rutoken-browser-check
Он дает возможность локализовать проблемы при инициализации.
У данного скрипта есть зависимость:
https://www.npmjs.com/package/bowser
Список методов, переопределенных оберткой:
rtwIsTokenPresentAndOK
rtwGetNumberOfContainers
rtwGetContainerName
rtwSign
rtwGenKeyPair