Usando um token de segurança em um contêiner docker

Usando um token de segurança em um contêiner docker

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 privilegedmodo, entro em uma sessão interativa e docker exec -it my-container bashuso 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 pkcs11implementaçõ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-toolsEste script não consegue encontrar meu USB, também tentei pykcs11-toolsacessar 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.

informação relacionada