2013-04-11 20 views
17

JavaセキュリティAPIを使用してデジタル署名(PKCS7)を生成しています。ダイジェストアルゴリズムはSHA-256で、暗号化アルゴリズムはRSA(SHA256withRSA)です。WAS 6.1不適切なsha256withrsa署名を生成するIBMJCEプロバイダ

ローカルマシンでSunRsaSignプロバイダを使用すると、一部のコンテンツに署名が生成されました。 WAS 8.0.0.2でIBMJCEプロバイダーを使用して、同じコンテンツに対して同じ署名を生成することができました。

ただし、問題は、WAS 6.1に移行する必要があることです。ここで生成された署名は、上記の2つの場合で生成された署名とは異なります。 3つのケースすべてで作成されたメッセージ・ダイジェストを確認しましたが、3つのケースすべてで同じですが、WAS 6.1の場合は署名が異なります。

SHA256withRSA暗号化に関するWAS 6.1のIBMJCEプロバイダに関する既知の問題はありますか?どんな指針も大変ありがとうございます。ありがとう

+3

ダイジェストをチェックするための+1は同一でした。 –

+0

CMS形式全体またはPKCS#1形式だけをチェックしましたか?あなたは何の上にハッシュを生成しましたか? –

+0

CMS形式(PKCS#7)全体を確認しました。最後の4行だけが異なっていました。私は、署名が異なる部分が暗号化されたダイジェストであることを理解しています。これはSIGNING_TIMEの後に来るものです。 (私はSIGNING_TIME_OIDと同じ日付/時刻を使用しています)。 –

答えて

1

本当に問題がありますか?私が知っているから、これは適用する必要があります

signature = sign(message) 
verify(signature) == message 

すべての署名が同じである必要はありません。あなたは本当にそれらの署名の検証に問題がありますか?

0

同じ問題があり、WebsphereにSUNJCEの使用を強制しました。ここに手順があります。

だからIBM Websphereのコンソールで、汎用JVM引数に アプリケーションサーバー>サーバー>プロセス定義> Java仮想マシン

ルックに移動し、次を追加します。

-DamCryptoDescriptor.provider=SunJCE -DamKeyGenDescriptor.provider=SunJCE 

はその後、java.securityファイルのプロバイダーのリストに次の日のプロバイダを追加することにより変更

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\security\java.security 

C:\Program Files\IBM\SDP\runtimes\base_v7\java\jre\lib\ext\sunjce_provider.jar 

C:\JAVA\jdk1.6.0_34\jre\lib\ext\sunjce_provider.jar 

をコピーしました。

#This will help Websphere to load 
security.provider.13=com.sun.crypto.provider.SunJCE 
security.provider.14=sun.security.provider.Sun 
security.provider.15=sun.security.rsa.SunRsaSign 
security.provider.16=sun.security.jgss.SunProvider 

希望します。

関連する問題