Аладдин RD JaCarta в AstraLinux
USB-токены и смарт-карты JaCarta, работающие с ОС Astra Linux Special Edition и Astra Linux Common Edition
JaCarta PKI - сертифицированные USB-токены и смарт-карты с аппаратной реализацией зарубежных криптоалгоритмов, предназначенные для работы с инфраструктурой открытых ключей (PKI).
JaCarta-2 ГОСТ - USB-токены и смарт-карты, предназначенные для использования в качестве сертифицированного средства ЭП (усиленной квалифицированной подписи — УКЭП) и полноценного СКЗИ в системах электронного документооборота (ЭДО), дистанционного банковского обслуживания (ДБО) и др. для обеспечения юридической значимости и неотказуемости действий пользователей, а также для обеспечения целостности и конфиденциальности передаваемых данных.
JaCarta SF/ГОСТ – продукт предназначен для безопасного хранения и транспортировки информации ограниченного доступа (ДСП, гостайна) и состоит из:
аппаратного средства, выполненного в форм-факторе USB-токена;
ПО для ввода в эксплуатацию, управления и администрирования.
Установка
Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:
- библиотека libccid, libjcPKCS11-2;
- пакеты libpcsclite1 и pcscd;
- opensc;
pcsc-tools (необязательно).
Для установки в терминале введите команду:
sudo apt-get install libccid pcscd libpcsclite1 pcsc-tools opensc
Для установки библиотеки libjcPKCS11-2 следует скачать файл с пакетом: jcPKCS11-2_2.4.0.2946_amd64.deb
И установить скачанный пакет:
sudo dpkg -i jcPKCS11-2_2.4.0.2946_amd64.deb
Проверка работы JaCarta в системе
Для проверки работы JaCartaа:
Подключите устройство к компьютеру.
Способ №1
Введите команду:
pcsc_scan
Способ №2
Введите команду:
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -T
путь до библиотеки libjcPKCS11-2.so может различаться
Для того чтобы определить путь до библиотеки libjcPKCS11-2.so введите команду:
find /usr/*(lib|lib64) -name libjcPKCS11-2.so
Способ №3
графическая утилита XCA:
XCA: графический интерфейс для работы с токенами
Инициализация токена JaCarta
Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.
pkcs11-tool --slot 0x1ffff --init-token --so-pin 00000000 --label 'JaCarta PKI' --module /usr/lib/libjcPKCS11-2.so
pkcs11-tool --slot 0x1ffff --init-pin --so-pin 00000000 --login --pin 11111111 --module /usr/lib/libjcPKCS11-2.so
--slot 0x1ffff — указывает в какой виртуальный слот подключено устройство. Как правило, это слот 0, но могут быть и другие значения – 1,2 и т.д.
--init-token – команда инициализации токена.
--pin - пин код пользователя JaCarta. По умолчанию имеет значение 11111111
--so-pin 00000000 – ПИН код администратора JaCarta PKI. По умолчанию имеет значение 00000000
--label 'JaCarta PKI' - метка(название) устройства.
--module - указывает путь до библиотеки libjcPKCS11-2.so
Внимание! Инициализация устройства удалит все данные на JaCarta PKI без возможности восстановления.
Изменение PIN-кода JaCarta
Для изменения pin-кода JaCarta введите команду:
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so --login --pin ваш_старый_пин --change-pin --new-pin ваш_новый_пин
После чего система оповестит Вас о том, что PIN-код успешно изменен:
Using slot 0 with a present token (0x0)
PIN successfully changed
Проверка наличия сертификатов и ключевых пар на JaCarta
Проверка
Чтобы проверить наличие сертификатов и ключевых пар на токене JaCarta введите команду:
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -O -l
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
Если после строчки выводится информация о ключах и сертификатах, то из токена можно считать сертификат (см. ниже).
Извлечение сертификата из токена
pkcs11-tool --module
/usr/lib/
libjcPKCS11-2.so-r -y cert --
id
{
id
} >
название_вашего_сертификата.crt
Если после строчки
Using slot 0 with a present token (0x0)
нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.
Создание ключевой пары
Для генерации ключевой пары в терминале следует ввести команду:
pkcs11-tool --module
/usr/lib/
libjcPKCS11-2.so --label "название_ключа" --keypairgen --key-
type
rsa:2048 -l --
id
45
Создание самоподписанного сертификата
Для создания самоподписанного сертификата в терминале следует ввести команду:
openssl
после чего не выходя из 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/libeToken.so:
$ openssl 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/libjcPKCS11-2.so (dynamic) Dynamic engine loading support [Success]: SO_PATH:/usr/lib/x86_64-linux-gnu/engines-1.1/pkcs11.so [Success]: ID:pkcs11 [Success]: LIST_ADD:1 [Success]: LOAD [Success]: MODULE_PATH:/usr/lib/libjcPKCS11-2.so Loaded: (pkcs11) pkcs11 engine
1) В Astra Linux SE 1.6 pkcs11 libengine-pkcs11-openssl версии 1.0.2 не совместим с библиотекой libjcPKCS11-2.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
2) Либо установить Оперативные обновления для Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
OpenSSL> req -engine pkcs11 -new -key 131071: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) []:Astra-user Email Address []:shuhrat@astralinux.ru OpenSSL> exit
В поле Common Name должно быть указано имя пользователя ОС.
1) Путь до библиотеки pkcs11.so
может отличаться
Для того чтобы определить путь до библиотеки pkcs11.so введите команду:
$ find /usr/*(lib|lib64) -name pkcs11.so
2) Т.к. вышеуказанные команды должны быть неразрывны, их следует обязательно вбивать в консоли openssl Иначе openssl не сможет обратиться к закрытому ключу
3) Номер слота указывается в десятичной системе счисления. Число 131071 в шестнадцатеричной системе = 0x1ffff
Загрузка сертификата на токен
Создав свой личный сертификат, его следует загрузить на JaCarta:
pkcs11-tool --module /usr/lib/libjcPKCS11-2.so -l -y cert -w название_вашего_сертификата.crt -a "Имя_сертификата_в_токене" --id 45
Проверка ключей и сертификатов в JaCarta:
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
Установка дополнительный пакетов
Пуск - Настройки - Менеджер пакетов
через Быстрый фильтр или через поиск находим и отмечаем к установке следующие пакеты:
- libccid
- pcscd
- libpam-p11
- libpam-pkcs11
- libp11-2
- libengine-pkcs11-openssl
- opensc
Либо воспользовавшись терминалом FLY:
sudo apt-get install opensc libengine-pkcs11-openssl libp11-2 libpam-pkcs11 libpam-p11 pcscd libccid
Конвертируем сертификат в текстовый формат
openssl x509 -
in
название_вашего_сертификата.crt-out название_вашего_сертификата.pem -inform DER -outform PEM
где название_вашего_сертификата.pem - Ваш сертификат из токена в текстовом формате
Теперь нам необходимо прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов:
Добавляем сертификат в список доверенных сертификатов
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 >> /home/user/.eid
/authorized_certificates
chmod 0644 /home/user/.eid/authorized_certificates
Важно помнить, что при регистрации нескольких токенов на одном компьютере, необходимо указывать пользователям раличные id.
Настраиваем аутентификацию
Пуск - утилиты - Терминал Fly
sudo
nano
/usr/share/pam-configs/p11
|
сохранить файл нажав Alt + X, а затем Y, и после этого выполнить команду:
sudo
pam-auth-update
Вход по токену
Пуск - утилиты - Терминал Fly
|
Вход выполняется с подключенным токеном к компьютеру. В момент ввода пароля будет сообщено, что требуется <PIN пользователя>.
Блокировка компьютера при извлечении токена
В состав пакета libpam-pkcs11 входит утилита pkcs11_eventmgr, которая позволяет выполнять различные действия при возникновении событий PKCS#11.
Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf
Пример файла конфигурации представлен ниже:
|
После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.
Дополнительные источники информации
При возникновении вопроса, на который вам не удалось найти ответ в этой инструкции, рекомендуем
обратиться к следующим дополнительным источникам информации:
Веб-сайт содержит большой объем справочной информации об устройствах JaCarta.
https://kbp.aladdin-rd.ru/
База знаний содержит инструкции по решению большинства ошибок, полезные статьи и ответы на
часто задаваемые вопросы. Здесь вы можете найти нужную информацию по ключевым словам.
https://www.aladdin-rd.ru/support/downloads
Центр Загрузки