(2022-12-12 11:09:18 отредактировано Volkov_S)

Bluetooth-рутокен и Аврора ОС 4.0.2 с cryptopro.csp-5.0.12600

Здравствуйте!

Не удается считать данные с Bluetooth-Рутокена на устройстве с Аврора ОС.

Токен: Aktiv Rutoken ECP BT - bluetooth-бэйджик с тиснением "РУТОКЕН" на корпусе, с аккумулятором, кнопкой включения/выключения с красным и синим светодиодами, + разъем micro-usb для зарядки и подключения по USB.
https://forum.rutoken.ru/uploads/images/2022/12/0a306af41c9b11f2bd7497227f0134e2.jpg


Графическое приложение CPTools на Ubuntu на токене определяет 3 контейнера.
Вот вывод консольной команды:

$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Using slot 0 with a present token (0x0)
Public Key Object; GOSTR3410 
  PARAMS OID: 06072a850***
  VALUE:      d57dfe6f2***
              76f5406d1***
  label:      
  ID:         056ac71df***
  Usage:      verify
Certificate Object; type = X.509 cert
  label:      Rutoken Plugin
  ID:         056ac71d***

Устройство: INOI P4903, Аврора 4.0.2.175(Балаково).
На устройстве установлены следующие пакеты:

[root@INOIP4903 defaultuser]# pkcon search pcsc
Поиск по подробной информации                                                                                                                                                            
Запуск                                                                                                                                                                                                       
Обновление списка приложений                                                                                                                                                             
Запрос                                                                                                                                                                                                       
Завершено                                                                                                                                                                                                
Установлен    ifd-rutokens-1.0.7-1.2.8.omp.armv7hl (installed)                Aktiv Co Rutoken S driver
Установлен    pcsc-lite-1.9.2-1.3.2.omp.armv7hl (installed)                   PC/SC Lite smart card framework and applications
Установлен    pcsc-lite-ccid-1.4.34-1.2.8.omp.armv7hl (installed)             Generic USB CCID smart card reader driver
Установлен    pcsc-lite-ccid-debuginfo-1.4.34-1.2.8.omp.armv7hl (installed)    Debug information for package pcsc-lite-ccid
Установлен    pcsc-lite-debuginfo-1.9.2-1.3.2.omp.armv7hl (installed)         Debug information for package pcsc-lite
Установлен    pcsc-lite-devel-1.9.2-1.3.2.omp.armv7hl (installed)             PC/SC Lite development files
Установлен    pcsc-lite-libs-1.9.2-1.3.2.omp.armv7hl (installed)              PC/SC Lite libraries
Установлен    ru.cryptopro.csp-5.0.12600-4.armv7hl (installed)                CryptoPro CSP Aurora. Build 12600.

, активирована лицензия для криптопро.

Токен к устройству пытался подключать отдельно по bluetooth, отдельно по USB, одновременно по bluetooth и USB.

На устройстве в приложении CryptoPro CSP данные с токена не отображаются, всегда отображается только HDIMAGE/NO_UNIQUE без контейнеров.

Также данные с токена не удается обнаружить используя следующий код (обнаруживается только HDIMAGE/NO_UNIQUE):

HCRYPTPROV hProvider = 0;
if(CryptAcquireContext(&hProvider, nullptr, nullptr, PROV_GOST_2001_DH, CRYPT_VERIFYCONTEXT)) 
{
    DWORD readerDataLength = 0;
    if(CryptGetProvParam(hProvider, PP_ENUMREADERS, nullptr, &readerDataLength, CRYPT_MEDIA | CRYPT_FIRST)) 
    {
        BYTE *readerInfo = static_cast<BYTE *>(malloc(readerDataLength));
        if(readerInfo) 
        {
            for(BYTE searchFlags = CRYPT_MEDIA | CRYPT_FIRST; true; searchFlags = CRYPT_MEDIA) 
            {
                memset(readerInfo, 0, readerDataLength);
                if(CryptGetProvParam(hProvider, PP_ENUMREADERS, readerInfo, &readerDataLength, searchFlags)) 
                {
                    // ... handle reader
                }
                else {
                    DWORD errorCode = GetLastError();
                    if(errorCode != ERROR_NO_MORE_ITEMS)
                        qCritical() << "Can`t get reader info, error code:" << errorCode;
                    break;
                }
            }
            free(readerInfo);
        }
    }
    CryptReleaseContext(hProvider, 0);
}

