【问题标题】:EV Code Signing extremely slowEV 代码签名极慢
【发布时间】:2017-05-16 14:15:22
【问题描述】:

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

由于我不得不切换到 EV 代码签名,因此我注意到签名应用程序的时间大大增加。从使用常规 java 密钥库的几分钟到使用 eToken 的 40 多分钟。

根据 GlobalSign 网站,我应该对我的 jars 签名如下:

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 中配置)

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

【问题讨论】:

  • 你找到解决办法了吗?
  • 很遗憾,不,SafeNet 指向 GlobalSign,GlobalSign 指向 SafeNet...
  • 我也遇到了这个性能问题。我正在使用 * SafeNet Authentication Client 10.3 x64 * JDK 8 - 131 3mb jar 需要将近 3 分钟。但是 CPU 负载极低,所以似乎不是 CPU 问题……有什么消息吗?
  • 你试过 -sigalg SHA512withRSA 它在这里创造了奇迹......

标签: java code-signing jar-signing


【解决方案1】:

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

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

金雅拓 SafeNet 5110 硬件仅支持 SHA256,因此设置 SHA512 会强制对哈希进行软件计算,从而大大加快速度。

【讨论】:

  • 哇...太疯狂了。非常感谢。使用此参数,使用 40mb jar 文件的时间从 ~32 分钟减少到 ~3 分钟。
  • 天哪!这个确切的问题困扰着我们,一个小罐子使用默认值签名需要 2 分钟,使用此选项大约需要 2-3 秒。
【解决方案2】:

我曾多次与 GlobalSign 联系过。

答案是:

  • 签署单个 jar 的性能,其中包含大约 1900 个类文件 ==> 对于 usb 硬件安全令牌,大​​约需要 3 分钟正常

对比:

  • 使用带有证书和私钥的本地 pfx 文件需要 5 秒

为什么这么慢?

Globalsign 的回答:对于每个类文件,将从令牌中检索证书,如果证书被吊销,将检查 OCSP。

使用的硬件安全令牌:Gemalto SafeNet 5110。

Globalsign 告诉我,我可以尝试使用另一个令牌,如果它更快的话。

我想知道https://www.yubico.com/products/yubihsm/ 会不会更快?有人有这方面的经验吗?其他人如何在java中进行代码签名?

【讨论】:

  • 我还没有尝试过另一个令牌,我有点学会忍受它,因为这是关于 GlobalSign 答案的简历 :) 我很高兴他们给了你一个关于为什么会发生的更清晰的答案.我现在会接受你的回答,因为它包含足够的信息来帮助其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-03
  • 2019-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多