Rutoken

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Рутокен ЭЦП 2.0 — токен с аппаратной реализацией российского стандарта электронной подписи, шифрования и хеширования. Обеспечивает безопасное хранение ключей электронной подписи во встроенной защищенной памяти без возможности их экспорта.

Rutoken S — основной ключевой носитель для российских СКЗИ (КриптоПро, ViPNet).

Настройка аутентификации

С помощью следующих инструкций можно настроить аутентификацию в системе с помощью сертификата и ключа на Рутокен ЭЦП:

Также с его помощью может быть реализована двухфакторная аутентификация.

Электронная подпись

Для Рутокен ЭЦП 2.0 электронную подпись можно проверить несколькими способами:

Значения PIN-кодов на Рутокен по умолчанию

У Рутокен: PIN-коды Рутокен, установленные по умолчанию — Пользователь: 12345678; Администратор: 87654321

У Рутокен Web: PIN на скретч-карте.


Rutoken S

Внимание! Rutoken S — не является токеном — нет аппаратной поддержки алгоритмов, а для использования RSA в opensc < 0.12 были реализованы выгрузка приватного (!!!) ключа из Rutoken S и работа с этим ключом через openssl.


https://github.com/OpenSC/OpenSC/wiki/Aktiv-Co.-Rutoken-S

Пакеты

pcsc-lite-rutokens opensc

Rutoken Web/ЭЦП

https://github.com/OpenSC/OpenSC/wiki/Aktiv-Co.-Rutoken-ECP

ssh

ssh-add -s opensc-pkcs11.so


Рутокен ЭЦП 2.0

Пакеты для работы с Рутокен ЭЦП 2.0

Для работы должна быть установлена библиотека сlibrtpkcs11ecp:

# apt-get install сlibrtpkcs11ecp
Примечание: При работе с Rutoken ЭЦП 2.0 необходимо указывать путь до библиотеки сlibrtpkcs11ecp:
--module /usr/lib64/pkcs11/librtpkcs11ecp.so


Проверка работы Рутокен ЭЦП в системе

Проверяем работу токена, он должен быть виден в списке:

$ pkcs11-tool -L --module /usr/lib64/pkcs11/librtpkcs11ecp.so
Available slots:
Slot 0 (0x0): Aktiv Rutoken ECP 00 00
  token label        : Rutoken ECP <no label>
  token manufacturer : Aktiv Co.
  token model        : Rutoken ECP
  token flags        : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed
  hardware version   : 20.5
  firmware version   : 23.2
  serial num         : 373b83cf
  pin min/max        : 6/32
Slot 1 (0x1): 
  (empty)
Slot 2 (0x2): 
  (empty)

Проверка наличия сертификатов и ключевых пар

Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):

$ pkcs11-tool -Ol --module /usr/lib64/pkcs11/librtpkcs11ecp.so
Using slot 0 with a present token (0x0)
Logging in to "Rutoken ECP <no label>".
WARNING: user PIN to be changed
Please enter User PIN: 
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022301
  VALUE:      84f16c48511700660fa03ce9d32612ebdf5a69b87372cf3b07f344e4819409f0
              aeacbd4e922869bed61ef08e20d15fe956ac81c27e197c8dfcc4b5be2763b47d
  label:      
  ID:         506c7567696e3132303232303139313630363239
  Usage:      verify
Private Key Object; GOSTR3410 
  PARAMS OID: 06072a850302022301
  label:      Иванова Ольга Петровна
  ID:         506c7567696e3132303232303139313630363239
  Usage:      sign, derive
Certificate Object; type = X.509 cert
  label:      Rutoken Plugin
  subject:    DN: C=RU, ST=\xD0\x9C\xD0\xBE\xD1\x81\xD0\xBA\xD0\xB2\xD0\xB0, L=\xD1\x80-\xD0\xBD \xD0\x9F\xD1\x80\xD0\xB8\xD0\xBE\xD0\xB7\xD0\xB5\xD1\x80\xD1\x81\xD0\xBA\xD0\xB8\xD0\xB9, \xD0\xB3. \xD0\x9B\xD1\x83\xD0\xB3\xD0\xB0, CN=\xD0\x98\xD0\xB2\xD0\xB0\xD0\xBD\xD0\xBE\xD0\xB2\xD0\xB0 \xD0\x9E\xD0\xBB\xD1\x8C\xD0\xB3\xD0\xB0 \xD0\x9F\xD0\xB5\xD1\x82\xD1\x80\xD0\xBE\xD0\xB2\xD0\xBD\xD0\xB0/1.2.643.3.131.1.1=5001007322229/street=\xD1\x83\xD0\xBB. \xD0\x93\xD0\xB0\xD0\xB3\xD0\xB0\xD1\x80\xD0\xB8\xD0\xBD\xD0\xB0, \xD0\xB4. 5/emailAddress=ivanova@mail.ru
  ID:         506c7567696e3132303232303139313630363239

