Краткая инструкция о том, как настроить 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 необходимо:
- Определить разрядность используемой системы;
- Скачать с сайта https://www.rutoken.ru/support/download/pkcs/ необходимую версию библиотеки (для Debian deb-пакет для Fedora rpm-пакет 32-bit (x86) или 64-bit (x64) соответствующий разрядности вашей системы);
- Установить ее в систему с помощью пакетного менеджера:
Для 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). А все вышеперечисленное может быть просто полезно для общего понимания что, зачем и как (что нужно для работы Рутокен ЭЦП, зачем та или иная библиотека и как это все установить).