EV代码签名极其缓慢

问题描述 投票:6回答:2

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

我试过的事情:

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

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

java code-signing jar-signing
2个回答
3
投票

我曾多次与GlobalSign联系。

答案是:

  • 使用大约1900个类文件签署一个jar的性能==>大约需要3分钟,对于usb硬件安全令牌来说是正常的。

相比下:

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

为什么这么慢?

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

使用的硬件安全令牌:金雅拓SafeNet 5110。

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

我想知道,如果https://www.yubico.com/products/yubihsm/可能更快?有人有这方面的经验吗?其他人如何在java中签名?


3
投票

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

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

金雅拓SafeNet 5110硬件仅支持SHA256,因此设置SHA512会强制进行散列的软件计算,这会加速很多事情。

© www.soinside.com 2019 - 2024. All rights reserved.