В проекте тестового приложения:
В yaml-файле прописал такую зависимость:

Requires:
  - libpcsclite.so.1

В desktop-файле прописал такие разрешения:

[X-Sailjail]
Permissions=Bluetooth;PublicDir

Подскажите, как подключить Рутокен к устройству на Аврора ОС и считать с него данные?

---------------------
Update 1:
Следуя шагам в посте https://www.cryptopro.ru/forum2/default … post127022 на форуме криптопро:
После установки пакета usbutils удалось проверить, что сам токен виден системой через команду lsusb:

[root@INOIP4903 defaultuser]# pkcon install usbutils
Сопоставление                                                                                                                                                                                         
Запрос                                                                                                                                                                                                       
Проверка изменений                                                                                                                                                                                
Завершено                                                                                                                    [                                                                  ] (0%)  
Следующие пакеты должны быть установлены:
 usbutils-014+git1-1.2.9.omp.armv7hl    Linux USB utilities
Продолжить с этими изменениями? [N/y] y
Установка                                                                                                                                                                                                 
Запуск                                                                                                                                                                                                       
Запрос                                                                                                                                                                                                      
Разрешение зависимостей                                                                                                                                                                     
Установка пакетов                                                                                                                                                                                 
Загрузка пакетов                                                                                                                                                                                   
Установка пакетов                                                                                                                                                                                 
Завершено                                                                                                                                                                                                
[root@INOIP4903 defaultuser]# 
[root@INOIP4903 defaultuser]# lsusb
Bus 001 Device 002: ID 0a89:0030 Aktiv Rutoken ECP
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Не знаю, как запускать сервисы на Авроре, но, похоже, проблема в службе pcscd:

[defaultuser@INOIP4903 ~]$ /usr/libexec/ru.cryptopro.csp/bin/csptest -card -enum -v -v
CPRO_VAR_PATH not set, using defaults
/home/defaultuser found!
/home/defaultuser/Public found!
/home/defaultuser/Public/.config/ found!
/home/defaultuser/Public/.config/cprocsp/ found!
/home/defaultuser/Public/.config/cprocsp//users found!
/home/defaultuser/Public/.config/cprocsp//users/stores found!
/home/defaultuser/Public/.config/cprocsp//keys found!
/home/defaultuser/Public/.config/cprocsp//tmp found!
/home/defaultuser/Public/.config/cprocsp//dsrf found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db1 found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db2 found!
ERROR: SCardEstablishContext()
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,000 sec
[ErrorCode: 0x8010001d]

---------------------
Update 2:

[defaultuser@INOIP4903 ~]$ /usr/libexec/ru.cryptopro.csp/bin/csptest -keyset -enum_container -verifycontext -fqcn
CPRO_VAR_PATH not set, using defaults
/home/defaultuser found!
/home/defaultuser/Public found!
/home/defaultuser/Public/.config/ found!
/home/defaultuser/Public/.config/cprocsp/ found!
/home/defaultuser/Public/.config/cprocsp//users found!
/home/defaultuser/Public/.config/cprocsp//users/stores found!
/home/defaultuser/Public/.config/cprocsp//keys found!
/home/defaultuser/Public/.config/cprocsp//tmp found!
/home/defaultuser/Public/.config/cprocsp//dsrf found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db1 found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db2 found!
CSP (Type:80) v5.0.10011 KC1 Release Ver:5.0.12600 OS:Linux CPU:ARM FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 28855219
OK.
Total: SYS: 0,020 sec USR: 0,260 sec UTC: 0,280 sec
[ErrorCode: 0x00000000]

Поиск pcscd ничего не дает:

[defaultuser@INOIP4903 ~]$ pkcon search pcscd
Поиск по подробной информации                                                                                                                                                            
Запуск                                                                                                                                                                                                       
Запрос                                                                                                                                                                                                       
Завершено                                                                                                                                                                                                

Re: Bluetooth-рутокен и Аврора ОС 4.0.2 с cryptopro.csp-5.0.12600

Volkov_S, здравствуйте!

Увы, но на Авроре пока нет драйвера, через который можно было бы работать с  Рутокен ЭЦП Bluetooth по Bluetooth-каналу.

Также хотим отметить, что продукт Рутокен ЭЦП Bluetooth сейчас находится на завершающей стадии своего жизненного цикла.
Для подписания по беспроводному каналу есть более современный продукт - Рутокен ЭЦП 3.0 NFC.

