Настройка jakarta astra linux
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/ГОСТ
Создание обычного контейнера:
Проверить наличие контейнеров можно с помощью команды:
Просмотр подробной информации о контейнере:
Удалить контейнер можно с помощью команды:
Создание запроса на получение сертификата средствами КриптоПро:
Запрос на сертификат необходимо подписать в аккредитованном удостоверяющем центре.
Запись сертификата клиента в контейнер:
Запись сертификата УЦ:
Читайте также: