Bar*_*lom 25 security encryption timestamp signing trusted-timestamp
我很好奇是否有办法对文件(技术上的任何数据)进行数字签名,例如合同或照片,因此从现在起10年后,可以证明它们是从这个时候开始,而不是从现在起9年后伪造.
例如,我可以编写对未来的预测,并用传统的方法对其进行签名,以证明我已经编写了它,然后对其进行时间戳签名,以便在实现时,我可以证明我预测它.
我想到的一种方式是可能有一个时间戳权威.您向他们发送数据,他们创建数据+时间戳的哈希值,并使用他们的私钥使用RSA加密哈希.因此存在签名文档:数据,时间戳,加密散列.
10年后,我对数据+假定的时间戳进行哈希,并检查它是否与我使用权限的公共RSA密钥(我信任的)解密的加密哈希相匹配.如果是,我知道时间戳是有效的.
我可以看到2个问题:
你能想到没有(其中一个)这些问题的解决方案吗?
Eug*_*its 10
这称为时间戳.最广泛使用的机制在TSP规范(RFC 3161)和其他一些中定义.替换方法用于MS Authenticode,但没有记录,并且与TSP不兼容.
TSP在几种加密和数字签名标准中用作补充功能,例如PDF,XAdES,CAdES,PAdES(AdES代表"高级加密标准").PDF,XAdES和PAdES标准适用于某些类型的数据.CAdES是一种通用格式(因为它可以应用于任何通用数据).
RFC 5544提供了一种将TSP应用于任何通用数据而无需签署此数据的方法.
TSP规范大量使用PKI和X.509证书.
时间戳服务由证书颁发机构提供,作为补充服务.还存在独立的时间戳服务.
您可以运行自己的时间戳服务,但是时间戳需要使用特殊证书(其密钥用法扩展名将以特定方式设置),因此常规SSL或代码签名证书将不起作用.
谈论"时间戳权限" - 你向他们发送一个哈希(在签名期间计算)并且他们使用他们的证书签署这个哈希.他们的业务是保护私钥,他们通常会收取费用.
关于第三方权威的想法是它证明了时间.如果您对数据进行签名,您可以将任何时间用于签名,并且无法检查它是否正确或您是否伪造了它.只有受信任的第三方权限才能证明时间戳的正确性.