Найти в Дзене

How to ... Rutoken Lite в операционных системах GNU/Linux (Debian и Fedora)

Оглавление

Краткая инструкция о том, как настроить Rutoken Lite в операционных системах GNU/Linux на примере двух популярных дистрибутивах Debian bookworm и Fedora 39.

Определение названия модели USB-токена:

Для определения названия модели USB-токена подключите его к USB-порту компьютера, откройте Терминал и введите команду:

lsusb

В окне Терминала должно отобразится название модели USB-токена:

Например: Bus 001 Device 005: ID 0a89:0025 Aktiv Rutoken lite

ID: 0a89:0025 означает, что название подключенного USB-токена — Рутокен Lite.

ID: 0a89:0030 означает, что название подключенного USB-токена — Рутокен ЭЦП.

Установка дополнительного программного обеспечения:

Для дистрибутива Debian необходимо установить:

  • библиотеку libccid не ниже 1.4.2 (библиотека-драйвер, поддерживающая USB CCID устройства (в т.ч. Рутокен ЭЦП) через PC/SC);
  • пакет pcscd (обеспечение доступа к смарт-картам через PC/SC (фоновая служба));
  •  пакет libpcsclite1 (связующее ПО доступа к смарт-картам, использующее PC/SC (библиотека));
  • пакет pcsc-tools (необходим для работы утилиты pcsc_scan);
  • пакет opensc (набор библиотек и инструментов для доступа к ключевым носителям (смарт-картам и токенам), поддерживающим криптографические операции. Инструменты, входящие в состав пакета, несовместимы с токенами Аладдин JaCarta).

Для дистрибутива Fedora необходимо установить:

  • пакет pcsc-lite-ccid (библиотека-драйвер, поддерживающая USB CCID устройства (в т.ч. Рутокен ЭЦП) через PC/SC);
  • пакет pcsc-lite (обеспечение доступа к смарт-картам через PC/SC);
  • пакет pcsc-tools (необходим для работы утилиты pcsc_scan);
  • пакет opensc (набор библиотек и инструментов для доступа к ключевым носителям (смарт-картам и токенам), поддерживающим криптографические операции. Инструменты, входящие в состав пакета, несовместимы с токенами Аладдин JaCarta).

Перед установкой необходимо проверить их наличие в системе:

Для Debian вводим:

dpkg -s libccid pcscd libpcsclite1 pcsc-tools opensc

или для более краткого вывода:

apt list libccid pcscd libpcsclite1 pcsc-tools opensc

Для Fedora вводим:

rpm -q pcsc-lite-ccid pcsc-lite pcsc-tools opensc

или

dnf list pcsc-lite-ccid pcsc-lite pcsc-tools opensc

Если пакетов и библиотек нет, то устанавливаем их:

Для Debian вводим:

sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc

Для Fedora вводим:

sudo dnf install pcsc-lite-ccid pcsc-lite pcsc-tools opensc

Проверка работы Rutoken ЭЦП в системе:

Подключите Rutoken к компьютеру и введите команду:

pcsc_scan

В последней строке должно отобразиться Aktiv Rutoken Lite или Aktiv Rutoken ECP (если Lite или ECP соответственно).

Установка библиотеки PKCS#11 (Кроссплатформенная библиотека rtPKCS11ECP, работающая с RSA и ГОСТ-алгоритмами, поддерживает модели Рутокен ЭЦП 2.0, Рутокен ЭЦП 3.0)

Для того чтобы установить библиотеку PKCS#11 необходимо:

  1. Определить разрядность используемой системы;
  2. Скачать с сайта https://www.rutoken.ru/support/download/pkcs/ необходимую версию библиотеки (для Debian deb-пакет для Fedora rpm-пакет 32-bit (x86) или 64-bit (x64) соответствующий разрядности вашей системы);
  3. Установить ее в систему с помощью пакетного менеджера:

Для Debian:

sudo dpkg -i librtpkcs11ecp_2.13.0.0-1_amd64.deb

Для Fedora:

sudo rpm -ivh librtpkcs11ecp-2.13.0.0-1.x86_64.rpm

* Имена пакетов могут отличаться в зависимости от версии и разрядности библиотеки.

Для того чтобы пользоваться этой библиотекой (librtpkcs11ecp.so) необходимо знать путь к ней:

В Терминале вводим:

find /usr/*(lib|lib64) -name librtpkcs11ecp.so

Вывод команды find примерно такой:

/usr/lib64/librtpkcs11ecp.so - это и есть полный путь к нашей библиотеке.

Как пользоваться:

Например:

Чтобы изменить PIN-код Рутокен Lite введите в Терминале команду, подставив нужные значения:

pkcs11-tool --module путь до библиотеки --login --pin текущий PIN-код устройства --change-pin --new-pin новый PIN-код устройства

В результате PIN-код устройства Рутокен Lite будет изменен.

Чтобы проверить наличие сертификатов и ключевых пар на Рутокен ЭЦП введите команду:

pkcs11-tool --module путь до библиотеки -O

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

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

pkcs11-tool --module путь до библиотеки -r -y cert --id ID сертификата | openssl x509 -inform der -text

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

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

pkcs11-tool --module путь до библиотеки -r -y cert --id ID сертификата > ./имя файла

Проблемы:

Наличие пакета OpenCT

Бывают ситуации, когда могут возникать проблемы при совместной работе libccid и OpenCT с демоном pcscd. И тот, и другой «драйвер» поддерживает работу с электронными идентификаторами Рутокен ЭЦП, однако при одновременной работе они могут блокировать друг друга. При этом pcsc_scan не сможет обнаружить устройство. В такой ситуации устройство не будет определяться в прикладных программах.

OpenCT является устаревшим драйвером смарт-карт и для корректной работы рекомендуется его удалить.

Вывод:

Для нормальной работы Рутокен ЭЦП необходимо установить еще и криптопровайдер (Криптопровайдер (Cryptography Service Provider, CSP) — это независимый модуль, позволяющий осуществлять криптографические операции (шифрование, электронную подпись, и т.д.) в операционной системе). Проще говоря, это посредник между операционной системой и программой, который взаимодействует с пользователем. Большинство программ для шифрования или электронной подписи не будут работать без установленного криптопровайдера. Но его установка в GNU/Linux слишком запутанна. Поэтому я бы рекомендовал не заниматься всем этим вручную, а воспользоваться каким-нибудь сервисом, который автоматически тестирует вашу систему и устанавливает все необходимое для работы с Рутокен ЭЦП, в том числе установит и настроит криптопровайдер (например help.kontur.ru). А все вышеперечисленное может быть просто полезно для общего понимания что, зачем и как (что нужно для работы Рутокен ЭЦП, зачем та или иная библиотека и как это все установить).