Почему jakarta не видит токен
Перейти к содержимому

Почему jakarta не видит токен

  • автор:

Не работает Jakarta

Всем привет, начал пользоваться Астра линуксом Смоленск 1.6 совсем не давно, так что профан в этом деле.
Но было необходимо было установить КриптоПро, и драйвер Jakarta. Все устанавливал по инструкции, и что самое главное установил, но вот не задача крипта не видит контейнера, да и сам клиент Jakarta так же не определяет носитель.
Как Вы можете видеть на первом скриншоте, приложение установлено.
На втором скрине открытое приложение со вставленным носителем

Ну и собственно скриншот криптопро где наглядно видно, что крипта не видит контейнера!

Если кто то знает в чем дело, подскажите!
P.S. Контейнеры с флешки крипта видит!

В Едином Клиенте не отображается подключённый токен

В Едином Клиенте не отображается подключенный токен. В диспетчере устройств отображается устройство JaCarta с восклицательным знаком.

Причина:

Драйвер устройства не установился автоматически или установился неправильно.

Решение:

  • Откройте диспетчер устройств, удалите устройство JaCarta c восклицательным знаком, выполните обновление конфигурации устройств. Откройте свойства устройства JaCarta, выполните переустановку драйвера (выбрав автоматический поиск драйверов).
  • Откройте Панель управления –> Программы и компоненты. Выберите Единый Клиент JaCarta, выполните его восстановление (repair). Перезагрузите компьютер.

JaCarta

JaCarta — сертифицированные USB-токены, смарт-карты и модули безопасности. Они могут применяться для аутентификации, формирования и проверки электронной подписи, шифрования передаваемых данных, а также безопасного хранения объектов. Чтобы работать с носителем, установите приложение «Единый клиент JaCarta».

Носители JaCarta отличаются поддерживаемыми алгоритмами и наличием встроенного СКЗИ.

Токены со встроенной СКЗИ:

  • JaCarta-2 SE — носитель с поддержкой российских и зарубежных криптоалгоритмов для работы в специализированных государственных системах, в том числе ЕГАИС.
  • JaCarta-2 ГОСТ — новое поколение токенов с аппаратной поддержкой российских криптографических алгоритмов ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012.
  • JaCarta-2 PKI/ГОСТ — комбинированная версия JaCarta-2 ГОСТ с поддержкой не только отечественных, но и зарубежных криптоалгоритмов.

Токены без встроенного СКЗИ:

  • JaCarta LT — носитель для безопасного хранения ключей, ключевых контейнеров сертифицированных российских СКЗИ. Для работы с ключами требуется установить СКЗИ.

Подробнее о носителях JaCarta читайте на сайте производителя.

Утилита pkcs11-tool

В состав opensc входит универсальная утилита pkcs11-tool, которой можно «подложить», например, библиотеку PKCS#11 для работы с JaСarta и с ее помощью «управлять» токенами JaCarta.

Пакеты для работы с JaCarta PKI

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

# apt-get install libjcpkcs11 

Примечание: При работе с JaCarta PKI необходимо указывать путь до библиотеки libjcPKCS11-2.so:

--module /usr/lib64/pkcs11/libjcPKCS11-2.so.2.4.0 

Примечание: ? можно использовать библиотеку libjcpkcs11-2.so (версия 2.1.3) из пакета libjcpkcs11:

--module /usr/lib64/pkcs11/libjcpkcs11-2.so 

(«2.4 — актуальная для всех наших устройств. 2.1 имеет ряд недостатков и багов, которые в 2.4 исправили»)

Проверка работы JaCartaPKI

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

$ pkcs11-tool -L --module /usr/lib64/pkcs11/libjcPKCS11-2.so Available slots: Slot 0 (0x1ffff): Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 token label : JaCarta#4E46001119145046 token manufacturer : Aladdin R.D. token model : JaCarta Laser token flags : login required, token initialized, PIN initialized, readonly hardware version : 1.1 firmware version : 1.0 serial num : 4E46001119145046 pin min/max : 4/10

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

$ pkcs11-tool -Ol --module /usr/lib64/pkcs11/libjcPKCS11-2.so Using slot 0 with a present token (0x1ffff) Logging in to "JaCarta#4E43002311275331". Please enter User PIN:

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

$ pkcs11-tool -Ol --slot-index 0 --module /usr/lib64/pkcs11/libjcPKCS11-2.so 

Инициализация (форматирование) токена

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

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

$ pkcs11-tool --init-token --label JacartaPKI --module /usr/lib64/pkcs11/libjcPKCS11-2.so Using slot 0 with a present token (0x1) Please enter the new SO PIN: Please enter the new SO PIN (again): Token successfully initialized

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

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

