Verwenden eines Sicherheitstokens in einem Docker-Container

Verwenden eines Sicherheitstokens in einem Docker-Container

Ich habe einen SafeNet 5100 eToken, den ich zum Signieren von Code und zum Generieren von Hashes verwende. Dieser Token wurde kürzlich auf einen VirtualHere-Server verschoben, um die USBIP-Verwendung des Tokens zu ermöglichen. Dies funktioniert unter Windows hervorragend, jedoch nicht bei Verwendung einer containerisierten Ubuntu-Umgebung.

Ich starte die Umgebung im privileged-Modus, öffne dann eine interaktive Sitzung mit und docker exec -it my-container bashbenutze dann den virtuellen Here-Client, um meinen Remote-Sicherheitsschlüssel zu finden und zu verbinden. Ich kann den verbundenen Schlüssel sehen mitlsusb

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

So wie ich es verstehe, vertreiben die Hersteller der Token pkcs11Implementierungen, die ich hier heruntergeladen und installiert habehttps://www.globalsign.com/en/safenet-drivers/USB/10.8/GlobalSign-SAC-Ubuntu-2204.zip

Als nächstes versuche ich, mit meinem Python-Testskript auf mein Token zuzugreifen:

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))

Dieses Skript kann meinen USB-Stick nicht finden. Ich habe auch versucht opensc-tools, pykcs11-toolsauf meinen USB-Stick zuzugreifen. Keiner von beiden hat ein angeschlossenes Sicherheitstoken erkannt.

Es ist auch erwähnenswert, dass dasselbe Python-Skript mein remote verbundenes Token in einer Windows-Umgebung finden und verwenden kann.

Ich weiß nicht wirklich, wie ich von hier aus weitermachen soll. Ich bin für jede Hilfe dankbar.

verwandte Informationen