См. также: Запуск службы pcscd с ненулевыми мандатными атрибутами
Поддерживаемые модели токенов Рутокен
Рутокен S– модель для хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК.
Рутокен Lite – упрощенная модель для хранения контейнеров ГОСТ-криптопровайдеров: КриптоПро, VipNet и других. Сертифицированы во ФСТЭК. Поддерживается начиная с Astra Linux Special Edition x.7 с установленным обновлением БЮЛЛЕТЕНЬ № 2021-1126SE17 (оперативное обновление 1.7.1). Не имеет встроенного криптопровайдера и не поддерживает стандарт PKCS #11. Поддерживает стандарт PKCS #15 используя интерфейс CCID и не требует установки дополнительных драйверов.
Рутокен ЭЦП 2.0 – высокопроизводительная модель со встроенным криптопровайдером. Формирует квалифицированную электронную подпись (КЭП) при помощи сертифицированной реализации российских криптографических алгоритмов непосредственно в самом чипе устройстве, что повышает безопасность использования ЭП — ключ подписи никогда не покидает токен, его невозможно использовать или скопировать без ведома владельца. Работает с алгоритмами ГОСТ 2012. Сертифицированы в ФСБ и ФСТЭК. Используется в системе ЕГАИС с 2016 года.
Рутокен ЭЦП PKI и Рутокен ЭЦП 3.0
См. также: https:/dev.rutoken.ru/pages/viewpage.action?pageId=66814078
Проверка электронной подписи в Astra Linux
С помощью токенов, кроме двухфакторной аутентификации, можно проверять подписи документов:
Для Рутокен Lite/S подпись документа можно проверить с помощью:
- КриптоАРМ ГОСТ.
- Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP».
Для Рутокен ЭЦП 2.0 подпись документа можно проверить с помощью:
- КриптоАРМ ГОСТ.
- Тестовый центр регистрации Рутокен + Рутокен Плагин.
- OpenSSL + Рутокен engine.
- Утилиту csptestf из состава КриптоПро CSP. Подробно в разделе на Подпись средствами «КриптоПро CSP»
Токены Рутокен для платформ Байкал и Эльбрус
Токены Рутокен Lite и Рутокен ЭЦП одинаково хорошо работают на всех платформах, имеющих USB-интерфейс. Для подписи с использованием Рутокен можно использовать:
- Тестовый центр регистрации Рутокен + Рутокен Плагин.
- Утилита из КриптоПро CSP 5.0.
- КриптоАРМ ГОСТ.
- Для платформы Байкал М1 под управлением Astra Linux можно использовать предлагаемый разработчиками КриптоПРО пакет cryptoarm-gost-v2.5.12.linux-aarch64.deb (доступен по ссылке: https://github.com/CryptoARM/CryptoARMGOST/releases/tag/v2.5.12).
Рутокен S не поддерживается на платформе Эльбрус.
Установка
Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:
- Программное обеспечение из репозиториев Astra Linux:
- пакет libccid;
- пакет pcscd;
- пакет libpcsclite1;
- пакет pcsc-tools;
- пакет opensc;
- пакет libengine-pkcs11-openssl;
- Программное обеспечение, предоставляемое разработчиком оборудования:
- пакет librtpkcs11ecp (аналог библиотеки libengine-pkcs11-openssl1.1 входящей в состав Astra Linux).
- пакет librtpkcs11ecp (аналог библиотеки libengine-pkcs11-openssl1.1 входящей в состав Astra Linux).
Установка пакетов может быть выполнена с помощью Графический менеджер пакетов synaptic или из командной строки командой:
sudo apt install libccid pcscd libpcsclite1 pcsc-tools opensc libengine-pkcs11-openssl
sudo apt install ./librtpkcs11ecp_*_amd64.deb
При установке пакета устанавливается библиотека librtpkcs11ecp.so В разных обновлениях эта библиотека может размещаться в различных каталогах. Для того, чтобы определить путь до библиотеки можно использовать команду:
Проверка работы токенов Рутокен в системе
Для проверки работы токена необходимо подключить токен к компьютеру.
Инструмент pcsc_scan
Инструмент pscsc_scan входит в пакет pcsc-tools. Команда для вывода информации о подключенном токене:
pcsc_scan
Пример вывода команды:
Using reader plug'n play mechanism Scanning present readers... 0: Aktiv Rutoken lite 00 00 Fri Mar 31 13:29:35 2023 Reader 0: Aktiv Rutoken lite 00 00 Event number: 0 Card state: Card inserted, ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2 + TS = 3B --> Direct Convention + T0 = 8B, Y(1): 1000, K: 11 (historical bytes) TD(1) = 01 --> Y(i+1) = 0000, Protocol T = 1 ----- + Historical bytes: 52 75 74 6F 6B 65 6E 6C 69 74 65 Category indicator byte: 52 (proprietary format) + TCK = C2 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 8B 01 52 75 74 6F 6B 65 6E 6C 69 74 65 C2
Команда pkcs11-tool
Команда для проверки доступности модуля:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
vailable slots: Slot 0 (0x0): Aktiv Rutoken lite 00 00 token label : Rutoken token manufacturer : Aktiv Co. token model : Rutoken lite token flags : login required, rng, SO PIN to be changed, token initialized, PIN initialized, user PIN to be changed hardware version : 65.4 firmware version : 30.2 serial num : 419b79e8 pin min/max : 6/32
Графический инструмент XCA
См. XCA: графический интерфейс для работы с токенами
Настройка токенов для выполнения двухфакторной аутентификации
См. Двухфакторная аутентификация: libpam-csp и csp-monitor.
Работа с токенами Рутокен ЭЦП
Инициализация токена
Для очистки токенов можно использовать команду pkcs11-tool:
- --init-token — команда инициализации;
- --module — указание интерфейсного модуля токена. Не используется для Рутокен S и Рутокен Lite, обязательно для Рутокен ЭЦП;
- --so-pin 87654321 — обязательный параметр — действующий PIN-код администратора (офицера безопасности, SO-PIN);
- --label — обязательный параметр — новая метка токена;
Изменение SO-PIN
Пример команды:
- --login и --login-type so — параметры входа в сессию администратора;
- --so-pin — действующий PIN-код администратора;
- --change-pin — команды смены PIN-кода;
- --new-pin — новый PIN-код.
Задание и изменение PIN-кода пользователя
На момент написания статьи заданный по умолчанию PIN-код пользователя был 12345678, PIN-код администратора - 87654321.
Команда для установки (переустановки) PIN-кода пользователя:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --so-pin 87654321 --init-pin --pin <PIN_код_пользователя>
Команда для изменения PIN-кода пользователя пользователем:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --login --pin <старый_PIN-код> --change-pin --new-pin <новый_PIN-код>
Using slot 0 with a present token (0x0) PIN successfully changed
Работа с сертификатами и ключевыми парами на устройствах Рутокен ЭЦП
Создание ключевой пары
Для генерации ключевой пары в терминале следует ввести команду:
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so --label "название_ключа" --keypairgen --key-
type
rsa:2048 -l --
id
45
Проверка наличия сертификатов и ключевых пар
Чтобы проверить наличие сертификатов и ключевых пар на токене введите команду:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O -l --pin <PIN_код_пользователя>
Using slot 0 with a present token (0x0) Public Key Object; RSA 2048 bits label: Test ID: 45 Usage: encrypt, verify, wrap Certificate Object, type = X.509 cert label: Test ID: 45
Идентификаторы ключей и объектов (ID) используются для выбора сертификатов при выполнении операция с .
Извлечение сертификата из токена
Команда для извлечения сертификата:
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so -r -y cert --
id
{
id
} >
название_вашего_сертификата.crt
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.
Создание самоподписанного сертификата
Для генерации ключевой пары в терминале следует ввести команду:
pkcs11-tool --module
/usr/lib/librtpkcs11ecp
.so --label "название_ключа" --keypairgen --key-
type
rsa:2048 -l --
id
45
Для создания самоподписанного сертификата в терминале следует ввести команду:
OpenSSL>
engine dynamic -pre SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so -pre ID:pkcs11 -pre LIST_ADD:1 -pre LOAD -pre MODULE_PATH:/usr/lib/librtpkcs11ecp.so
(dynamic) Dynamic engine loading support |
В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой librtpkcs11ecp.so. Для корректного функционирования, следует скачать и установить подписанный пакет libengine-pkcs11-openssl1.1 версии 0.4.4-4 для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6): libengine-pkcs11-openssl1.1_0.4.4-4_amd64.deb
OpenSSL> req -engine pkcs11 -new -key 0:45 -keyform engine -x509 -out название_вашего_сертификата.crt -outform DER
engine "pkcs11" set. Enter PKCS#11 token PIN for Rutoken ECP <no label>: You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:RU State or Province Name (full name) [Some-State]:Moscow Locality Name (eg, city) []: Organization Name (eg, company) [Internet Widgits Pty Ltd]: Rusbitech Organizational Unit Name (eg, section) []: Astra Common Name (e.g. server FQDN or YOUR name) []:Makhmadiev Shuhrat Email Address []:shuhrat@astralinux.ru OpenSSL> exit
1) Путь до библиотеки pkcs11.so
может отличаться
Для того чтобы определить путь до библиотеки pkcs11.so введите команду:
Загрузка сертификата на токен
Создав свой личный сертификат, его следует загрузить на токен:
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45
Проверка ключей и сертификатов в токене:
Using slot 0 with a present token (0x0)
Public Key Object; RSA 2048 bits
label: название_ключа
ID: 45
Usage: encrypt, verify, wrap
Certificate Object, type = X.509 cert
label: имя_сертификата_в_токене
ID: 45
Локальная аутентификация в Astra Linux по токену Рутокен
Установка дополнительных пакетов
Установить следующие пакеты:
- libccid
- pcscd
- libpam-p11
- libpam-pkcs11
- libp11-2
- libengine-pkcs11-openssl
- opensc
Для установки использовать Графический менеджер пакетов synaptic или команду в терминале:
sudo apt install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid
Конвертируем сертификат в текстовый формат
OpenSSL> x509 -
in
название_вашего_сертификата.crt-out cert.pem -inform DER -outform PEM
где cert.pem - сертификат из токена в текстовом формате.
Теперь необходимо прочитать с токена сертификат с нужным идентификатором и записать его в файл доверенных сертификатов. Добавляем сертификат в список доверенных сертификатов:
mkdir ~/.eid
chmod 0755 ~/.eid
cat
Ваш_сертификат_из_токена.pem >> ~/.eid
/authorized_certificates
chmod 0644 ~/.eid/authorized_certificates
mkdir /home/user/.eid
chmod 0755 /home/user/.eid
cat
Ваш_сертификат_из_токена.pem >> ~/.eid
/authorized_certificates
chmod 0644 /home/user/.eid/authorized_certificates
Важно помнить, что при регистрации нескольких токенов на одном компьютере, необходимо указывать пользователям различные id.
Настройка аутентификации
Пуск - утилиты - Терминал Fly
записываем в файл следующую информацию:
Name: Pam_p11 Default: yes Priority: 800 Auth-Type: Primary Auth: sufficient pam_p11_opensc.so /usr/lib/librtpkcs11ecp .so |
сохраняем файл, нажав Alt + X, а затем Y, после чего выполнить команду:
sudo
pam-auth-update
Проверка
Пуск - утилиты - Терминал Fly
Блокировка компьютера при извлечении токена
В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf
Пример файла конфигурации представлен ниже:
|
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
Очистка всех данных с Рутокена
Инициализация утилитой pkcs11-tool:
pkcs15-init --create-pkcs15 --so-pin "87654321" --so-puk ""
pkcs15-init --store-pin --label 'User PIN' --auth-id 02 --pin '12345678' --puk '' --so-pin '87654321' --finalize
Инструмент командной строки для администрирования токенов Рутокен rtadmin
Инструмент командной строки rtadmin предоставляется производителем оборудования и предназначен для автоматизации процедур форматирования и администрирования устройств Рутокен: смены метки токена, изменения PIN-кодов и их параметров, управления разделами Flash-памяти. При работе с инструментом рекомендуется не подключать более одного устройства. Поддерживаемые модели токенов:
- Рутокен Lite
- Рутокен Lite SC
- Рутокен ЭЦП
- Рутокен ЭЦП 2.0
- Рутокен ЭЦП SC
- Рутокен ЭЦП PKI
- Рутокен ЭЦП Flash
- Рутокен ЭЦП 2.0 Flash/touch
- Рутокен PINPad
Инструмент (оформлен не как пакет Debian, а как отдельный исполняемый файл) доступен по ссылке: https://dev.rutoken.ru/pages/viewpage.action?pageId=7995615
Примеры использования
Отформатировать один токен с параметрами по умолчанию (для поточного выполнения убрать флаг -q):
./rtadmin -f -q
Отформатировать один токен, задав имя токена
RutokenAstra
, PIN-код пользователя123456789
и PIN-код администратора987654321:
./rtadmin -f -z /usr/lib/librtpkcs11ecp.so -L RutokenAstra -u 123456789 -a 987654321 -q
Параметры
Инструмент поддерживает следующие параметры:
1 | Форматирование токена | -f | - |
2 | Текущий PIN-код администратора | -o [PIN-код (≤ 32)] | Значение по умолчанию 87654321. |
3 | Текущий PIN-код пользователя | -с [PIN-код (≤ 32)] | Значение по умолчанию 12345678. |
4 | Устанавливаемый PIN-код администратора | -a [PIN-код (≤ 32)] | Значение по умолчанию 87654321. |
5 | Устанавливаемый PIN-код пользователя | -u [PIN-код (≤ 32)] | Значение по умолчанию 12345678. |
6 | Устанавливаемый PIN2-код (для Рутокен PINPad. Устанавливается на экране устройства) | -t | - |
7 | Генерация PIN-кода администратора (используется при форматировании) | -G <длина PIN-кода (8-32)> | - |
8 | Генерация PIN-кода пользователя (используется при форматировании) | -g <длина PIN-кода (8-32)> | - |
9 | Загрузка значений пар PIN-кодов из файла | -b <имя файла> | - |
10 | Политика смены PIN-кода пользователя | -p <код>:
| 2 |
11 | Минимальная длина PIN-кода администратора | -M <длина PIN-кода>:
| 6 |
12 | Минимальная длина PIN-кода пользователя | -m <длина PIN-кода>:
| 6 |
13 | Максимальное количество попыток ввода PIN-кода администратора | -R <число попыток (3-10)> | 10 |
14 | Максимальное количество попыток ввода PIN-кода пользователя | -r <число попыток (1-10)> | 10 |
15 | Метка токена в кодировке Windows-1251 | -L <метка токена> | - |
16 | Метка токена в кодировке UTF-8 | -D <метка токена> | - |
17 | Конвертация в UTF-8 (флаг для параметров, связанных с PIN-кодами) | -U | По умолчанию PIN-коды не конвертируются в UTF-8 |
18 | Ограничение количества выполняемых итераций до одной | -q | - |
19 | Используемая библиотека PKCS#11 | -z <путь к библиотеке> | librtPKCS11ecp.so |
20 | Путь к конфигурационному файлу | -n <путь к файлу> | - |
21 | Протоколирование | -l <путь к файлу журнала> | Путь: каталог, в котором находится исполняемый файл |
ПО для Рутокен Web Плагин
Рутокен Плагин (https://www.rutoken.ru/products/all/rutoken-plugin/) — компонент для любых браузеров и операционных систем для прямой работы с криптографией на устройстве.
Не требует административных прав при установке.
Дополнительные источники информации
При возникновении вопросов, ответы на которые не удалось найти в настоящей инструкции, рекомендуем обратиться к следующим дополнительным источникам информации:
- web-сайт производителя оборудования: https://rutoken.ru. Сайт содержит большой объем справочной информации об устройствах Рутокен;
- https://dev.rutoken.ru — портал разработчиков. Содержит техническую информацию об устройствах Рутокен и руководства по их интеграции;
- База знаний https://kb.rutoken.ru/display/kb. Содержит инструкции по решению большинства ошибок, полезные статьи и ответы на часто задаваемые вопросы. Доступен поиск по ключевым словам.
- https://forum.rutoken.ru — форум ответов на вопросы пользователей. Здесь можно задать вопрос разработчикам и сотрудникам службы технической поддержки Рутокен;
- Рутокен и Госуслуги без использования КриптоПро: https://dev.rutoken.ru/pages/viewpage.action?pageId=78479384;
- Служба технической поддержки Рутокен: https://www.rutoken.ru/support/feedback;
- Сервис диагностики: https://help.rutoken.ru;
- e-mail: hotline@rutoken.ru
- тел.: +7 495 925-77-90