- Etoken в windows 10
- Safenet authentication client — драйверы и утилиты etoken, safenet idprime для windows 11, server 2022
- Настройка и диагностика криптопро csp
- Причина 1
- Причина 2
- Причина 3
- Причина 4
- Программное извлечение ключей
- Работа с токеном jacarta pki
- Результаты
- Установка драйверов и по для работы с jacarta pki
- Установка пакетов криптопро csp
Etoken в windows 10
И так немного напомню, что такое etoken и для чего его используют. USB ключ etoken это защищенная такая флешка на которой находится сертификат безопасности, предназначенный для разных задач, на пример:
Safenet authentication client — драйверы и утилиты etoken, safenet idprime для windows 11, server 2022
Программный продукт SafeNet Authentication Client, сокращённо именуемый SAC, представляет собой набор драйверов и служебных утилит, предназначенный для обеспечения работы смарт-карт и USB-ключей eToken, а также смарт-карт, программных и USB-токенов линейки SafeNet IDPrime на персональных компьютерах и ноутбуках, рабочих станциях и серверах корпоративной сети.
Отличительной особенностью SAC является поддержка свежих операционных систем линейки Microsoft Windows 11 и Windows Server 2022, что позволяет использовать средства аутентификации с использованием eToken и SafeNet IDPrime на компьютерах, находящихся под управлением современных систем.
SafeNet Authentication Client объединил в себе возможности комплектов драйверов и служебных утилит предыдущих поколений, а именно SafeNet Borderless Security (BSec) и eToken PKI Client, благодаря чему пользователи, развёрнутых на eToken и SafeNet IDPrime инфраструктур, могут и далее применять имеющиеся у них устройства аутентификации (токены и карты) в рамках поддерживаемых набором SAC.
✔ Обзор интерфейса SafeNet Authentication Client
Утилиты, входящие в состав SafeNet Authentication Client, позволяют пользователям eToken и SafeNet IDPrime, а также администраторам ИТ-отделов, отвечающим за работу смарт-карт и токенов в компании, выполнять различные операции по их обслуживанию:
- Просмотр информации о токене, смарт-карте — позволяет получить информацию о технических характеристиках устройства, оценить количество свободной памяти, определить принадлежность к конкретному пользователю:
- Работа с ПИН-кодами, паролями администратора — применяется для смены пользовательского пароля токена или смарт-карты, а также пароля администратора, необходимого для доступа к расширенному функционалу SAC:
- Импортирование электронных сертификатов — позволяет перемещать в защищённую память токенов и смарт-карт eToken, SafeNet IDPrime электронные сертификаты, сохранённые в виде файла на диске, либо в хранилище сертификатов:
- Инициализация токена, смарт-карты — обеспечивает обнуление памяти устройств, установку параметров токенов и смарт-карт eToken, SafeNet IDPrime, заданных при настройках процесса инициализации:
- Настройка качества паролей — позволяет устанавливать различные требования, обеспечивающие сложность и стойкость ПИН-кода пользователя и пароля администратора для устройств eToken, SafeNet IDPrime:
- Разблокирование токена, смарт-карты — позволяет снять блокировку электронного устройства, произошедшую вследствие превышения разрешённого количества неправильно-введённых паролей, ПИН-кодов:
Применение SafeNet Authentication Client обеспечивает внедрение и облегчает обслуживание USB-ключей и смарт-карт eToken, SafeNet IDPrime, работающих в составе различных средств защиты информации, аутентификации пользователей, защиты электронной почты.
Настройка и диагностика криптопро 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. Настройка, выполняем его регистрацию в криптографическом провайдере:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00"
В результате выполнения в конфигурационный файл /etc/opt/cprocsp/config64.iniв раздел [KeyDevicesPCSC] будет добавлена запись:
[KeyDevicesPCSC»Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00″Default]
Чтобы выполнить требования Формуляра, Правил пользования и Руководства администратора безопасности КриптоПро CSP:
Использование СКЗИ «КриптоПро CSP» версии 4.0 с выключенным режимом усиленного контроля использования ключей не допускается. Включение данного режима описано в документах ЖТЯИ.00087-01 91 02. Руководство администратора безопасности.
Необходимо включить режим усиленного контроля использования ключей:
/opt/cprocsp/sbin/amd64/cpconfig -ini 'configparameters' -add long StrengthenedKeyUsageControl 1
Проверяем, что режим включен:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl
Выполняем перезапуск службы криптографического провайдера:
/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status
После перезапуска проверяем, что ошибок в работе провайдера с ключевыми носителями нет:
/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext
/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA
AcquireContext: OK. HCRYPTPROV: 16052291
alfa_shark1 |SCARDJACARTA_4E3900154029304CCC00E9F6
OK.
Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec
[ErrorCode: 0x00000000]
Причина 1
Официальная документация на
больше адаптирована под операционные системы Astra Linux и ALT Linux, сертифицированные в Минобороны, ФСТЭК и ФСБ как средства защиты информации.
Причина 2
Лучшая инструкция по настройке взаимодействия с аппаратными носителями в Linux, которую удалось найти, была также от
Причина 3
UPD 16.04.2022:
В процессе настройки среды и оборудования выяснилось, что носитель, первым оказавшийся в распоряжении, был вовсе не JaCarta PKI Nano, как ожидалось, а устройство работающее в режиме SafeNet Authentication Client eToken PRO.
UPD 16.04.2022: Некогда Банку требовалось устройство, которое могло бы работать в той же инфраструктуре, что и eToken PRO (Java). В качестве такого устройства компания “ЗАО Аладдин Р.Д.” предложила токен JaCarta PRO, который был выбран банком.
UPD 16.04.2022: Благодарю компанию Аладдин Р.Д., за то что помогли разобраться и установить истину.
В этой ошибке нет никаких политических и скрытых смыслов, а только техническая ошибка сотрудника при подготовке документов. Токен JaCarta PRO является продуктом компании ЗАО “Аладдин Р.Д.”. Апплет, выполняющий функциональную часть, разработан компанией “ЗАО Аладдин Р.Д”.
Этот eToken PRO относился к партии, выпущенной до 1 декабря 2022 года. После этой даты компания «Аладдин Р.Д.» прекратила продажу устройств eToken PRO (Java).
Забегая немного вперед, нужно сказать, что работа с ним настраивалась через соответствующие драйверы — SafenetAuthenticationClient-10.0.32-0.x86_64, которые можно получить только в поддержке Аладдин Р.Д. по отдельной online заявке.
В КриптоПро CSP для работы с этим токеном требовалось установить пакет cprocsp-rdr-emv-64 | EMV/Gemalto support module.
Данный токен определялся и откликался. При помощи утилиты SACTools из пакета SafenetAuthenticationClient можно было выполнить его инициализацию. Но при работе с СКЗИ он вел себя крайне странно и непредсказуемо.
Проявлялось это следующим образом, на команду:
csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (205D325E5842) 00 00alfa_shark' -check
Выдавался ответ, что все хорошо:
[ErrorCode: 0x00000000]
Но сразу после попытки зачитать ключи программно эта же проверка начинала выдавать ошибку:
[ErrorCode: 0x8009001a]
Согласно перечню кодов ошибок объектной модели компонентов Microsoft
NTE_KEYSET_ENTRY_BAD
0x8009001A
Keyset as registered is invalid.
«Невалидный набор ключей» — причина такого сообщения, возможно, кроется либо в старом чипе, прошивке и апплете Gemalto, либо в их драйверах для ОС, которые не поддерживают новые стандарты формирования ЭП и функции хэширования ГОСТ Р 34.10-2022 и ГОСТ Р 34.11-2022.
В таком состоянии токен блокировался. СКЗИ начинало показывать неактуальное состояние считывателя и ключевого контейнера. Перезапуск службы криптографического провайдера 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 порт сервера и запуска системы проверяем, что новое устройство обнаружено и появилось в списке:
lsusb
В нашем случае это Bus 004 Device 003: ID 24dc:0101
Для диагностики считывателей можно воспользоваться утилитой pcsc-tools из проекта security:chipcard (software.opensuse.org).
Запускается командой:
pcsc_scan
Пока не установлены все необходимые пакеты, информация о токене не отобразится.
Программное извлечение ключей
В общем виде пример извлечения закрытого ключа и сертификата открытого ключа из контейнера на токене с помощью КриптоПро Java CSP следующий:
import ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry;
import ru.CryptoPro.JCP.params.JCPProtectionParameter;
KeyStore keyStore = KeyStore.getInstance("Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00", "JCSP");
keyStore.load(null, null);
JCPPrivateKeyEntry entry = null;
X509Certificate certificate = null;
PrivateKey privateKey = null;
try {
entry = (JCPPrivateKeyEntry) keyStore.getEntry(keyAlias,
new JCPProtectionParameter(pwd));
certificate = (X509Certificate) entry.getCertificate();
privateKey = entry.getPrivateKey();
} catch (UnrecoverableEntryException | NullPointerException e) {
LOGGER.log(Level.WARNING, PRIVATE_KEY_NOT_FOUND keyAlias ExceptionUtils.getFullStackTrace(e));
}
Если действовать так:
Key key = keyStore.getKey(keyAlias, pwd);
то криптографический провайдер будет пытаться в системе отобразить через консоль или GUI окно запрос на ввод пароля к контейнеру.
Работа с токеном jacarta pki
Запустим программу Xming (X11 forwarding) на своей станции, чтобы по SSH иметь возможность открывать и работать с графическими интерфейсами нужных утилит.
После установки IDProtectClient — программного обеспечения для работы с JaCarta PKI, на сервере в папке /usr/share/applications появились два файла:
Athena-IDProtectClient.desktopAthena-IDProtectManager.desktop
Это ярлыки, в которых можно посмотреть параметры запуска утилит Exec=/usr/bin/SACTools
Запустим утилиту IDProtectPINTool.
С помощью нее задаются и меняются PIN-коды доступа к токену.
/usr/bin/IDProtectPINTool
При первой инициализации токена будет полезна ссылка, содержащая PIN-коды (пароли) ключевых носителей по умолчанию
Программа IDProtect_Manager позволяет просматривать информацию о токене и контейнере с ключами и сертификатом:
/usr/bin/IDProtect_Manager
Для доступа к контейнеру с ключами нужно ввести пароль:
Для работы с SafeNet Authentication Client eToken PRO существуют аналогичные программы — SafeNet Authentication Client Monitor и SafeNet Authentication Client Tools, которые запускаются так:
/usr/bin/SACMonitor
/usr/bin/SACTools
Выполнять операции непосредственно с ключевыми контейнерами удобнее в интерфейсе криптографического провайдера КриптоПро JavaCSP:
/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane
Для отображения информации о содержимом контейнера с ключами можно выполнить команду:
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00alfa_shark1' -info
Для диагностики контейнера используется эта же команда с ключом –check
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\.Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00alfa_shark' –check
Потребуется ввести пароль от контейнера:
Результаты
Отторгаемый ключевой носитель-токен установлен во внутренний USB-порт сервера.
Само серверное оборудование опломбировано и размещается в помещении с ограниченным доступом.
Такие меры позволяют повысить уровень защиты наших информационных систем от кражи и компрометации ключей электронной подписи или шифрования, как удаленно по сети, так и физически.
Установка драйверов и по для работы с jacarta pki
На странице Поддержки сайта «Аладдин Р.Д.» загружаем
Согласно Руководству по внедрению «JaCarta для Linux» пункт 4.2., первым делом требуется установить пакеты pcsc-lite, ccid и libusb.
Для работы утилиты управления JaCarta необходимо установить следующие компоненты:
Выполняем проверку наличия этих пакетов и установку:
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 удаляем:
rpm -e openct
Теперь все необходимые драйверы и ПО для работы с токеном установлены.
Выполняем диагностику с помощью утилиты pcsc-tools и убеждаемся, что JaCarta определяется в операционной системе:
pcsc_scan
Установка пакетов криптопро 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
Некоторые компоненты имеют зависимости. Так, например, если попытаться выполнить установку пакета поддержки SafeNet eToken PRO cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm — EMV/Gemalto support module, то получим сообщение о необходимости сначала установить базовый компонент CSP поддержки считывателей cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm — PC/SC components for CryptoPro CSP readers:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm
Loading repository data...
Reading installed packages...
Resolving package dependencies...
Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64
Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64
Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c] (c): c
Устанавливаем базовые пакеты поддержки считывателей и ключевых носителей:
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
zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm
zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm
Проверяем итоговую конфигурацию КриптоПро CSP:
zypper search cprocsp
Loading repository data...
Reading installed packages...
S | Name | Summary | Type— —————————— —————————————————- ———i | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | packagei | cprocsp-rdr-emv-64 | EMV/Gemalto support module | packagei | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | packagei | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | packagei | cprocsp-rdr-mskey-64 | Mskey support module | packagei | cprocsp-rdr-novacard-64 | Novacard support module | packagei | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| packagei | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | packagei | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | packagei | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | packagei | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | packagei | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | packagei | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package
Чтобы применить изменения, выполняем перезапуск службы криптографического провайдера и проверяем ее статус:
/etc/init.d/cprocsp restart
/etc/init.d/cprocsp status