Перейти к содержанию

Подключение USB-токена и обнаружение смарт-карты

Обнаружение криптографического устройства происходит на нескольких уровнях: USB, PC/SC, модуль PKCS#11, слот токена и криптографические механизмы. Устройство может быть видно в lsusb, но оставаться недоступным приложению, если не установлен соответствующий модуль.

Шаг 1. Системное устройство

lsusb
journalctl -k -n 80 --no-pager

Виртуальные машины должны получать USB-устройство через корректное пробрасывание с хоста. Наличие USB VID/PID подтверждает обнаружение устройства, но не поддержку криптографических операций.

Шаг 2. PC/SC

rpm -q pcsc-lite pcsc-lite-ccid opensc
systemctl status pcscd.service pcscd.socket --no-pager

Если устройство требует PC/SC и служба не работает, проверьте её журнал. Включение выполняйте только после подтверждения, что PC/SC действительно нужен:

sudo systemctl enable --now pcscd.socket
journalctl -u pcscd.service -n 80 --no-pager

Некоторые токены используют собственный драйвер и не требуют PC/SC. Не настраивайте pcscd без необходимости.

Шаг 3. Модуль PKCS#11

p11-kit list-modules
pkcs11-tool --help | head -n 30

Затем задайте путь к библиотеке производителя (путь здесь пример, а не название обязательного файла):

MODULE=/usr/lib/pkcs11/opensc-pkcs11.so
pkcs11-tool --module "$MODULE" --list-slots
pkcs11-tool --module "$MODULE" --list-mechanisms

Список механизмов (например, CKM_GOSTR3410_2012_256) важнее названия устройства: именно по нему видно, какие операции доступны.

Шаг 4. Объекты на токене

pkcs11-tool --module "$MODULE" --list-objects --type cert

Не публикуйте отчёт без проверки: объекты могут содержать персональные данные держателя сертификата. Вывод механизма безопаснее, чем журнал операций с PIN.

Результат диагностики

Для документации фиксируем модель, модуль, перечень ГОСТ-механизмов и результаты операций на тестовом сертификате. PIN, PUK, закрытые ключи и содержимое служебных журналов авторизации не собираем.