0

Java アプリケーションからの署名と暗号化に HSM (ハードウェア セキュリティ モジュール) を使用しています。次のエントリを使用して、java.security プロパティ ファイルを使用して HSM を JVM にプラグインしました。

security.provider.11=sun.security.pkcs11.SunPKCS11 D:/security/safenet.cfg

最近は問題なく動作していましたが、突然次のようなエラーが発生しました。

java.security.SignatureException: RSASignature::engineSign sun.security.pkcs11.P11Key$P11PrivateKey cannot be cast to java.security.interfaces.RSAPrivateKey

Google で十分な検索を行いましたが、根本的な原因を特定できませんでした。

どんな助けにも感謝します

ありがとう

4

1 に答える 1

1

また、同じ問題が発生しました。Signing インスタンス取得時のプロバイダ名を指定します。HSM を使用して署名するコードが呼び出されると、同じ署名アルゴリズムを実装する別のプロバイダー [Security.insertProvider] を追加する別のコードがアプリケーションに含まれる場合があります。署名するときに、PKCS11 の秘密キー ハンドラーのパラメーターを渡しますが、プロバイダーは RSA の別のキー ハンドラーを想定しています。解決策: HSM 署名インスタンスを取得したら、署名アルゴリズムとともにセキュリティ プロバイダーを指定します。

于 2015-04-17T06:06:58.613 に答える