Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Общая информация

Плагин Рутокен Web

...

 — это специальный плагин

...

для

...

работы с устройством Рутокен Web. Разработка

...

данного плагина была прекращена в 2016 году.

Рутокен Плагин

...

 — это плагин для работы с основной

...

линейкой устройств Рутокен, включая ЭЦП 2.0, PINPad, ЭЦП PKI.

...

В настоящее время активно ведется его разработка. Плагин рекомендован для всех устройств Рутокен.

Покажем, как перейти на новый плагинВ данной инструкции продемонстрирован процесс перехода с плагина Рутокен Web на Рутокен Плагин. Это возможно в том случае, если у вас уже встроена поддержка поддержка  устройства Рутокен Web и , используется плагин Рутокен Web плагин и серверная часть , работающая работает с данными, сгенерированными плагином. 

Предложенная схема позволит минимально изменить клиентский код требует минимальных изменений в клиентском коде и не затрагивать затрагивает серверный код.

В результате мы получим описанных процедур вы получите возможность использовать всю линейку продуктов Рутокен , работающих с Рутокен Плагином и сохраним возможность работы с устройствами Рутокен Webбез дополнительных материальных и трудовых затрат.

Для примера возьмем будем использовать демонстрационный сайт:

http://php.rutokenweb.ru. /

Код серверной части соответственно сайта написан на phpPHP. Для других языков математика аналогична. Схему алгоритм будет тот же.

Схема аутентификации с использованием Рутокен -WEB и сам сайт с исходниками партнеры брали за базовый вариант и дорабатывали свои решения на ее основе. Поэтому покажем процесс перехода на примере апдейта данного сайта.

 

Кратко о схеме, предложенной для аутентификации с Рутокен-web:

1. Зарегистрированный Web:

  1. Зарегистрированный на сайте клиент генерирует ключевую пару

...

  1. и сохраняет

...

  1. ее на сайте.

...

  1. При

...

  1. авторизации на сайте запрашиваются случайные данные для подписи.

...

  1. Они сохраняются на сервере

...

  1. и отправляются клиенту.

...

  1. Клиент получает данные, генерирует "соль", которая добавляется к данным

...

  1. . Результат подписывается с использованием сгенерированной в п. 1

...

  1. ключевой пары и вместе с "солью" отправляется на сервер для проверки.

...

  1. Сервер производит

...

  1. такую же процедуру с "солью" и сохраненными в п. 2 данными

...

  1. . Проверяется корректность подписи

...

  1. и принимается решение об успешности процесса аутентификации.

Соответственно нет заморочек с сертификатами, В этой схеме нет сложностей, связанных с сертификатами. В процессе ее реализации происходит только подпись данных и проверка корректности . Подпись производим по самой подписи.

Формирование электронной подписи производится по алгоритму ГОСТ Р 34.10-2001.

 

Схема работ по замене плагина.

...

Схема миграции с плагина Рутокен Web на Рутокен Плагин

  1. Установим Рутокен Плагин. Актуальная версия плагина доступна по ссылке:
    https://www.rutoken.ru/support/download/rutoken-plugin/
  2. Изменим загрузчик плагина. Для этого заменим на страницах или в вашей системе сборки скрипт rutokenwebскрипт rutokenweb.js на rutoken.js.:
    https://www.npmjs.com/package/rutoken
    Оба скрипта используют Promise.
  3. Если у вас уже был установлен и работал (в ie) работает rutokenweb.js, то зависимость уже есть, но проверить стоит. Если нет, установите зависимости должны быть. 
  4. Если rutokenweb.js не работает, то следует установить скрипт для работы с промисами, например этот . Для этого перейдите по ссылке:
    https://github.com/jakearchibald/es6-promise
  5. Используем Используйте модуль проверки совместимости плагина и браузера браузера:
    https://www.npmjs.com/package/rutoken-browser-check. Опционально, позволяет удобно
    Он дает возможность локализовать проблемы при инициализации.
    У данного скрипта есть зависимость- :
    https://www.npmjs.com/package/bowser
  6. Меняем логику инициализации работы с плагином. Вынес в отдельный файл boot.js, чтобы не копипастить. Подключим его на всех страницах, где нужно, уберем лишние переменные, удалим функцию token_refresh из подписки на onload страницы.
    В общем случае, плагин получается в финальном resolve цепочки промисов, где мы передаем его конструктору нашей обертки вместе с методом получения пин-кода. Этот метод нужен, чтобы эмулировать отображение окна со списком логинов и обработать выбор конкретного id. Возвращает промис с id устройства и pin-кодом, введенным пользователем.
    Все ошибки инициализации прилетают в reject промиса. Ошибки от плагина прилетают другие, поэтому места, где они обрабатывались, так же нужно поправить.
  7. Используем обертку над плагином rtwToCrypto.js.
    Код обертки: https://github.com/blade-runner/rutokenweb-to-plugin 
    Мы подменяем методы рутокенвэб на нужные нам, таким образом сигнатуры сохраняются и ваш код работает, как и работал, но с новым плагином и всеми устройствами Рутокен.

Список методов, переопределенных оберткой:

...