$ pkcs11-tool -L --module /usr/lib64/pkcs11/libjcPKCS11-2.so Available slots: Slot 1 (0x2ffff): ACS ACR38U-CCID 00 00 token label : JacartaPKI token manufacturer : Aladdin R.D. token model : JaCarta Laser token flags : login required, token initialized, readonly hardware version : 1.0 firmware version : 1.0 serial num : 4E43002303465331 pin min/max : 4/10

Иинициализация PIN-кода

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

$ pkcs11-tool --init-pin -l --module /usr/lib64/pkcs11/libjcPKCS11-2.so Using slot 0 with a present token (0x1) Logging in to "JacartaPKI". Please enter SO PIN: Please enter the new PIN: Please enter the new PIN again: User PIN successfully initialized

Смена PIN-кода

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

$ pkcs11-tool --change-pin --module /usr/lib64/pkcs11/libjcPKCS11-2.so Using slot 0 with a present token (0x1) Please enter the current PIN: Please enter the new PIN: Please enter the new PIN again: PIN successfully changed

Удаление объекта

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

$ pkcs11-tool -b -y privkey --login --id 1024 --module /usr/lib64/pkcs11/libjcPKCS11-2.so 
  • privkey – закрытый ключ;
  • pubkey – открытый ключ;
  • cert – сертификат.

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

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

$ pkcs11-tool --module /usr/lib64/pkcs11/libjcPKCS11-2.so --keypairgen --key-type rsa:1024 --login --id 2222 --label myrsakey Using slot 0 with a present token (0x1ffff) Logging in to "JaCarta#4E46001119145046". Please enter User PIN: Key pair generated: Private Key Object; RSA label: myrsakey ID: 2222 Usage: decrypt, sign, unwrap warning: PKCS11 function C_GetAttributeValue(ALWAYS_AUTHENTICATE) failed: rv = CKR_ATTRIBUTE_TYPE_INVALID (0x12) Public Key Object; RSA 1024 bits label: myrsakey ID: 2222 Usage: encrypt, verify, wrap

Сертификаты

Получение сертификата

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

Запись сертификата

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

$ pkcs11-tool --module /usr/lib64/pkcs11/libjcPKCS11-2.so --pin 11111111 --write-object ./cert.der --type cert --id 0101 Using slot 0 with a present token (0x1ffff) Created certificate: Certificate Object; type = X.509 cert label: subject: DN: CN=\xd0\x98\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2 \xd0\x98\xd0\xb2\xd0\xb0\xd0\xbd \xd0\x98\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xbe\xd0\xb2\xd0\xb8\xd1\x87, C=RU, L=\xD0\xB3. \xD0\x9A\xD0\xB0\xD0\xBB\xD0\xB8\xD0\xBD\xD0\xB8\xD0\xBD\xD0\xB3\xD1\x80\xD0\xB0\xD0\xB4/street=\xd0\x9f\xd1\x80-\xd1\x82 \xd0\x9f\xd0\xbe\xd0\xb1\xd0\xb5\xd0\xb4\xd1\x8b 14 \xD0\xBA\xD0\xB2. 3, emailAddress=ivanov@mail.mail ID: 0101

Чтение сертификата

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

$ pkcs11-tool --read-object --type cert --login --id 0101 --module /usr/lib64/pkcs11/libjcPKCS11-2.so 

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

$ pkcs11-tool --module /usr/lib64/pkcs11/libjcPKCS11-2.so -O 

КриптоПро

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

  • КриптоПро CSP 5.0 R3 — 5.0.12500 — OK
  • КриптоПро CSP 5.0 R2 — 5.0.12000 — 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 для установки всех необходимых зависимостей:

# apt-get install cryptopro-preinstall-full

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

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

# sh install.sh # apt-get install cprocsp-curl* lsb-cprocsp-base* lsb-cprocsp-capilite* lsb-cprocsp-kc1* cprocsp-rdr-jacarta* \ cprocsp-rdr-gui-gtk* cprocsp-rdr-rutoken* cprocsp-rdr-pcsc* lsb-cprocsp-pkcs11* lsb-cprocsp-rdr-64*

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

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

# apt-get install cprocsp-rdr-jacarta-3.6.1-3.6.404-1.x86_64.rpm

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

Управление считывателями

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

$ csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251 CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX. CryptAcquireContext succeeded.HCRYPTPROV: 32655395 GetProvParam(. PP_ENUMREADERS. ) until it returns false Len Byte NickName/Name _____________________________ 0x012a 0x03 Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 0x012a 0x01 FLASH FLASH 0x012a 0x00 HDIMAGE HDD key storage Cycle exit when getting data. 3 items found. Level completed without problems. Total: SYS: 0,030 sec USR: 0,030 sec UTC: 0,070 sec [ErrorCode: 0x00000000]

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

