Настройка jakarta astra linux

Обновлено: 04.07.2024

Astralinux и «Аладдин Р.Д.» завершили тестовые испытания на совместимость своих продуктов — USB-токенов и смарт-карт линейки JaCarta с операционными системами (ОС) Astralinux Special Edition и Astralinux Common Edition.

По результатам тестирования компании подписали сертификаты совместимости, подтверждающие работоспособность и корректность совместного функционирования USB-токенов и смарт-карт линейки JaCarta с ОС специального назначения Astralinux Special Edition релиз «Смоленск» версии 1.5. и 1.6., а также с ОС общего назначения Astralinux Common Edition релиз «Орел» версии 2.12. Согласно документу, при использовании библиотеки jcPKCS11-2 версии 2.4 или выше с перечисленными операционными системами для аутентификации и формирования электронной подписи могут использоваться USB-токены и смарт-карты JaCarta-2 ГОСТ и JaCarta-2 PKI/ГОСТ, а в качестве защищенного служебного носителя необходимо использовать модель JaCarta SF/ГОСТ.

«Официальная поддержка таких решений в операционной системе Astralinux позволяет обеспечить юридическую значимость электронных документов и строгую аутентификацию пользователей при помощи USB-токенов и смарт-карт, что позволяет использовать эти решения для работы с такими государственными информационными системами, как ЕГАИС», - сказал директор по продукту Astralinux Роман Мылицын.

JaCarta-2 ГОСТ — новое поколение устройств с аппаратной реализацией криптографических алгоритмов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012. Устройства могут применяться для обеспечения строгой двух- или трёхфакторной аутентификации (с идентификацией по отпечатку пальца), формирования и проверки усиленной квалифицированной электронной подписи, а также безопасного хранения пользовательских объектов и данных (цифровых сертификатов, паролей и т.д.). Устройства сертифицированы ФСБ России как средства электронной подписи (сертификат № СФ/124-3502).

В настоящее время ОС Astralinux Special Edition является единственной российской операционной системой, сертифицированной ФСБ России, Минобороны России и ФСТЭК России по требованиям безопасности информации и может применяться для обработки конфиденциальной информации, а также государственной тайны до степени «совершенно секретно» включительно. ОС Astralinux Common Edition предназначена для обеспечения функциональности современных высокопроизводительных компьютеров при решении широкого круга пользовательских задач.


JaCarta PKI - сертифицированные USB-токены и смарт-карты с аппаратной реализацией зарубежных криптоалгоритмов, предназначенные для работы с инфраструктурой открытых ключей (PKI).

JaCarta-2 ГОСТ - USB-токены и смарт-карты, предназначенные для использования в качестве сертифицированного средства ЭП (усиленной квалифицированной подписи — УКЭП) и полноценного СКЗИ в системах электронного документооборота (ЭДО), дистанционного банковского обслуживания (ДБО) и др. для обеспечения юридической значимости и неотказуемости действий пользователей, а также для обеспечения целостности и конфиденциальности передаваемых данных.

JaCarta SF/ГОСТ – продукт предназначен для безопасного хранения и транспортировки информации ограниченного доступа (ДСП, гостайна) и состоит из:

аппаратного средства, выполненного в форм-факторе USB-токена;

ПО для ввода в эксплуатацию, управления и администрирования.

Для выполнения действий данной инструкции необходимо установить следующее программное обеспечение:

  • библиотека libccid, libjcPKCS11-2;
  • пакеты libpcsclite1 и pcscd;
  • opensc;

Для установки в терминале введите команду:

И установить скачанный пакет:

Для проверки работы JaCartaа:
Подключите устройство к компьютеру.

Способ №1


Способ №2


путь до библиотеки libjcPKCS11-2.so может различаться

Для того чтобы определить путь до библиотеки libjcPKCS11-2.so введите команду:

Способ №3

графическая утилита XCA:

Для инициализации токена необходимо воспользоваться утилитой pkcs11-tool.

