EV 代码签名极慢

EV Code Signing extremely slow

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

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

根据 GlobalSign 网站,我应该按以下方式签署我的罐子:

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 支持,但他们无法进一步帮助我,因为签名确实有效...只是非常慢。

我尝试过的事情:

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

我曾多次与 GlobalSign 联系。

答案是:

  • 对包含大约 1900 个 class 文件的单个 jar 进行签名的性能 ==> 对于 usb 硬件安全令牌
  • 正常 大约需要 3 分钟

比较:

  • 使用带有证书和私钥的本地 pfx 文件花费了 5 秒.

为什么这么慢?

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

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

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

不知https://www.yubico.com/products/yubihsm/会不会更快?有人有这方面的经验吗?其他人如何登录 java?

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

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

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