【问题标题】:how to prove that someone's previous public key was really theirs?如何证明某人以前的公钥确实是他们的?
【发布时间】:2011-08-12 16:43:41
【问题描述】:

我正处于一个开源信用清算系统的规划阶段,我的想法是使用 GPG 密钥来签署 IOU。但我担心如果 Bob 签署了他通过电子邮件发送给 Alice 的 IOU,然后删除他的密钥,创建一个新的密钥对并将他的新密钥上传到密钥服务器,他将能够合理地否认 IOU 的所有权。是否有某种程序化方式可以证明密钥曾经属于发送签名电子邮件的电子邮件帐户的所有者?我的 google-fu 在这方面让我失望了。

更新:“不可否认”是我一直在寻找的词。还在研究中……

【问题讨论】:

  • 您需要区分身份和安全的概念。在没有同行承认的情况下,任何用户都不应该能够声明自己的身份。您可能想研究比特币架构,它非常强大。
  • 谢谢,我已经尝试过使用比特币,但它对我来说太复杂了。对等确认可能由系统的其他用户签署 Bob 的公钥,对吗?但这仍然不会阻止他删除它吗?
  • 这也发生在“现实世界”中。这里只是稍微复杂一点 ;-) 因此,如果不建立某种形式的可靠信任使用确保问责制的方法,就没有办法[完全]防止这个问题。
  • 是的,比特币非常复杂。不过,在我们进一步讨论之前,您是否计划实施/扩展您自己的密钥服务器?
  • 它不会阻止删除,但它确实意味着签名者可以保证旧密钥是他的;他失去了合理的推诿……除非他能说服签名者一起玩。最后一点就是为什么现实世界的系统很复杂。在你尝试发明自己的系统之前,你知道你的信任模型所有可能的失败模式吗?如果没有,请使用已知系统。

标签: pki public-key


【解决方案1】:

大多数情况下,不可否认性是通过加密时间戳实现的。时间戳是文档在给定时间存在的证明,由可信赖的第三方签发,并在文档哈希值以及该文档的提交时间上签名。

我不太了解 GPG 模型,但可能有证书之类的东西将公钥与密钥所有者身份绑定在一起。您必须在此证书上加上时间戳。实际上,您还应该在证明 Bob 的密钥未被撤销的证明上加上时间戳。在 X.509 中,这是通过对当前撤销列表加时间戳来实现的,该列表证明“未撤销”状态是密钥。

加密时间戳在RFC 3161中标准化

在全球范围内,您指出了高级数字电子签名的众多问题和复杂性之一:不可否认性、长期验证、签名承诺规则......这是@的主要目标987654325@ 标准(CAdESXAdESPAdES

【讨论】:

  • 如有必要,我可以使用 X509。我仍然不完全理解这一点,但它很可能是我正在寻找的。感谢您的回答和链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 2020-06-01
  • 2015-06-17
  • 2010-10-26
  • 1970-01-01
  • 2012-04-20
相关资源
最近更新 更多