我有一个 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 环境中查找并使用我的远程连接令牌。
我真的不知道从这里该去哪里。任何帮助,将不胜感激。