
У меня есть SafeNet 5100 eToken, который я использую для подписи кода и генерации хэшей. Этот токен был недавно перемещен на сервер virtualhere, чтобы разрешить использование токена USBIP. Это отлично работает в Windows, но не при использовании контейнерной среды Ubuntu.
Я запускаю среду в privileged
режиме, затем вхожу в интерактивный сеанс с помощью, docker exec -it my-container bash
затем я использую виртуальный клиент here, чтобы найти и подключить мой удаленный ключ безопасности. Я могу видеть ключ, подключенный с помощьюlsusb
root@6e344d5cdc42:/# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux 5.15.146.1-microsoft-standard-WSL2 vhci_hcd USB/IP Virtual Host Controller
Bus 001 Device 008: ID 0529:0620 SafeNet Token JC
Bus 001 Device 001: ID 1d6b:0002 Linux 5.15.146.1-microsoft-standard-WSL2 vhci_hcd USB/IP Virtual Host Controller
Насколько я понимаю, производители токена распространяют pkcs11
реализации, которые я скачал и установил отсюдаhttps://www.globalsign.com/en/safenet-drivers/USB/10.8/GlobalSign-SAC-Ubuntu-2204.zip
Далее я пытаюсь получить доступ к своему токену, используя тестовый скрипт на Python:
if __name__ == "__main__":
import sys
import os
print("Testing PKCS11 install ...")
print("searching for pkcs11 lib under variable PKCS11")
lib = os.environ.get("PKCS11")
print(f"Found: {lib}")
if not os.path.exists(lib):
print("L + bozo")
print("Your lib cannot be found double check your path")
sys.exit(1)
pkcs11 = PyKCS11.PyKCS11Lib()
pkcs11.load(lib)
info = pkcs11.getInfo()
print("_" * 80)
print("MANUFACTURER ID:", info.manufacturerID)
print(info)
print("_" * 80)
slots = pkcs11.getSlotList()
for slot in slots:
print(f"Found [{slot}]")
print(pkcs11.getTokenInfo(slot))
Этот скрипт не может найти мой USB, я также пробовал opensc-tools
и pykcs11-tools
получить доступ к моему USB. Ни один из них не распознал подключенный токен безопасности.
Стоит также отметить, что этот же скрипт Python способен находить и использовать мой удаленно подключенный токен в среде Windows.
Я не знаю, куда идти дальше. Любая помощь будет оценена по достоинству.