Насколько нам известно, КриптоПро CSP на Авроре не умеет работать с PKCS#11 через нашу библиотеку rtpkcs11ecp (через pkcs#11 провайдер).

Но можно попробовать включить «старый» механизм работы с такими ключами.  Но данный механизм не развивается.

По умолчанию в конфиге провайдера на Авроре его работа включена. Чтобы включить нужно добавить:

EnableNativeTokenCryptMode = 1
# EnableNativeTokenCryptMode = 1 включает режим неизвлекаемой криптографии без PKCS#11

EnableNativeTokenPkcsMode = 1
# EnableNativeTokenPkcsMode = 1 включает режим чтения PKCS#11-ключей на Рутокен-носителях
 

Альтернатива - использовать для работы с PKCS#11-обхектами Рутокеy SDK.

Re: Bluetooth-рутокен и Аврора ОС 4.0.2 с cryptopro.csp-5.0.12600

Все же удалось подключить Bluetooth-Рутокен в Аврора ОС 4.0.2 по USB и считать с него данные:

  • Под root-ом установить пакет usbutils (если в системе отсутствует lsusb):

[root@INOIP4903 defaultuser]# pkcon install usbutils
Сопоставление                                                                                                                                                                                  
Проверка изменений                                                                                                                                                                         
Завершено                                                                                                               [================================================================] (100%)  
Следующие пакеты должны быть установлены:
 python3-base-3.8.11+git3-1.2.10.omp.armv7hl    Python3 Interpreter
 python3-libs-3.8.11+git3-1.2.10.omp.armv7hl    Python Interpreter shared library
 usbutils-014+git1-1.2.9.omp.armv7hl    Linux USB utilities
Продолжить с этими изменениями? [N/y] y
Установка                                                                                                                                                                                          
Запуск                                                                                                                                                                                                
Запрос                                                                                                                                                                                               
Разрешение зависимостей                                                                                                                                                              
Установка пакетов                                                                                                                                                                          
Загрузка пакетов                                                                                                                                                                            
Установка пакетов                                                                                                                                                                          
Завершено
  • Проверить видимость токена в системе:

[defaultuser@INOIP4903 ~]$ lsusb
Bus 001 Device 003: ID 0a89:0030 Aktiv Rutoken ECP
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Проверить, установлены ли пакеты ifd-rutokens, pcsc-lite, pcsc-lite-ccid и pcsc-lite-libs:

[defaultuser@INOIP4903 ~]$ pkcon search pcsc
Поиск по подробной информации                                                                                                                                                     
Запуск                                                                                                                                                                                                
Обновление списка приложений                                                                                                                                                      
Запрос                                                                                                                                                                                                
Завершено                                                                                                                                                                                          
Установлен  ifd-rutokens-1.0.7-1.2.8.omp.armv7hl (installed)                Aktiv Co Rutoken S driver
Доступен    pcsc-lite-1.9.2-1.3.2.omp.armv7hl (installed)                   PC/SC Lite smart card framework and applications
Установлен  pcsc-lite-ccid-1.4.34-1.2.8.omp.armv7hl (installed)             Generic USB CCID smart card reader driver
Доступен    pcsc-lite-ccid-debuginfo-1.4.34-1.2.8.omp.armv7hl (omp)         Debug information for package pcsc-lite-ccid
Доступен    pcsc-lite-debuginfo-1.9.2-1.3.2.omp.armv7hl (omp)               Debug information for package pcsc-lite
Доступен    pcsc-lite-devel-1.9.2-1.3.2.omp.armv7hl (omp)                   PC/SC Lite development files
Установлен  pcsc-lite-libs-1.9.2-1.3.2.omp.armv7hl (installed)              PC/SC Lite libraries
  • Под root-ом установить недостающие из пакетов ifd-rutokens, pcsc-lite, pcsc-lite-ccid и pcsc-lite-libs:

[root@INOIP4903 defaultuser]# pkcon install pcsc-lite
Сопоставление                                                                                                                                                                                  
Проверка изменений                                                                                                                                                                         
Завершено                                                                                                               [================================================================] (100%)  
Следующие пакеты должны быть установлены:
 pcsc-lite-1.9.2-1.3.2.omp.armv7hl    PC/SC Lite smart card framework and applications
