Rutoken: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 1: Строка 1:
{{Stub}}
{{Stub}}
Рутокен ЭЦП 2.0 — токен с аппаратной реализацией российского стандарта электронной подписи, шифрования и хеширования. Обеспечивает безопасное хранение ключей электронной подписи во встроенной защищенной памяти без возможности их экспорта.
Rutoken S — основной ключевой носитель для российских СКЗИ (КриптоПро, ViPNet).
= Настройка аутентификации =
С помощью следующих инструкций можно настроить аутентификацию в системе с помощью сертификата и ключа на Рутокен ЭЦП:
* [[Аутентификация по ключу]]
* [[alterator-auth-token]]
Также с его помощью может быть реализована [[двухфакторная аутентификация]].
= Электронная подпись =
Для Рутокен ЭЦП 2.0 электронную подпись можно проверить несколькими способами:
*
*
= Значения PIN-кодов на Рутокен по умолчанию =
У Рутокен:
''PIN-коды Рутокен, установленные по умолчанию — Пользователь: 12345678; Администратор: 87654321''
У Рутокен Web:
PIN на скретч-карте.


= Rutoken S =
= Rutoken S =
Строка 14: Строка 37:
== ssh ==
== ssh ==
ssh-add -s opensc-pkcs11.so
ssh-add -s opensc-pkcs11.so
== Настройка аутентификации ==
С помощью следующих инструкций можно настроить аутентификацию в системе с помощью сертификата и ключа на Рутокен ЭЦП:
* [[Аутентификация по ключу]]
* [[alterator-auth-token]]


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


== Администрирование ==
Удобная веб-утилита для администрирования от Рутокен: https://ra.rutoken.ru/ (требуется [[#Рутокен_Плагин| Рутокен Плагин]]).
=== PIN ===
У Rutoken ЭЦП:
''PIN-коды Рутокен, установленные по умолчанию — Пользователь: 12345678; Администратор: 87654321''


У Rutoken Web:
= Рутокен ЭЦП 2.0 =
PIN на скретч-карте.
 
=== Пакеты для работы с Рутокен ЭЦП 2.0===
Для работы должна быть установлена бибдиотека сlibrtpkcs11ecp:
<source lang="text" highlight="1"># apt-get install сlibrtpkcs11ecp</source>
{{Note|При работе с Rutoken ЭЦП 2.0 необходимо указывать путь до библиотеки сlibrtpkcs11ecp:
<source lang="text" highlight="1">--module /usr/lib64/pkcs11/librtpkcs11ecp.so</source>}}
=== Проверка работы Рутокен ЭЦП в системе ===
Проверяем работу токена, он должен быть виден в списке:
<source lang="text" highlight="1">$ 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)
</source>
 
=== Проверка наличия сертификатов и ключевых пар ===
 
Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):
<source lang="text" highlight="1">$ 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
</source>
В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на Рутокене.


== Установка ==
Чтобы открыть сертификат или ключевую пару скопируйте ID необходимого объекта и введите команду:
От имени root:
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239  | openssl x509 -inform der -text</source>
<pre>
В результате в окне Терминала отобразится полная информация об указанном объекте.
groupadd -r _rtweb
cat >> /etc/udev/rules.d/95-rutokenweb_hid.rules << @@@
SUBSYSTEM=="usb*", ACTION=="add", KERNEL=="hiddev*", ATTRS{idVendor}=="0a89", ATTRS{idProduct}=="0040", GROUP="_rtweb", MODE="0660"
@@@
</pre>
После этого нужно добавить пользователей, у которых должен быть доступ к устройствам Rutoken Web в группу _rtweb
<pre>
gpasswd -a имя_пользовалеля _rtweb
</pre>
= Рутокен Плагин =


'''[http://www.rutoken.ru/products/all/rutoken-plugin/ Рутокен Плагин]''' представляет собой решение для электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов.  
Чтобы скопировать сертификат в файл введите команду:
<source lang="text" highlight="1">$ pkcs11-tool --module /usr/lib64/pkcs11/librtpkcs11ecp.so -r -y cert --id 506c7567696e3132303232303139313630363239 > ./имя_файла</source>


{{Attention|Плагин работает только с браузерами, поддерживающими NPAPI, например, Mozilla Firefox GOST ({{pkg|firefox-gost}}) или Mozilla Firefox ESR ({{pkg|firefox-esr}}).}}
===Изменение PIN-кода===


