2017-04-26 125 views
2

的時間戳支持我在我的JAR文件的簽名下面的項由於其java版的SHA-256和SHA256withRSA在簽署jar文件

Timestamped by "CN=GlobalSign TSA for Advanced - G3 - 001-02, O=GMO GlobalSign K.K., C=JP" on Mo Apr 10 11:48:34 UTC 2017 
Timestamp digest algorithm: SHA-256 
Timestamp signature algorithm: SHA256withRSA, 2048-bit key 

我已經發現了SHA-256在時間戳摘要算法和時間戳簽名算法中的SHA256withRSA在java版本低於1.7.0_76的系統上運行jar文件(jar文件被無符號處理)時會導致問題。

有人可以告訴我在這兩種算法的哪些java版本在時間戳摘要和時間戳簽名上受支持嗎?

+0

如此友善,並在您投降後留下評論。謝謝! – Paul

+0

我不明白爲什麼這是倒票。這是一個非常重要的問題,在oracle網站上沒有答案。新的JRE需要SHA-256簽名,但是舊版Java中無法識別SHA-256。我們如何處理這種情況? – Istvan

+0

謝謝你有關java 1.9的提示。正如你所說SHA-1將很快被禁用(https://www.java.com/en/jre-jdk-cryptoroadmap.html)。 – Paul

回答

0

一個解決方案是不對jar文件進行時間戳記。 等待一些更好的建議...

1

Java版本低於1.7.0_76不支持SHA-256由https://bugs.openjdk.java.net/browse/JDK-8049480 時間戳引起的(包括的修復程序。1.7.0_76 http://www.oracle.com/technetwork/java/javase/2col/7u76-bugfixes-2389098.html

從「甲骨文的JRE和JDK密碼路線圖「,但SHA-1仍未計劃禁用代碼簽名。

所以我認爲現在最好的選擇(支持舊的Java版本)使用SHA-1作爲時間戳算法。 (使用下面8u101,7u111簽署OR使用上8u101,7u111以上的-tsadigestalg選項)

我已經測試jar文件與

Digest algorithm: SHA-256 
Signature algorithm: SHA256withRSA, 2048-bit key 
Timestamp digest algorithm: SHA-1 
Timestamp signature algorithm: SHA1withRSA, 2048-bit key 

做工精細簽署的Java 7,8,9 (ea + 174)

+0

我基本同意你的回答,謝謝。不過,我擔心什麼時候SHA-1最終會被java拋棄。當你在你的答案中寫下來並且在[link](https://stackoverflow.com/questions/41878258/java-9-deprecating-sha1-certificates-or-another-issue-at-work)中描述時,SHA -1現在不會被棄用。儘管如此,我們的軟件已推廣到許多客戶,我們希望避免不必要的更新。 – Paul