Java弃用SHA-1签名:使用SHA-256签名的正确方法是什么?

时间:2017-02-21 12:37:30

标签: java sha256 sign

根据Java's deprecation of SHA-1 signed code,我正在转换到SHA-256。但是,我不确定为了符合新要求,我是否应该明确请求-digestalg SHA-256(如果不是,则根据this向SHA-1发送sefaults)。 (旁注:虽然我的JKS中的公钥 - 私钥对是RSA,但我发现我还必须明确询问-sigalg SHA256withRSA。)

Java 9"早期访问"似乎只接受SHA1摘要算法,只要签名算法是SHA256withRSA。我搜索了这些确切术语的清晰解释(在上下文中......由jarsigner验证报告:"摘要算法","签名算法")/他们但是,没有太大的成功,会产生影响。

我定位的JRE是6或更高。在构建机器上也使用Java 6。

[LE]对我来说更令人困惑的是,即使摘要算法和签名算法都是SHA-1,似乎jarsigner(在Java 9中)验证了jar(阅读:没有提出任何抱怨)我使用SHA256证书的帐户。

[L.E。 2]有趣的是,签署Java 9没有提供任何自定义标志,并使用相同的JKS,所有内容都按预期签名:

Digest algorithm: SHA-256 Signature algorithm: SHA256withRSA, 2048-bit key

我非常认为这种行为强调了#34;正确的做法"而不是Java 6。这很可能成为这个问题的答案......一旦Java 9发布。

另一方面,Java Crypto Roadmap也宣布了针对Java 6,7,8的相同计划(Disable SHA-1 in certificate chains anchored by roots included by default in Oracle's JDK; local or enterprise CAs are not affected. Signed code that is timestamped before 2017-01-01 is not affected.)。

0 个答案:

没有答案