1. [http://www.rutoken.ru/support/download/rutoken-plugin/ Скачайте с сайта Рутокен]
Для изменения PIN-кода введите команду:
плагин для браузера.
<source lang="text" highlight="1">$ 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
</source>
где
pin — текущий PIN-код устройства;
new-pin — новый PIN-код устройства.


2. Создайте каталог у пользователя {{path|~/.mozilla/plugins}}:
== Центр регистрации Рутокен ==
mkdir -p ~/.mozilla/plugins


3. Распакуйте файлы {{path|npCryptoPlugin.so}} и {{path|librtpkcs11ecp.so}} в этот каталог.
Для  генерации ключей, формирования запроса на сертификат и записи сертификата на Рутокен ЭЦП можно воспользоваться ПО «Рутокен плагин»,
(работает через библиотеку PKCS#11 и совместим с плагином Госуслуг) и ПО «Центр регистрации Рутокен» [https://ra.rutoken.ru ra.rutoken.ru].


Для общесистемной установки скопируйте файлы в каталог {{path|/usr/lib64/browser-plugins/}} (на 64-битных системах) или в {{path|/usr/lib/browser-plugins/}} (на 32-битных системах).
Веб-сервис управления хранилищем сертификатов и ключей «Центр регистрации Рутокен» позволяет:
* генерировать ключи;
* создавать запросы на сертификаты;
* импортировать сертификаты и связывать их с ключами;
* подписывать документы электронной подписью;
* менять PIN-код на устройстве.


4. Перезапустите браузер
=== Установка «Рутокен плагин» ===
'''[http://www.rutoken.ru/products/all/rutoken-plugin/ Рутокен Плагин]''' представляет собой решение для электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов.
Плагин необходим для связи USB-устройств c браузером, он позволяет опознавать и работать с ними. Для того чтобы установить плагин, необходимо загрузить соответствующий установочный файл и запустить его


5. В меню → Дополнения → Плагины выберите «Всегда включать» для плагина «Crypto Plugin»:
{{Attention|Плагин работает только с браузерами, поддерживающими NPAPI, например, Mozilla Firefox GOST ({{pkg|firefox-gost}}) или Mozilla Firefox ESR ({{pkg|firefox-esr}}).}}


[[Изображение:Rutoken-plugin-enable.png]]
Чтобы установить «Рутокен плагин» необходимо:
#Загрузить «Рутокен плагин» можно со страницы [http://www.rutoken.ru/products/all/rutoken-plugin/ по ссылке] (выбрать пакет формата «rpm»):
#:[[Изображение:Rutoken-plugin-download.png|Загрузка «Рутокен плагин»|600px]]
#Установить «Рутокен плагин», выполнив из папки с загруженным пакетом команду (под правами root):
#:<source lang="text" highlight="1"># apt-get install libnpRutokenPlugin*</source>
#Перезапустить браузер.
#Убедиться, что плагин установлен и включен. Сделать это можно на странице {{path|about:addons}} (или {{path|about:plugins}} в более ранних версиях Mozilla Firefox):
#:[[Изображение:Rutoken-plugin-on.png|Рутокен плагин|600px]]
Проверить работу плагина можно на площадке: http://demobank.rutoken.ru/


Проверить работу плагина можно на площадке:
=== Генерация пары ключей и формирование запроса на сертификат ===


<big>http://demobank.rutoken.ru/</big>
Для генерации пары ключей и формированию запроса на сертификат с помощью ПО «Центр регистрации Рутокен» следует:
#Зайти на сайт «Центр регистрации Рутокен» https://ra.rutoken.ru:
#:[[Изображение:Ra-rutoken-devices.png|Центр регистрации Рутокен]]
#Подключить Рутокен ЭЦП к компьютеру, выбрать токен, ввести PIN-код пользователя:
#:[[Изображение:Ra-rutoken-pin.png|Запрос PIN-кода]]
#Нажать кнопку «Создать ключ»:
#:[[Изображение:Ra-rutoken.png|Интерфейс «Центра регистрации Рутокен»]]
#Ввести идентификатор и маркер ключа (опционально), выбрать тип ключа и алгоритм шифрования, затем нажать кнопку «Сгенерировать ключи»:
#:[[Изображение:Rutoken-key-add.png|Создание ключей]]
#:Появится сообщение, о том, что ключи созданы:
#:[[Изображение:Rutoken-key.png|Ключи созданы]]
#Нажать кнопку «Создать заявку на сертификат».
#На странице создания запроса заполнить поля запроса, выбрать назначение сертификата, нажать кнопку «Создать запрос» (показан пример заполнения полей для физ.лица):
#:[[Изображение:Rutoken-cert-new.png|Создание запроса на сертификат]]
#:В раскрывающемся списке можно выбрать шаблон запроса. Шаблоны содержат разное количество полей в блоке информации о пользователе и разные расширения сертификата.
#Откроется окно содержащее текст запроса. Можно сохранить его на диске, нажав кнопку «Сохранить на диске», или скопировать в буфер обмена, нажав кнопку «Скопировать в буфер обмена»:
#:[[Изображение:Rutoken-cert-request.png|Запрос создан и подписан]]
#Отправить запрос в удостоверяющий центр.
#После получения сертификата, на странице «Центр регистрации Рутокен» https://ra.rutoken.ru нажать кнопку «Добавить к ключам сертификат» или выбрать пару ключей и нажать кнопку «Добавить сертификат»
#:[[Изображение:Rutoken-cert-add.png|Добавление сертификата]]
#В открывшемся окне загрузить файл с сертификатом, нажав кнопку «Выбрать», или вставить сертификат из буфера обмена, нажав кнопку «Вставить из буфера обмена», и нажать кнопку «Связать»:
#:[[Изображение:Rutoken-cert-add2.png|Добавление сертификата пользователя]]
#:[[Изображение:Rutoken-cert-add22.png|Добавление сертификата пользователя]]
#Сертификат отобразится в списке:
#:[[Изображение:Rutoken-cert-add4.png|Контейнер с сертификатом]]
{{Note|Данные сертификата должны быть в формате PEM или Base64. Если вы получили сертификат в другом формате, его можно конвертировать в нужный формат, выполнив команду:
$ openssl x509 -inform der -in cert.cer -out cert.pem
}}


== Ссылки ==
== Ссылки ==

Версия от 15:13, 22 февраля 2019

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


Ссылки