VRI表示签名时间戳



我对如何为PAdES签名内的时间戳创建VRI条目有疑问。

让我们假设有一个pdf文档有一个签名,这个签名有一个嵌入的时间戳。

的例子:

Sig
[...]
Contents <1234567890ABCDEF[...]>
[...]
Type DSS
VRI <<
     Hash1 object1
     Hash2 object2
>>
[...]

Hash1很容易计算:它是整个签名哈希,包括时间戳(1234567890ABCDEF[…])

但Hash2…我应该用什么来计算呢?在ETSI文档中,它是这样写的(PAdES LTV配置文件-第4部分- V1.1.2页12):

对于时间戳的签名,它是时间戳本身的字节数,因为时间戳令牌是一个签名的数据对象

但我必须说这没有多大帮助。它是timeStampToken吗?只有内容?什么是"时间戳本身"?

谁知道有什么文件能澄清这一点?参考实现

您引用的定义

对于时间戳的签名,它是时间戳本身的字节数,因为时间戳令牌是一个签名的数据对象

来自ETSI TS,它首先定义了页面的LTV结构。

此TS同时已被ETSI EN 319 142-1取代,其中定义被重新表述为:

对于文档签名或文档时间戳签名,散列的字节应为关联签名字典中包含关键字Contents的表项的完整十六进制字符串包含签名的der编码的二进制数据对象(例如pkcs# 7, CMS或CAdES对象)。

因此,对于文档时间戳,只需像处理常规签名一样处理即可。

顺便说一下,同样的规范指定:

不应该使用VRI字典。是否包含VRI字典条目是可选的。所有验证在VRI表项中引用的材料也在DSS表项中引用

所以您可能根本不需要这些条目。


我刚意识到你以为

有一个带有签名的pdf文档,这个签名有一个嵌入的时间戳。

内嵌时间戳显然不受上面引号的约束。但实际上,时间戳令牌是一个包裹着SignedData对象的ContentInfo对象,就像一个常规的CMS签名容器一样。因此,时间戳令牌是要散列的对象。

相关内容

  • 没有找到相关文章

最新更新