在 Docker 容器中使用安全性令牌

在 Docker 容器中使用安全性令牌

我有一個 SafeNet 5100 eToken,用於簽署程式碼並產生哈希值。該令牌最近被移至 virtualhere 伺服器,以支援 USBIP 使用該令牌。這在 Windows 上效果很好,但在使用容器化的 ubuntu 環境時效果不佳。

我以模式啟動環境privileged,然後進入互動式會話,docker exec -it my-container bash然後使用虛擬客戶端尋找並連接我的遠端安全性金鑰。我可以看到使用連接的密鑰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 環境中找到並使用我的遠端連線令牌。

我真的不知道從這裡該去哪裡。任何幫助,將不勝感激。

相關內容