В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене.

Чтобы открыть сертификат или ключевую пару скопируйте ID необходимого объекта и введите команду:

$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239  | openssl x509 -inform der -text

В результате в окне Терминала отобразится полная информация об указанном объекте.

Чтобы скопировать сертификат в файл введите команду:

$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239 > ./имя_файла

Изменение PIN-кода

Для изменения PIN-кода введите команду:

$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so --login --pin 12345678 --change-pin --new-pin 2780712
Using slot 0 with a present token (0x0)
PIN successfully changed

где pin — текущий PIN-код устройства; new-pin — новый PIN-код устройства.

Центр регистрации Рутокен

Для генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин», (работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» ra.rutoken.ru.

Веб-сервис управления хранилищем сертификатов и ключей «Центр регистрации Рутокен» позволяет:

  • генерировать ключи;
  • создавать запросы на сертификаты;
  • импортировать сертификаты и связывать их с ключами;
  • подписывать документы электронной подписью;
  • менять PIN-код на устройстве.

Установка «Рутокен плагин»

Рутокен Плагин представляет собой решение для электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов. Плагин необходим для связи USB-устройств c браузером, он позволяет опознавать и работать с ними. Для того чтобы установить плагин, необходимо загрузить соответствующий установочный файл и запустить его

Внимание! Плагин работает только с браузерами, поддерживающими NPAPI, например, Mozilla Firefox GOST (firefox-gost) или Mozilla Firefox ESR (firefox-esr).


Чтобы установить «Рутокен плагин» необходимо:

  1. Загрузить «Рутокен плагин» можно со страницы по ссылке (выбрать пакет формата «rpm»):
    Загрузка «Рутокен плагин»
  2. Установить «Рутокен плагин», выполнив из папки с загруженным пакетом команду (под правами root):
    # apt-get install libnpRutokenPlugin*
    
  3. Перезапустить браузер.
  4. Убедиться, что плагин установлен и включен. Сделать это можно на странице about:addons (или about:plugins в более ранних версиях Mozilla Firefox):
    Рутокен плагин

Проверить работу плагина можно на площадке: http://demobank.rutoken.ru/

Генерация пары ключей и формирование запроса на сертификат

Для генерации пары ключей и формированию запроса на сертификат с помощью ПО «Центр регистрации Рутокен» следует:

  1. Зайти на сайт «Центр регистрации Рутокен» https://ra.rutoken.ru:
    Центр регистрации Рутокен
  2. Подключить Рутокен ЭЦП к компьютеру, выбрать токен, ввести PIN-код пользователя:
    Запрос PIN-кода
  3. Нажать кнопку «Создать ключ»:
    Интерфейс «Центра регистрации Рутокен»
  4. Ввести идентификатор и маркер ключа (опционально), выбрать тип ключа и алгоритм шифрования, затем нажать кнопку «Сгенерировать ключи»:
    Создание ключей
    Появится сообщение, о том, что ключи созданы:
    Ключи созданы
  5. Нажать кнопку «Создать заявку на сертификат».
  6. На странице создания запроса заполнить поля запроса, выбрать назначение сертификата, нажать кнопку «Создать запрос» (показан пример заполнения полей для физ.лица):
    Создание запроса на сертификат
    В раскрывающемся списке можно выбрать шаблон запроса. Шаблоны содержат разное количество полей в блоке информации о пользователе и разные расширения сертификата.
  7. Откроется окно содержащее текст запроса. Можно сохранить его на диске, нажав кнопку «Сохранить на диске», или скопировать в буфер обмена, нажав кнопку «Скопировать в буфер обмена»:
    Запрос создан и подписан
  8. Отправить запрос в удостоверяющий центр.
  9. После получения сертификата, на странице «Центр регистрации Рутокен» https://ra.rutoken.ru нажать кнопку «Добавить к ключам сертификат» или выбрать пару ключей и нажать кнопку «Добавить сертификат»
    Добавление сертификата
  10. В открывшемся окне загрузить файл с сертификатом, нажав кнопку «Выбрать», или вставить сертификат из буфера обмена, нажав кнопку «Вставить из буфера обмена», и нажать кнопку «Связать»:
    Добавление сертификата пользователя
    Добавление сертификата пользователя
  11. Сертификат отобразится в списке:
    Контейнер с сертификатом
Примечание: Данные сертификата должны быть в формате PEM или Base64. Если вы получили сертификат в другом формате, его можно конвертировать в нужный формат, выполнив команду:
$ openssl x509 -inform der -in cert.cer -out cert.pem


Ссылки