Web サイトからデータを取得するための Python アプリケーションを作成しています。アプリケーションは、リクエストを行うために CAC カードと PIN で認証 (HTTPS/SSL) する必要があります。
CAC カードから秘密鍵を取得できないため、 PyKCSのような PKCS #11 ラッパーを使用しているという私の仮定は正しいですか?
これを行うためのヒントやリソースはありますか?
Web サイトからデータを取得するための Python アプリケーションを作成しています。アプリケーションは、リクエストを行うために CAC カードと PIN で認証 (HTTPS/SSL) する必要があります。
CAC カードから秘密鍵を取得できないため、 PyKCSのような PKCS #11 ラッパーを使用しているという私の仮定は正しいですか?
これを行うためのヒントやリソースはありますか?
認証キーと署名キーは通常、カード上で生成され、どこかにエスクローできる/すべきである暗号化キーとは異なり、抽出できません。
M2Crypto.Engine を使用して USB トークンにアクセスするためのヘルプが必要を参照してください。M2Cryptoの例については、Python で Web サイトにアクセスするために PKCS#11 経由でスマート カードを使用する方法を説明しています。
ECA証明書が適切な代替品であるかどうかを調べてみます. たとえば、CAC および ECA 証明書を受け入れるサイトがあります。詳細情報: http://iase.disa.mil/pki/eca/certificate.html
あなたは正しいです。秘密鍵を安全に保つことが、スマート カードの全体的な目的です。アプリケーションが Windows で実行されている場合は、接続に WININET.DLL を使用してみることができます。正しいミドルウェアがインストールされていれば、CAC が有効なサイトへの認証を自動的に処理するはずです。