java - EV 代码签名极慢

标签 java code-signing jar-signing

自 2 月起,GlobalSign 只颁发 EV 代码签名证书。这意味着代码签名必须使用硬件 token (Safenet USB eTokens) 完成。

自从我不得不切换到 EV 代码签名后,我注意到签署应用程序的时间大大增加了。从使用常规 Java keystore 的几分钟到使用 eToken 的 40 多分钟。

根据 GlobalSign 网站,我应该按如下方式签署我的 jar :

jarsigner -keystore NONE -storetype PKCS11 -tsa http://timestamp.globalsign.com/scripts/timestamp.dll -providerClass sun.security.pkcs11.SunPKCS11 -providerArg eToken.config -storepass mypass myapp.jar myalias

我联系了 GlobalSign 支持,但他们无法进一步帮助我,因为签名确实有效......只是非常慢。

我尝试过的事情:

  • 替代 TSA
  • 在没有 TSA 的情况下签名
  • 将项目放在 jarsigner 位置的同一磁盘和分区上
  • 使用命令行而不是 maven 配置文件(在我的 IDE 中配置)

没有任何影响缓慢的签名。有没有人有其他想法或遇到过同样的问题?

最佳答案

尝试将 -sigalg SHA512withRSA 添加到您的 jarsigner 选项中。

问题似乎是,PKCS11 实际上是使用 token 来计算哈希值。 (如评论中所述 Java : PKCS11 SafeNet eToken 5110 : Slow; and How to code for EBICS signature mechanism A006? )

Gemalto SafeNet 5110 硬件仅支持 SHA256,因此设置 SHA512 会强制软件计算哈希值,从而大大加快速度。

关于java - EV 代码签名极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44003975/

相关文章:

java - 从 HashMap 获取第一个和最后一个元素

ios - 使用有效的代码签名身份失败,Xcode

ios - 验证/提交错误 : Application failed codesign verification

java - Maven 可以重新签署依赖项吗?

java - 使用 Spring Tool Suite Maven 编译时出错

java - Hibernate 无法确定类型

java - 加载jar时如何知道调用方是哪一方

ios - 不允许 iOS 10 中的代码签名资源叉、Finder 信息或类似碎屑

web-applications - tomcat中的签名jar文件

java - 验证 Jar 签名在 Java 中不起作用