Привет и спасибо, что нашли время прочитать это.
Проблема:
У меня есть 4 токен-устройства с одинаковой моделью и одним именем, я полагаюсь на идентификатор слота (и серийный номер), чтобы определить, какое из них использовать. После 5 месяцев работы без проблем нам пришлось перезапустить сервер (плановое обслуживание), и мы обнаружили, что идентификатор слота изменился.
TOKEN BEFORE NOW USB PORT
Token 1 Slot 0 Slot 1 0
Token 2 Slot 1 Slot 0 1
Token 3 Slot 2 Slot 3 2
Token 4 Slot 3 Slot 2 3
Шаги, пытающиеся решить проблему:
Отключение каждого устройства и оставление только «токена 1» подключенным, получает слот 0, но как только я подключаю «токен 2», он меняется на слот 1 и оставляет «токен 2» как слот 0 и токен 1 как слот 1.
Я пытался перезапустить систему udev, чтобы увидеть, что это как-то связано с порядком инициализации, но это не имеет никакого значения. Глядя в Интернет, похоже, что простой перезапуск udev не всегда работает с проблемами USB (https://askubuntu.com/a/178078).
Перезапуск каждой службы, связанной с токеном, opensc или usb, не имеет никакого значения.
Чего я пытаюсь достичь:
Я использую openssl для подписи некоторых документов. Он меняется от токена к токену в зависимости от пользователя. Итак, я использую:
openssl [ARGS] -inkey slot_X-id_XXXXXXXXXXXXXXXX [MORE ARGS]
Мне пришлось обновить слоты, чтобы отразить каждого пользователя. Это просто небольшая выпуклость, с которой я без проблем справляюсь каждые 6 месяцев (когда мы проводим плановое обслуживание), но я хотел бы ссылаться на токены по серийному номеру или последовательному способу подключения / отключения устройств и получения правильного слота. порядок.
Я знаю, что есть схема URI, которая разрешена в параметре inkey (https://tools.ietf.org/html/rfc7512), но мне не удалось заставить его работать.
Также приветствуется любая информация, помогающая мне решить эту проблему.
Дополнительная информация: Не думаю, что это важно, но вот оно:
**Server:**
OS: Linux (Ubuntu Server 14.06)
**Tokens:**
Slot 0 (0x0): AKS ifdh [eToken 5110 SC] 01 00
token label : MyDevice
token manufacturer : SafeNet, Inc.
token model : eToken
token flags : rng, login required, PIN initialized, token initialized, other flags=0x200
hardware version : 12.0
firmware version : 12.0
serial num : XXXXXXXX
**Inside each Token:**
Using slot 0 with a present token (0x0)
Certificate Object, type = X.509 cert
label:
Certificate Object, type = X.509 cert
label:
Certificate Object, type = X.509 cert
label: le-XXXXXXXX-XXXX-XXXX-XXXXX-XXXXXXXXXXXX
ID: XXXXXXXXXXXXXXXX
**OpenSSL Engine config**
[openssl_def]
engines = engine_section
[engine_section]
pkcs11 = pkcs11_section
[pkcs11_section]
engine_id = pkcs11
dynamic_path = /usr/lib/engines/engine_pkcs11.so
MODULE_PATH = /usr/lib/libeTPkcs11.so
Соответствует из списка рассылки lipb11 о том, что идентификатор слота не является постоянным, чтобы разрешить горячее подключение https://sourceforge.net/p/opensc/mailman/message/31235423/