
私は、コードに署名してハッシュを生成するために使用する SafeNet 5100 eToken を持っています。このトークンは最近、トークンの USBIP 使用を可能にするために virtualhere サーバーに移動されました。これは 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 を見つけることができません。USB にアクセスしようとも試みましたがopensc-tools
、pykcs11-tools
接続されたセキュリティ トークンも認識されませんでした。
また、この同じ Python スクリプトは、Windows 環境でリモート接続されたトークンを見つけて使用できることも注目に値します。
ここからどこへ行けばよいのかよく分かりません。どなたか助けていただければ幸いです。