PKCS#11
PKCS#11 とは何ですか?
PKCS#11Cryptoki と呼ばれる標準 C API で、ベンダー固有のドライバに依存せずに HSM やスマートカードなどの暗号トークンをアプリケーションから利用できるようにする。
PKCS#11(公開鍵暗号標準第 11 番)は当初 RSA Laboratories により策定され、現在は OASIS が管理する規格で、暗号トークンへアクセスするためのプラットフォーム非依存の C インターフェース「Cryptoki」を定義します。トークンはスロット、セッション、オブジェクト(鍵・証明書・データ)を公開し、C_Sign、C_Encrypt、C_Wrap、C_DeriveKey などの処理はデバイス内部で実行されるため、秘密鍵は外部に出ません。OpenSSL の pkcs11-provider を介した TLS サーバー、PKI、コード署名パイプライン、KMIP クライアントなどから HSM・スマートカード・TPM を扱う事実上の標準です。最新の PKCS#11 v3.1 では Ed25519 や耐量子計算機暗号などが追加されました。
● 例
- 01
OpenSSL が pkcs11-provider を通じて YubiHSM 2 を呼び出し、TLS 証明書要求に署名する。
- 02
コード署名 CI が AWS CloudHSM 上の鍵を書き出さずに C_Sign を実行する。
● よくある質問
PKCS#11 とは何ですか?
Cryptoki と呼ばれる標準 C API で、ベンダー固有のドライバに依存せずに HSM やスマートカードなどの暗号トークンをアプリケーションから利用できるようにする。 サイバーセキュリティの 暗号 カテゴリに属します。
PKCS#11 とはどういう意味ですか?
Cryptoki と呼ばれる標準 C API で、ベンダー固有のドライバに依存せずに HSM やスマートカードなどの暗号トークンをアプリケーションから利用できるようにする。
PKCS#11 はどのように機能しますか?
PKCS#11(公開鍵暗号標準第 11 番)は当初 RSA Laboratories により策定され、現在は OASIS が管理する規格で、暗号トークンへアクセスするためのプラットフォーム非依存の C インターフェース「Cryptoki」を定義します。トークンはスロット、セッション、オブジェクト(鍵・証明書・データ)を公開し、C_Sign、C_Encrypt、C_Wrap、C_DeriveKey などの処理はデバイス内部で実行されるため、秘密鍵は外部に出ません。OpenSSL の pkcs11-provider を介した TLS サーバー、PKI、コード署名パイプライン、KMIP クライアントなどから HSM・スマートカード・TPM を扱う事実上の標準です。最新の PKCS#11 v3.1 では Ed25519 や耐量子計算機暗号などが追加されました。
PKCS#11 からどのように防御しますか?
PKCS#11 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
PKCS#11 の別名は何ですか?
一般的な別名: Cryptoki, PKCS11。
● 関連用語
- cryptography№ 461
ハードウェアセキュリティモジュール(HSM)
耐タンパー性を備えたハードウェア装置で、暗号鍵を生成・保管・利用するが、生の鍵素材を OS に露出させない。
- cryptography№ 1178
Trusted Platform Module(TPM)
TCG が標準化したセキュリティチップで、マザーボード実装またはファームウェアとして提供され、ハードウェアに根ざした鍵保管、リモート証明、計測起動を行う。
- cryptography№ 1054
スマートカード
クレジットカードサイズの本体にセキュアなマイクロコントローラを内蔵し、資格情報を保存して暗号演算を行うデバイス。接触型カードは ISO/IEC 7816 で規定される。
- cryptography№ 067
非対称鍵暗号
数学的に対応した鍵ペア(暗号化用の公開鍵と復号用の秘密鍵)を用い、事前の秘密共有なしに安全な通信を可能にする暗号方式。