【问题标题】:Public Key signing/verification公钥签名/验证
【发布时间】:2013-05-28 13:41:21
【问题描述】:

我正在开发一个应用程序来使用(主要)PKI 来管理文件和电子邮件加密。我有一个带有联系人列表及其公钥的公钥环。

回想起我以前使用 PGP 的时候,我记得需要用你的私钥签署公钥。

这对 PKI 来说是必需的吗?如果是,那么此签名的目的是什么?简单地保存一个人名(和电子邮件)及其公钥的列表/数据库是不好的做法吗?当然,如果他们的公钥被 - 以任何方式 - 篡改加密将会失败,并且当您选择与谁发送或共享加密数据时,即使“成功篡改”未被注意到,加密数据也不会结束还是落入坏人之手?

【问题讨论】:

  • 你怎么知道你一开始得到的公钥是正确的?
  • 好的,好点。那么签署它如何证明不是呢?假设您生成了一个密钥对,将您的公钥发送给我,然后我将其存储。我如何证明这是一个有效的密钥?
  • 签名者(希望)验证所有者。
  • 所以在我上面的例子中,我认识你,所以我签署了你的公钥?这证明这是您的钥匙?是否有必要在您的钥匙串上签署每个公钥,或者它只是一个“不错”的功能?我想我在问,即使尚未签名,您是否可以合法地使用该公钥来保护数据?所以我从未见过你,但我想向你发送安全数据 - 这样做仍然“安全”吗?
  • 这完全取决于您要保护数据的安全性。此外,了解我还不够;您需要确认没有 MITM 攻击者修改了您认为是我的密钥。 en.wikipedia.org/wiki/Key_signing_party

标签: public-key-encryption pki


【解决方案1】:

当您拥有仅用于签名的专用密钥对以及用于加密的其他密钥对时,使用私钥签署公钥的整个过程非常有用。这个专用密钥对是您的“受信任”密钥对,它以某种方式合法地附加到您身上(通常由证书颁发机构签署,或者让许多受信任的人签署他们已验证它与您的连接。)

您使用这个“受信任的”私钥来签署您的不太受信任的公钥。这样,人们可以使用您信任的公钥对您的新公钥进行签名/解密。仅当它由您信任的私钥签名时,这在数学上才是可能的。

这个过程可以帮助人们确定这个新的公钥确实属于你。

【讨论】:

    猜你喜欢
    • 2013-08-17
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-08
    • 2019-08-11
    • 2017-11-22
    • 2017-02-18
    相关资源
    最近更新 更多