Dockerコンテナでセキュリティトークンを使用する

Dockerコンテナでセキュリティトークンを使用する

コードに署名し、ハッシュを生成するために使用する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環境でリモート接続トークンを見つけて使用できることにも注目する価値があります。

ここでどこに行くべきかは本当にわかりません。どんな助けでも大変感謝します。

関連情報