有没有办法对文件进行数字签名,以证明它们在某个时间点存在

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或代码签名证书将不起作用.

谈论"时间戳权限" - 你向他们发送一个哈希(在签名期间计算)并且他们使用他们的证书签署这个哈希.他们的业务是保护私钥,他们通常会收取费用.

关于第三方权威的想法是它证明了时间.如果您对数据进行签名,您可以将任何时间用于签名,并且无法检查它是否正确或您是否伪造了它.只有受信任的第三方权限才能证明时间戳的正确性.


Ger*_*mia 5

是的,您可以使用ProofOfExistence.com执行此操作,ProofOfExistence.com将您的文档的哈希值放在比特币 区块链上.

(比照这个)