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
エンジンが生成する暗号化ハードウェアモジュールにアクセスできます。
アプリケーションでスマートカードの秘密鍵を使用する必要があり、NSS
、GnuTLS
、および OpenSSL
は使用しない場合は、p11-kit
を使用して PKCS #11 モジュールの登録を実装します。
関連情報
-
p11-kit(8)
の man ページ