4.3. スマートカード上の証明書を使用して認証するアプリケーションの設定
アプリケーションでスマートカードを使用して認証することにより、セキュリティーが強化され、自動化が簡素化される場合があります。次の方法を使用して、Public Key Cryptography Standard (PKCS) #11 URI をアプリケーションに統合できます。
-
Firefox
Web ブラウザーは、p11-kit-proxy
PKCS #11 モジュールを自動的にロードします。つまり、システムで対応しているすべてのスマートカードが自動的に検出されます。TLS クライアント認証を使用する場合、追加のセットアップは必要ありません。サーバーが要求したときにスマートカードの鍵と証明書が自動的に使用されます。 -
アプリケーションが
GnuTLS
またはNSS
ライブラリーを使用している場合、PKCS #11 URI はすでにサポートされています。また、OpenSSL
ライブラリーに依存するアプリケーションは、openssl-pkcs11
パッケージによって提供されるpkcs11
エンジンを通じて、スマートカードを含む暗号化ハードウェアモジュールにアクセスできます。 -
スマートカード上の秘密鍵を操作する必要があり、
NSS
、GnuTLS
、OpenSSL
を使用しないアプリケーションは、特定の PKCS #11 モジュールの PKCS #11 API を使用するのではなく、p11-kit
API を直接使用して、スマートカードを含む暗号化ハードウェアモジュールを操作できます。 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/
また、
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/
注記PIN は、スマートカードに保存されている鍵へのアクセスを制御するセキュリティー対策であり、設定ファイルにはプレーンテキスト形式の PIN が含まれているため、攻撃者が PIN を読み取れないように追加の保護を検討してください。たとえば、
pin-source
属性を使用して、ファイルから PIN を読み取るためのfile:
URI を指定できます。詳細については、 RFC 7512: PKCS #11 URI Scheme Query Attribute Semantics を参照してください。コマンドパスをpin-source
属性の値として使用することには対応していないことに注意してください。
関連情報
-
システム上の
curl(1)
、wget(1)
、およびp11-kit(8)
man ページ