
Eu tenho um eToken SafeNet 5100 que uso para assinar código e gerar hashes. Este token foi movido recentemente para um servidor virtualhere para permitir o uso USBIP do token. Isso funciona muito bem no Windows, mas não ao usar um ambiente Ubuntu em contêiner.
Eu inicio o ambiente no privileged
modo, entro em uma sessão interativa e docker exec -it my-container bash
uso o cliente virtual aqui para encontrar e conectar minha chave de segurança remota. Posso ver a chave 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
Pelo que entendi, os fabricantes do token distribuem pkcs11
implementações que baixei e instalei aquihttps://www.globalsign.com/en/safenet-drivers/USB/10.8/GlobalSign-SAC-Ubuntu-2204.zip
Em seguida, tento acessar meu token usando meu script de teste 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))
opensc-tools
Este script não consegue encontrar meu USB, também tentei pykcs11-tools
acessar meu USB. Nenhum dos dois reconheceu um token de segurança conectado.
Também é importante notar que esse mesmo script python é capaz de localizar e usar meu token conectado remotamente em um ambiente Windows.
Eu realmente não sei para onde ir a partir daqui. Qualquer ajuda seria apreciada.