Usar un token de seguridad en un contenedor acoplable

Usar un token de seguridad en un contenedor acoplable

Tengo un eToken SafeNet 5100 que uso para firmar código y generar hashes. Este token se movió recientemente a un servidor virtualhere para permitir el uso USBIP del token. Esto funciona muy bien en Windows, pero no cuando se utiliza un entorno Ubuntu en contenedores.

Inicio el entorno en privilegedmodo, luego entro en una sesión interactiva y docker exec -it my-container bashluego uso el cliente virtual aquí para buscar y conectar mi clave de seguridad remota. Puedo ver la clave conectada usandolsusb

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

Según tengo entendido, los fabricantes del token distribuyen pkcs11implementaciones que he descargado e instalado desde aquí.https://www.globalsign.com/en/safenet-drivers/USB/10.8/GlobalSign-SAC-Ubuntu-2204.zip

A continuación intento acceder a mi token usando mi script de prueba de 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))

Este script no puede encontrar mi USB, también lo intenté opensc-toolsy pykcs11-toolsaccedí a mi USB. Ninguno de los dos ha reconocido un token de seguridad conectado.

También vale la pena señalar que este mismo script de Python puede encontrar y usar mi token conectado de forma remota en un entorno de Windows.

Realmente no sé adónde ir desde aquí. Cualquier ayuda sería apreciada.

información relacionada