在时间戳服务器上使用时间戳和身份验证对jar进行签名

时间:2013-02-28 08:51:34

标签: java jarsigner jar-signing

我想使用java jarsigner工具的时间戳选项-tsa。我想到的时间戳服务需要身份验证。为此,您将获得一个个性化的软令牌,以便在时间戳服务器上标识您自己。

我的问题:jarsigner工具是否支持此身份验证?换句话说:jarsigner是否支持RFC 3161(时间戳协议) RFC 2246(身份验证)?

jarsigner有一个选项-tsacert。文档说明:

  

如果" -tsacert别名"在签署JAR文件时出现在命令行上,然后为签名生成时间戳。别名标识当前有效的密钥库中的TSA公钥证书。将检查条目证书的主题信息访问扩展,其中包含标识TSA位置的URL。

我感到困惑的是措辞"为签名生成时间戳"。这是什么意思?措辞"别名标识TSA的公钥证书"令人困惑:它似乎用于验证时间戳(因为它是一个公钥)不识别请求者(因为它不是私钥)。

此外:我想要签名的证书不是软令牌,但存储在智能卡上。它无法导出到密钥库。因此,我必须使用选项-keystore NONE -storetype PKCS11。我认为由于这个原因,无法使用选项-tsacert alias,因为它需要一个包含软令牌的真实密钥库。

1 个答案:

答案 0 :(得分:1)

签名的Jarfile有效性受到用于签名的证书的有效性的限制。

时间戳只能说明jarfile的签名时间。

要签署jar文件,必须使用pvtkey。 对于时间戳,技术上不需要密钥,只需要它的哈希值。

请参阅以下链接了解更多信息, https://www.digistamp.com/technical/how-a-digital-time-stamp-works/

谢谢。