# /opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add 'Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00' -name 'Jacarta' Adding new reader: Nick name: Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00 Name device: Jacarta Succeeded, code:0x0

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

$ csptest -keyset -provtype 80 -newkeyset -cont '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta' CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 21797187 GetProvParam(PP_NAME): Crypto-Pro GOST R 34.10-2012 KC1 CSP Container name: "Jacarta" Signature key is not available. Attempting to create a signature key. a signature key created. Exchange key is not available. Attempting to create an exchange key. an exchange key created. Keys in container: signature key exchange key Extensions: OID: 1.2.643.2.2.37.3.9 PrivKey: Not specified - 27.05.2020 18:54:04 (UTC) OID: 1.2.643.2.2.37.3.10 PrivKey: Not specified - 27.05.2020 18:54:35 (UTC) Total: SYS: 0,210 sec USR: 0,200 sec UTC: 45,550 sec [ErrorCode: 0x00000000]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

$ csptest -keyset -enum_cont -fqcn -verifyc | iconv -f cp1251 CSP (Type:80) v5.0.10001 KC1 Release Ver:5.0.11319 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 16152611 \\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta OK. Total: SYS: 0,090 sec USR: 0,040 sec UTC: 4,470 sec [ErrorCode: 0x00000000]

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

$ csptestf -keyset -container '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta' -info 

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

$ csptestf -keyset -deletekeyset -cont '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta' 

Управление сертификатами

Создание запроса на получение сертификата

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

$ cryptcp -creatrqst -dn "список имён полей" -cont 'путь к контейнеру' .csr 
cryptcp -creatrqst \ -dn "E=ivanov@mail.mail,CN=Иванов Иван Иванович,SN=Иванов,G=Иван Иванович,C=RU,L=Калининград,ST=39 Калининградская обл.,street=Пр-т Победы 14 кв.3" \ -provtype 80 -nokeygen \ -cont '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta' \ -certusage "1.3.6.1.5.5.7.3.4,1.3.6.1.5.5.7.3.2" jacarta.req CryptCP 5.0 (c) "КРИПТО-ПРО", 2002-2018. Утилита командной строки для подписи и шифрования файлов. Запрос успешно создан и сохранен в файле. [ErrorCode: 0x00000000]

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

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

$ certmgr -inst -file jacarta.cer -store uMy -cont '\\.\Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00\Jacarta' -inst_to_cont Installing: ============================================================================= 1------- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : E=ivanov@mail.mail Serial : 0x120032E7B852F4CC6681F6887500000032E7B8 SHA1 Hash : 33ba9e77ead5e56c01c71c32e53241b8904f8688 SubjKeyID : 860b17ff1114be40161396a5d536ce3dd19bb2f7 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2012 (512 bits) Not valid before : 27/02/2019 18:56:15 UTC Not valid after : 27/05/2019 19:06:15 UTC PrivateKey Link : No CA cert URL : http://testca.cryptopro.ru/CertEnroll/test-ca-2014_CRYPTO-PRO%20Test%20Center%202.crt OCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srf CDP : http://testca.cryptopro.ru/CertEnroll/CRYPTO-PRO%20Test%20Center%202.crl Extended Key Usage : 1.3.6.1.5.5.7.3.4 1.3.6.1.5.5.7.3.2 =============================================================================

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

# /opt/cprocsp/bin/amd64/certmgr -inst -file cc.cer -store uRoot Installing: ============================================================================= 1------- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Serial : 0x2B6E3351FD6EB2AD48200203CB5BA141 SHA1 Hash : 046255290b0eb1cdd1797d9ab8c81f699e3687f3 SubjKeyID : 15317cb08d1ade66d7159c4952971724b9017a83 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 05/08/2014 13:44:24 UTC Not valid after : 05/08/2019 13:54:03 UTC PrivateKey Link : No ============================================================================= [ErrorCode: 0x00000000]

ПО JaCarta (Athena IDProtect)

Установка ПО JaCarta

  1. Скачать пакет с ПО и драйверами с официального сайта aladdin-rd.ru — http://www.aladdin-rd.ru/support/downloads/39875/
  2. Распаковать архив и установить из него два пакета idprotectclient и idprotectclientlib (x86_64): apt-get install idprotectclient*.x86_64.rpm
  3. Из меню доступны программы (пункт «Athena IDProtect Client»):
  • IDProtect Manager — просмотр информации о токене, импорт/экспорт сертификатов: IDProtect Manager
  • IDProtec PINTool — смена ПИН-кодов: IDProtect PINTool

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *