14

HSM (ハードウェア セキュリティ モジュール) を使用して XML ファイルの署名を作成したいと考えています。私は少し調査を行いましたが、今は少し混乱しています。

それらの質問を明確にしてください:

  1. JCEのキー ハンドルとはどういう意味ですか? 私はそれについて読んだことがありますが、それは単なるハンドルであり、キーは別の場所に保存されています。それはどうしてですか?私の理解では、キーをメモリにロードして使用するか、署名が HSM によって完全に行われ、結果のみが得られますよね?
  2. PKCS#11 標準は、署名が HSM で生成される方法を定義していますか? tokensについて読んだことがありますが、署名についてはよくわかりません。
  3. 私の HSM の機能リストには、JCE と PKCS#11 が別々に記載されています。どういう意味ですか?
  4. PKCS#11 が標準で、JCE はその標準を使用するクラスを定義していると思いました。JCE は独自のプロトコルを指定していますか?
4

1 に答える 1

25
  1. JCE のキー ハンドルとはどういう意味ですか?
    キー ハンドル (JCE、PKCS#11、またはその他のほとんどの暗号化 API 内) は、実際の値を確認せずにキーを使用できるようにする単なる参照です。これは良いことです: キーを安全な場所 ​​(HSM など) に永続的に保存し、キーがアプリケーション スペースである場合に発生する可能性があるように、誰もキーをコピーして持ち出すことができないという保証を付けることができます。ただし、物理的な金庫とは異なり、キー漏洩のセキュリティ リスクを負うことなく、暗号化操作を実行できます。

  2. PKCS#11 標準は、署名が HSM で生成される方法を定義していますか?
    PKCS#11 は、暗号トークン用の C API です。トークンは、そのような API によって記述されたサービスを提供するデバイスまたはプログラムの PKCS#11 抽象化です。API は、PKCS#11 トークン内のオブジェクトを使用して実行できる操作を定義します。一部のオブジェクトは機密ではなく、抽出できます (公開鍵など)。他のいくつかは敏感で、ハンドルを介してのみ使用できます。
    署名をサポートするオブジェクトへのハンドルがある場合は、C 関数C_Signを使用して、アプリケーションによって提供されるデータを認証するようトークンに要求できます。キーは HSM から離れません。

  3. 私の HSM の機能リストには、JCE と PKCS#11 が別々に記載されています。どういう意味ですか?
    HSM は、 Cryptographic Service Providerとしての資格を持つネイティブ ライブラリが付属しているという意味で JCE をサポートしています。
    C PKCS#11 API を提供するネイティブ ライブラリが付属しているという意味で、PKCS#11 をサポートします。

  4. PKCS#11 が標準だと思っていたので、JCE はその標準を使用するクラスを定義しています。JCE は独自のプロトコルを指定していますか?
    実際、PKCS#11 は標準です。ただし、C 以外の言語では直接使用できません。言語に互換性のあるものに変換するマッピング レイヤーが必要です。PKCS#11 ライブラリ (およびそれが抽象化する物理トークン) は、JCE プロバイダにマップできます。

ただし、JCE プロバイダーは PKCS#11 とは関係がない場合があります。

于 2012-10-17T18:12:00.310 に答える