PKCS#11
Cryptokiとも呼ばれる標準API。鍵をハードウェアの外に出さないまま、ソフトウェアがHSMやスマートカードに暗号処理を依頼できる。
PKCS#11はRSA Securityの公開鍵暗号標準(PKCS)に由来し、現在はOASISが仕様を管理している。インターフェースはCのライブラリで、アプリケーションがモジュールに署名、暗号化、鍵のラップを依頼する形をとる。鍵そのものはハンドルとして扱われ、モジュールの外へ出ることはほとんどない。HSMを使う意味はまさにそこにある。
標準は古く、癖も多い。同じフラグをベンダーごとに違う意味に解釈することがあり、HSMごとに独自の逸脱もある。PKCS#11の実務の多くは、関数を呼んだとき実際に何が起きるのかをベンダーのドキュメントから読み解く作業であり、それ自体がひとつの技能になっている。