Для задания ПИН кода пользователя используйте команду:

--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 без возможности восстановления.

Проверка

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

В результате в окне терминала отобразится информация обо всех сертификатах и ключевых парах, хранящихся на токене JaCarta:

Если после строчки выводится информация о ключах и сертификатах, то из токена можно считать сертификат (см. ниже).

Извлечение сертификата из токена

вместо нужно подставить ID который вы увидите в выводе команды

Если после строчки

нет ничего, значит устройство пустое. Следует обратиться к администратору или создать ключи и сертификат самостоятельно.

Создание ключевой пары

Для генерации ключевой пары в терминале следует ввести команду:

pkcs11-tool --module /usr/lib/ libjcPKCS11-2.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/libeToken.so:

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

В поле Common Name должно быть указано имя пользователя ОС.

1) Путь до библиотеки pkcs11.so может отличаться

Для того чтобы определить путь до библиотеки pkcs11.so введите команду:
$ find /usr/*(lib|lib64) -name pkcs11.so

2) Т.к. вышеуказанные команды должны быть неразрывны, их следует обязательно вбивать в консоли openssl Иначе openssl не сможет обратиться к закрытому ключу

3) Номер слота указывается в десятичной системе счисления. Число 131071 в шестнадцатеричной системе = 0x1ffff


Загрузка сертификата на токен

Создав свой личный сертификат, его следует загрузить на 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:

Конвертируем сертификат в текстовый формат

где название_вашего_сертификата.pem - Ваш сертификат из токена в текстовом формате

Теперь нам необходимо прочитать с токена сертификат с нужным ID и записать его в файл доверенных сертификатов:
Добавляем сертификат в список доверенных сертификатов

Для привязки токена к определенному пользователю необходимо указать его домашнюю директорию, например таким образом:

Важно помнить, что при регистрации нескольких токенов на одном компьютере, необходимо указывать пользователям раличные id.

Настраиваем аутентификацию

Пуск - утилиты - Терминал Fly

записываем в файл следующую информацию:

Name: Pam_p11
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient pam_p11_opensc.so /usr/lib/ libjcPKCS11-2.so

сохранить файл нажав Alt + X, а затем Y, и после этого выполнить команду:

в появившемся окне поставить отметку в Pam_p11 и нажать OK .

Пуск - утилиты - Терминал Fly

Блокировка компьютера при извлечении токена

Для настройки pkcs11_eventmgr служит файл конфигурации - /etc/pam_pkcs11/pkcs11_eventmgr.conf

Пример файла конфигурации представлен ниже:

После этого добавьте приложение pkcs11_eventmgr в автозагрузку и перезагрузитесь.

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

Веб-сайт содержит большой объем справочной информации об устройствах JaCarta.


Хранение ключей на токенах и смарт-картах обеспечивает дополнительную защиту от внешних и внутренних нарушителей, в том числе имеющих определенный уровень доступа к информационной системе и оборудованию.

Сегодня я расскажу, как мы защищаем ключи шифрования и электронной подписи в наших информационных системах, и сделаю это в подробном, хорошо проиллюстрированном руководстве по настройке SUSE Linux Enterprise Server 12 SP3 для работы с токеном Aladdin JaCarta PKI и КриптоПро CSP KC2 4.0.9944.

Опубликовать данное руководство побудило несколько причин:

Причина 1

Официальная документация на Aladdin-RD JaCarta больше адаптирована под операционные системы Astra Linux и ALT Linux , сертифицированные в Минобороны, ФСТЭК и ФСБ как средства защиты информации.

Причина 2

Причина 3

В процессе настройки среды и оборудования выяснилось, что носитель, первым оказавшийся в распоряжении, был вовсе не JaCarta PKI Nano, как ожидалось, а SafeNet Authentication Client eToken PRO с микроконтроллером Gemalto на борту в корпусе JaCarta PKI Nano.

Этот eToken PRO относился к партии, выпущенной до 1 декабря 2017 года.
После этой даты компания «Аладдин Р.Д.» прекратила продажу устройств eToken PRO (Java) в связи с завершением поддержки и поставок производителем — компанией Gemalto, к слову, чуть раньше поглотившей SafeNet, Inc.

Забегая немного вперед, нужно сказать, что работа с ним настраивалась через соответствующие драйверы — SafenetAuthenticationClient-10.0.32-0.x86_64, которые можно получить только в поддержке Аладдин Р.Д. по отдельной online заявке.

В КриптоПро CSP для работы с этим токеном требовалось установить пакет cprocsp-rdr-emv-64 | EMV/Gemalto support module.

Данный токен определялся и откликался. При помощи утилиты SACTools из пакета SafenetAuthenticationClient можно было выполнить его инициализацию. Но при работе с СКЗИ он вел себя крайне странно и непредсказуемо.

Проявлялось это следующим образом, на команду:


Выдавался ответ, что все хорошо:


Но сразу после попытки зачитать ключи программно эта же проверка начинала выдавать ошибку:


Согласно перечню кодов ошибок объектной модели компонентов Microsoft COM Error Codes (Security and Setup)

В таком состоянии токен блокировался. СКЗИ начинало показывать неактуальное состояние считывателя и ключевого контейнера. Перезапуск службы криптографического провайдера cprocsp, службы работы с токенами и смарт-картами pcscd и всей операционной системы не помогали, только повторная инициализация.

Справедливости ради требуется отметить, что SafeNet eToken PRO корректно работал с ключами ГОСТ Р 34.10-2001 в ОС Windows 7 и 10.

Можно было бы попробовать установить СКЗИ КриптоПро CSP 4.0 ФКН (Gemalto), но целевая задача — защитить наши ключи ЭП и шифрования с помощью сертифицированных ФСБ и ФСТЭК изделий семейства JaCarta, в которых поддерживаются новые стандарты.

Проблему удалось решить, взяв настоящий токен JaCarta PKI в (XL) обычном корпусе.

Но на попытки заставить работать Safenet eToken PRO времени было потрачено немало. Хотелось обратить на это внимание и, возможно, кого-то оградить от подобного.

Причина 4

Иногда самому требуется вернуться к старым статьям и инструкциям. Это удобно, когда информация размещена во внешнем источнике. Так что спасибо Хабру за предоставленную возможность.

Руководство по настройке

После установки токена JaCarta PKI в USB порт сервера и запуска системы проверяем, что новое устройство обнаружено и появилось в списке:


В нашем случае это Bus 004 Device 003: ID 24dc:0101


Пока не установлены все необходимые пакеты, информация о токене не отобразится.

Установка драйверов и ПО для работы с JaCarta PKI

Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.

Для работы утилиты управления JaCarta необходимо установить следующие компоненты:

  • PC/SC Lite — промежуточный слой для обеспечения доступа к смарт-картам по стандарту PC/SC, пакет pcsc-lite.
  • Библиотеки ccid и libusb для работы с USB-ключами, смарт-картами и считывателями смарт-карт .

Выполняем проверку наличия этих пакетов и установку:

zypper search pcsc-lite

zypper search libusb


zypper install pcsc-lite



zypper search CCID


zypper install pcsc-ccid


zypper search CCID


zypper install libusb


В итоге пакет pcsc-lite был обновлен, CCID установлен, libusb никаких действия не требовалось.

Следующими двумя командами выполняем установку пакета с драйверами и программным обеспечением непосредственно для работы с JaCarta PKI:

zypper install idprotectclientlib-637.03-0.x86_64.rpm


zypper install idprotectclient-637.03-0.x86_64.rpm


Проверяем, что драйверы и ПО для JaCarta PKI установились:

zypper search idprotectclient


При попытках заставить работать SafeNet eToken PRO я нашел информацию, что предустановленный в SLES пакет openct — Library for Smart Card Readers может конфликтовать с pcsc-lite — PCSC Smart Cards Library, установку которого требует руководство Аладдин Р.Д.

zypper search openct


Поэтому пакет openct удаляем:

Теперь все необходимые драйверы и ПО для работы с токеном установлены.

Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:


Установка пакетов КриптоПро CSP

При установке КриптоПро CSP по умолчанию нужные пакеты для работы с токенами и смарт-картами отсутствуют.

zypper search cprocsp


Выполняем установку в CSP компонента поддержки JaCarta components for CryptoPro CSP

zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm



Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:

zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm


zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm

Теперь можно установить модули для работы с остальными видами носителей и компонент GUI:

zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm




Проверяем итоговую конфигурацию КриптоПро CSP:

S | Name | Summary | Type
---+-----------------------------+----------------------------------------------------+--------
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package


Чтобы применить изменения, выполняем перезапуск службы криптографического провайдера и проверяем ее статус:



Настройка и диагностика КриптоПро CSP

Проверим, видит ли криптографический провайдер наш токен и другие доступные типы носителей следующими командами:

/opt/cprocsp/bin/amd64/csptest -card -enum -v –v


/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251


/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251


Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 — это наш носитель.

Следуя инструкции КриптоПро CSP для Linux. Настройка, выполняем его регистрацию в криптографическом провайдере:



В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.ini
в раздел Настройка jakarta astra linux будет добавлена запись:

Настройка jakarta astra linux (000000000000) 00 00"\Default]

Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:

Использование СКЗИ «КриптоПро CSP» версии 4.0 с выключенным режимом усиленного контроля использования ключей не допускается. Включение данного режима описано в документах ЖТЯИ.00087-01 91 02. Руководство администратора безопасности.

Необходимо включить режим усиленного контроля использования ключей:


Проверяем, что режим включен:

cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl


Выполняем перезапуск службы криптографического провайдера:


После перезапуска проверяем, что ошибок в работе провайдера с ключевыми носителями нет:

/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext


/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique

Работа с токеном JaCarta PKI

Запустим программу Xming (X11 forwarding) на своей станции, чтобы по SSH иметь возможность открывать и работать с графическими интерфейсами нужных утилит.


После установки IDProtectClient — программного обеспечения для работы с JaCarta PKI, на сервере в папке /usr/share/applications появились два файла:

Это ярлыки, в которых можно посмотреть параметры запуска утилит Exec=/usr/bin/SACTools

Запустим утилиту IDProtectPINTool.

С помощью нее задаются и меняются PIN-коды доступа к токену.


При первой инициализации токена будет полезна ссылка, содержащая PIN-коды (пароли) ключевых носителей по умолчанию

Программа IDProtect_Manager позволяет просматривать информацию о токене и контейнере с ключами и сертификатом:


Для доступа к контейнеру с ключами нужно ввести пароль:



Для работы с SafeNet Authentication Client eToken PRO существуют аналогичные программы — SafeNet Authentication Client Monitor и SafeNet Authentication Client Tools, которые запускаются так:



Выполнять операции непосредственно с ключевыми контейнерами удобнее в интерфейсе криптографического провайдера КриптоПро JavaCSP:


Для отображения информации о содержимом контейнера с ключами можно выполнить команду:


Для диагностики контейнера используется эта же команда с ключом –check


Потребуется ввести пароль от контейнера:



Программное извлечение ключей

В общем виде пример извлечения закрытого ключа и сертификата открытого ключа из контейнера на токене с помощью КриптоПро Java CSP следующий:

Если действовать так:


то криптографический провайдер будет пытаться в системе отобразить через консоль или GUI окно запрос на ввод пароля к контейнеру.

Результаты

Отторгаемый ключевой носитель-токен установлен во внутренний USB-порт сервера.

Само серверное оборудование опломбировано и размещается в помещении с ограниченным доступом.

Такие меры позволяют повысить уровень защиты наших информационных систем от кражи и компрометации ключей электронной подписи или шифрования, как удаленно по сети, так и физически.

Установить библиотеку libjcPKCS11:

Примечание: При работе с JaCarta PKI необходимо указывать путь до библиотеки libjcPKCS11-2.so: ("2.4 - актуальная для всех наших устройств. 2.1 имеет ряд недостатков и багов, которые в 2.4 исправили")

Проверяем работу токена, он должен быть виден в списке:

Просмотреть имеющуюся на токене информацию можно при помощи команды (требуется пароль от токена):

Список объектов в определенном слоте:

Внимание! При инициализации вся информация с ключа будет удалена и необходимо будет заново записывать сертификат (ключ, электронную подпись)!

Для инициализации токена следует выполнить команду (необходимо ввести so-pin карты 2 раза или передать его в качестве параметра --so-pin):

Примечание: Если используется комбинированная модель JaCarta-2 PKI/ГОСТ, необходимо в командах указывать --slot-index, т.к. по умолчанию используется слот с индексом 0


После форматирования ключа необходимо проинициализировать PIN пользователя, в выводе команды, в строке token flags, должен присутствовать флаг PIN initialized:

Для инициализации PIN-кода необходимо выполнить команду (потребуется ввести so-pin карты, а затем дважды ввести новый PIN-код):

Для смены PIN-кода необходимо выполнить команду (потребуется ввести текущий PIN-код, а затем дважды ввести новый):

Для удаления объекта необходимо указать его тип и идентификатор (id) или название (label). Открытый и закрытый ключ удаляются отдельно.

  • privkey – закрытый ключ;
  • pubkey – открытый ключ;
  • cert – сертификат.

Генерация пары ключей:

Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.

Запись сертификата на токен:

Если на карте имеется сертификат, его можно прочитать командой:

ID сертификата можно посмотреть, выведя список объектов на токене:

Подробнее о КриптоПро: КриптоПро

  • КриптоПро CSP 5.0 R2 - OK
  • КриптоПро CSP 4.0 R4 - OK
  • КриптоПро CSP 3.9 R2 - 3.9.8495 - OK
  • КриптоПро CSP 4.0 R2 - 4.0.9842 - OK
  • КриптоПро CSP 3.6 R4 - 3.6.7777 - не работает

1. Установите метапакет cryptopro-preinstall-full для установки всех необходимых зависимостей:

2. Скачайте архив с RPM-пакетами с оф.сайта КриптоПро - linux-amd64.tgz

3. Выполните под рутом из папки с распакованным архивом следующие команды:

Примечание: Для 32-битной версии вместо последнего пакета — lsb-cprocsp-rdr-4*

2. Установите RPM-пакет из архива:

3. Желательно перезагрузить компьютер.

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

Инициализация считывателя HDIMAGE (под правами root):

Создание контейнера на токене/смарт-карте:

При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:

При установленном пакете cprocsp-rdr-gui-gtk будет показано графическое окно, где будет предложено перемещать указатель мыши или нажимать клавиши:

Генерация случайной последовательности

Примечание: Если такой пакет не установлен, будет предложено ввести любые символы с клавиатуры.

После этого необходимо предъявить PIN-код пользователя:

Запрос пин-кода для аутентификации на носителе

После указания PIN-кода снова будет предложено перемещать указатель мыши.

Примечание: В КриптоПРо 5, если используется комбинированная модель JaCarta-2 PKI/ГОСТ, можно будет выбрать выбрать способ создания контейнера.

Создание неизвлекаемого контейнера:

Выбор носителя для создания контейнера

В этом случае будет использована встроенная криптография носителя. В этом случае см. JaCarta/ГОСТ

Создание обычного контейнера:

Выбор носителя для создания контейнера


Проверить наличие контейнеров можно с помощью команды:

Просмотр подробной информации о контейнере:

Удалить контейнер можно с помощью команды:

Создание запроса на получение сертификата средствами КриптоПро:

Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.

Запись сертификата клиента в контейнер:

Запись сертификата УЦ:

Читайте также: