Подробный гайд: pcsc_scan не видит Рутокен на Альт Линукс в ВМ zVirt - Часть 4

Подробный гайд, если pcsc_scan не видит Рутокен на Альт Линукс в ВМ zVirt. Разбор проброса USB, настройки udev, прав pcscd и анализа логов.

2026.10.18                  


Подробный гайд: pcsc_scan не видит Рутокен на Альт Линукс в ВМ zVirt - Часть 4Подробный гайд: pcsc_scan не видит Рутокен на Альт Линукс в ВМ zVirt - Часть 4

14. Если интерфейс не 0x0b, а 0xff или другой

Если в lsusb -v вы видите:

bInterfaceClass        0xff  Vendor Specific

то обычный pcsc-lite-ccid может не работать.


В этом случае нужно:

  1. Уточнить точную модель Рутокена.
  2. Посмотреть документацию Рутокен для этой модели под Альт Линукс.
  3. Проверить наличие специальных пакетов Рутокен.

Поиск в репозитории:

apt-cache search rutoken
apt-cache search aktiv
apt-cache search pkcs11


Если есть пакеты вроде librtpkcs11ecp или аналогичные, их используют уже после того, как устройство начнёт определяться. Но openct я бы не ставил просто так. Для современных Рутокенов, которые работают как CCID, он обычно не нужен и может конфликтовать.


15. Если конфигураций несколько

Проверьте:

sudo lsusb -v -d 0a89:0030 | grep -E 'bNumConfigurations|bConfigurationValue|bInterfaceClass'

Если bNumConfigurations больше одной, нужно понять, какая конфигурация содержит интерфейс 0x0b.

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

sudo lsusb -v -d 0a89:0030

Найдите блок:

Configuration Descriptor

и внутри него:

Interface Descriptor

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

echo N | sudo tee "$DEV/bConfigurationValue"

где N — номер нужной конфигурации из bConfigurationValue. Но это может не поддерживаться или привести к переподключению устройства. Если не уверены, лучше не делать без необходимости.


16. Проверка после исправления

После изменений повторите:

sudo systemctl stop pcscd pcscd.socket 2>/dev/null
sudo rm -rf /var/run/pcscd
sudo /usr/sbin/pcscd -afd

В логе pcscd нужно увидеть:

Looking for a driver for VID: 0x0A89, PID: 0x0030

Затем в отдельном терминале:

pcsc_scan

Ожидаемый результат примерно:

Reader 0: Aktiv Rutoken ECP 00 00
Card state: Card inserted

или:

Card state: Card removed

Если ридер появился, но карта не читается, снова смотрите dmesg, питание, автосон и проброс.

Также можно проверить:

opensc-tool -l

17. Если Рутокен нужен для подписи / КриптоПро / PKCS#11

pcsc_scan не зависит от opensc и PKCS#11-модулей. Он только показывает ридер.

Для работы с Рутокеном в криптографических сценариях обычно нужны пакеты Рутокен, например:

apt-cache search librtpkcs11ecp

Если пакет есть, можно установить:

sudo apt-get install librtpkcs11ecp

Затем найти модуль:

rpm -ql librtpkcs11ecp | grep librtpkcs11ecp.so

И проверить слоты:

pkcs11-tool --module /путь/к/librtpkcs11ecp.so --list-slots

Но это уже после того, как pcsc_scan увидит ридер.


18. Что собрать, если проблема останется

Для дальнейшей диагностики полезны выводы:

lsusb -t
sudo lsusb -v -d 0a89:0030
sudo dmesg | grep -Ei 'usb|0a89'
journalctl -b | grep -Ei 'usb|pcsc|udev|0a89'

Проверка sysfs:

DEV=$(grep -l 0a89 /sys/bus/usb/devices/*/idVendor 2>/dev/null | head -n1 | xargs -r dirname)
echo "DEV=$DEV"

if [ -n "$DEV" ]; then
    cat "$DEV/bConfigurationValue" 2>/dev/null
    cat "$DEV/authorized" 2>/dev/null
    cat "$DEV/speed" 2>/dev/null
    ls -d "$DEV":* 2>/dev/null

    for i in "$DEV":*; do
        echo "$i"
        cat "$i/bInterfaceClass" 2>/dev/null
    done
fi

Проверка udev:

if [ -n "$DEV" ]; then
    udevadm info --query=property --path="$DEV"
    for i in "$DEV":*; do
        echo "=== $i ==="
        udevadm info --query=property --path="$i" 2>/dev/null
    done
fi

И запуск pcscd:

sudo /usr/sbin/pcscd -afd

19. Краткий вывод по вашей ситуации

Самое вероятное направление:

  1. Рутокен в ВМ виден через lsusb, но не имеет корректного активного интерфейса Smart Card в /sys.
  2. Поэтому pcscd через libudev не получает его как устройство класса 0x0b.
  3. Нужно проверять:
    • вывод lsusb -v -d 0a89:0030;
    • dmesg;
    • /sys/bus/usb/devices;
    • проброс в zVirt;
    • тип USB-контроллера;
    • udev;
    • authorized;
    • SELinux/usbguard.

Правка Info.plist и установка openct пока не выглядят основным решением.


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


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта