5.3. スマートカードから証明書を使用して認証するアプリケーションの設定

アプリケーションでスマートカードを使用した認証は、セキュリティーを強化し、自動化を簡素化する可能性があります。

  • wget ネットワークダウンローダーでは、ローカルに保存された秘密鍵へのパスの代わりに PKCS #11 の URI を指定できるため、安全に保存された秘密鍵と証明書を必要とするタスク用のスクリプトの作成が容易になります。以下に例を示します。

    $ wget --private-key 'pkcs11:token=softhsm;id=%01;type=private?pin-value=111111' --certificate 'pkcs11:token=softhsm;id=%01;type=cert' https://example.com/

    詳細は、wget(1) の man ページを参照してください。

  • curl ツールで使用する PKCS #11 の URI は、以下のように指定します。

    $ curl --key 'pkcs11:token=softhsm;id=%01;type=private?pin-value=111111' --cert 'pkcs11:token=softhsm;id=%01;type=cert' https://example.com/

    詳細は、curl(1) の man ページを参照してください。

    注記

    PIN は、スマートカードに保存されているキーへのアクセスを制御するセキュリティー対策であり、設定ファイルにはプレーンテキスト形式の PIN が含まれているため、攻撃者が PIN を読み取れないように追加の保護を検討してください。たとえば、pin-source 属性を使用して、file: を指定できます。ファイルから PIN を読み込む URI。詳細については、RFC 7512:PKCS #11 URI Scheme Query Attribute Semantics を参照してください。コマンドパスを pin-source 属性の値として使用することには対応していないことに注意してください。

  • Web ブラウザーの Firefox は、p11-kit-proxy モジュールを自動的に読み込みます。つまり、システムで対応しているすべてのスマートカードが自動的に検出されます。TLS クライアント認証を使用した場合、その他に必要な設定はありません。また、サーバーがスマートカードを要求する際に、スマートカードの鍵が自動的に使用されます。

カスタムアプリケーションで PKCS #11 の URI の使用

アプリケーションが GnuTLS ライブラリーまたは NSS ライブラリーを使用する場合、PKCS #11 の URI は PKCS #11 の組み込みサポートで保証されます。また、OpenSSL ライブラリーに依存するアプリケーションは、openssl-pkcs11 エンジンが生成する暗号化ハードウェアモジュールにアクセスできます。

アプリケーションでスマートカードの秘密鍵を使用する必要があり、NSSGnuTLS、および OpenSSL は使用しない場合は、p11-kit を使用して PKCS #11 モジュールの登録を実装します。

関連情報

  • p11-kit(8) の man ページ