【问题标题】:WAS 6.1 IBMJCE provider generating wrong sha256withrsa signatureWAS 6.1 IBMJCE 提供程序生成错误的 sha256withrsa 签名
【发布时间】:2014-01-10 00:02:28
【问题描述】:

我们正在使用 Java 安全 API 生成数字签名 (PKCS7)。摘要算法为SHA-256,加密算法为RSA(SHA256withRSA)。

使用本地计算机中的 SunRsaSign 提供程序,在某些内容上生成了签名。 使用 WAS 8.0.0.2 中的 IBMJCE 提供程序,我们能够在相同的内容上生成相同的签名。

但是,问题是,我们不得不迁移回 WAS 6.1。现在,生成的签名与上述两种情况下生成的签名不同。我检查了所有 3 种情况下创建的消息摘要,所有 3 种情况下都是相同的,但在 WAS 6.1 的情况下签名不同。

在 SHA256withRSA 加密方面,WAS 6.1 的 IBMJCE 提供程序是否存在任何已知问题?任何指针将不胜感激。谢谢

【问题讨论】:

  • +1 用于检查摘要是否相同。
  • 您检查了整个 CMS 格式还是只检查了 PKCS#1 格式?你生成哈希的依据是什么?
  • 我检查了整个 CMS 格式 (PKCS#7)。只有最后 4 行不同。我知道签名中不同的部分是加密摘要,即在 SIGNING_TIME 之后的部分。 (我一直使用与 SIGNING_TIME_OID 相同的日期/时间)。
  • 我尝试使用 Signature.getInstanceOf("SHA256withRSA","SunRsaSign") 创建 Signature 实例,因为问题似乎出在 IBMJCE 提供程序上。但是在 Websphere 6.1 中找不到 SunRsaSign 我知道我们必须在 Webshphere_home 的 Java/jre/lib/security 文件夹的 java.security 文件中创建 sunrsasign 条目。但是我在 Webshphere 中根本找不到 sun.security.rsa 包。
  • 显然,我能够使用 WAS 6.1.0.35 生成正确的签名。早些时候它是 6.1.0.25。还不知道这是否是因为缺少任何服务器策略的任何错误。谢谢大家

标签: java encryption websphere-6.1


【解决方案1】:

真的有问题吗?据我所知,这必须适用

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

不要求所有签名必须相同。那么你真的对这些签名的验证有问题吗?

【讨论】:

    【解决方案2】:

    我们遇到了同样的问题,我们强迫 Webspshere 使用 SUNJCE。步骤如下。

    所以在 IBM Websphere 控制台中转到 应用服务器 > 服务器 > 进程定义 > Java 虚拟机

    查找通用 JVM 参数并添加以下内容。

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

    然后复制

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

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

    改变

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

    通过将以下 Sun 提供程序添加到 java.security 文件中的提供程序列表中。

    #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
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-02
      • 2018-07-25
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多