首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有办法对文件进行数字签名,以证明它们在某一时间点存在

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

Stack Overflow用户
提问于 2011-07-17 19:55:18
回答 10查看 3.4K关注 0票数 26

我很好奇是否有办法对文件(从技术上说是任何数据)进行数字签名,比如合同或照片,这样10年后,就可以证明它们是从现在开始,而不是从现在开始伪造的。

例如,我可以写一个关于未来的预测,然后用传统的方式来证明它是我写的,然后在时间戳上签名,这样当它成为现实的时候,我就可以证明我预测了它。

我想到的一种方法是有一个时间戳权威。您将数据发送给他们,他们会对数据+时间戳进行哈希,并使用他们的私钥用RSA加密哈希。因此,有签名的文档存在于:数据、时间戳、加密散列。

10年后,我散列数据+假定的时间戳,并检查它是否与我使用当局的公钥解密的加密哈希(我信任的)匹配。如果是的话,我就知道时间戳是有效的。

不过,我可以看出其中有两个问题:

  • 需要一个外部权威
  • 当局的私钥需要保密,因为如果它被泄露,所有与其签署的文件都将失效。

你能想出一个没有这些问题的解决办法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2011-07-17 21:32:58

这就是所谓的时间戳。最广泛使用的机制是在TSP规范(RFC 3161)和其他方面定义的。method中使用了另一种方法,但它没有文档化,并且与TSP不兼容。

TSP是几种加密和数字签名标准的补充功能,如PDF、XAdES、CAdES、PAdES (AdES代表“高级加密标准”)。PDF、XAdES和PAdES标准适用于某些类型的数据。CAdES是univeral格式(因为它可以应用于任何通用数据)。

RFC 5544提供了一种将TSP应用于任何一般数据的方法,而无需对这些数据进行签名。

TSP规范大量使用PKI和X.509证书。

加盖时间戳服务由证书颁发机构提供,作为一种补充服务。此外,还有独立的时间戳服务。

您可以运行自己的时间戳服务,但是时间戳需要使用特殊证书(其密钥使用扩展将以特定方式设置),因此常规SSL或代码签名证书无法工作。

谈到“时间戳当局”--您向他们发送一个散列(在签名期间计算),他们使用他们的证书对这个散列进行签名。保护私钥是他们的事,他们通常会收取费用。

第三方权威的理念是,它证明了时间。如果你在数据上签名,你可以把任何时间放在签名上,没有办法检查它是否正确,或者你伪造了它。只有可信的第三方权威才能证明时间戳的正确性。

票数 12
EN
查看全部 10 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6726382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档