Продолжить с этими изменениями? [N/y] y
Установка                                                                                                                                                                                          
Запуск                                                                                                                                                                                                
Запрос                                                                                                                                                                                               
Разрешение зависимостей                                                                                                                                                              
Установка пакетов                                                                                                                                                                          
Загрузка пакетов                                                                                                                                                                            
Установка пакетов                                                                                                                                                                          
Завершено
  • Если доустанавливали недостающие пакеты, то необходимо перезагрузить устройство (для перезапуска нужных служб)

  • Проверить видимость токена средствами Крипто-Про:

[defaultuser@INOIP4903 ~]$ /usr/libexec/ru.cryptopro.csp/bin/csptest -card -enum -v -v
CPRO_VAR_PATH not set, using defaults
/home/defaultuser found!
/home/defaultuser/Public found!
/home/defaultuser/Public/.config/ found!
/home/defaultuser/Public/.config/cprocsp/ found!
/home/defaultuser/Public/.config/cprocsp//users found!
/home/defaultuser/Public/.config/cprocsp//users/stores found!
/home/defaultuser/Public/.config/cprocsp//keys found!
/home/defaultuser/Public/.config/cprocsp//tmp found!
/home/defaultuser/Public/.config/cprocsp//dsrf found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db1 found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db2 found!
Aktiv Rutoken ECP 00 00
  Card present, ATR=3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1 
  Unknown applet
Total: SYS: 0,000 sec USR: 0,000 sec UTC: 0,200 sec
[ErrorCode: 0x00000000]

      или

[defaultuser@INOIP4903 ~]$ /usr/libexec/ru.cryptopro.csp/sbin/cpconfig -hardware reader -view
CPRO_VAR_PATH not set, using defaults
/home/defaultuser found!
/home/defaultuser/Public found!
/home/defaultuser/Public/.config/ found!
/home/defaultuser/Public/.config/cprocsp/ found!
/home/defaultuser/Public/.config/cprocsp//users found!
/home/defaultuser/Public/.config/cprocsp//users/stores found!
/home/defaultuser/Public/.config/cprocsp//keys found!
/home/defaultuser/Public/.config/cprocsp//tmp found!
/home/defaultuser/Public/.config/cprocsp//dsrf found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db1 found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db2 found!

Nick name: HDIMAGE
Connect name: 
Reader name: HDD key storage

Nick name: Aktiv Rutoken ECP 00 00
Connect name: 
Reader name: Aktiv Rutoken ECP 00 00

      или в приложении CryptoPro CSP:

https://forum.rutoken.ru/uploads/images/2022/12/af36d5eb9c27034af7c8f8efc1f961c5.jpg


  • Проверить наличие контейнеров на устройстве:

[defaultuser@INOIP4903 ~]$ /usr/libexec/ru.cryptopro.csp/bin/csptest -keyset -enum_container -verifycontext -fqcn
CPRO_VAR_PATH not set, using defaults
/home/defaultuser found!
/home/defaultuser/Public found!
/home/defaultuser/Public/.config/ found!
/home/defaultuser/Public/.config/cprocsp/ found!
/home/defaultuser/Public/.config/cprocsp//users found!
/home/defaultuser/Public/.config/cprocsp//users/stores found!
/home/defaultuser/Public/.config/cprocsp//keys found!
/home/defaultuser/Public/.config/cprocsp//tmp found!
/home/defaultuser/Public/.config/cprocsp//dsrf found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db1 found!
/home/defaultuser/Public/.config/cprocsp//dsrf/db2 found!
CSP (Type:80) v5.0.10010 KC1 Release Ver:5.0.12500 OS:Linux CPU:ARM FastCode:NoHardwareSupport.
AcquireContext: OK. HCRYPTPROV: 32873395
\\.\HDIMAGE\MyTest_01
\\.\Aktiv Rutoken ECP 00 00\sal***
\\.\Aktiv Rutoken ECP 00 00\fat***
\\.\Aktiv Rutoken ECP 00 00\Gai***
\\.\Aktiv Rutoken ECP 00 00\pkcs_key_02bb
OK.
Total: SYS: 0,040 sec USR: 0,270 sec UTC: 0,700 sec
[ErrorCode: 0x00000000]

Re: Bluetooth-рутокен и Аврора ОС 4.0.2 с cryptopro.csp-5.0.12600

Volkov_S, большое спасибо за подробную инструкцию!