【发布时间】:2013-05-28 13:41:21
【问题描述】:
我正在开发一个应用程序来使用(主要)PKI 来管理文件和电子邮件加密。我有一个带有联系人列表及其公钥的公钥环。
回想起我以前使用 PGP 的时候,我记得需要用你的私钥签署公钥。
这对 PKI 来说是必需的吗?如果是,那么此签名的目的是什么?简单地保存一个人名(和电子邮件)及其公钥的列表/数据库是不好的做法吗?当然,如果他们的公钥被 - 以任何方式 - 篡改加密将会失败,并且当您选择与谁发送或共享加密数据时,即使“成功篡改”未被注意到,加密数据也不会结束还是落入坏人之手?
【问题讨论】:
-
你怎么知道你一开始得到的公钥是正确的?
-
好的,好点。那么签署它如何证明不是呢?假设您生成了一个密钥对,将您的公钥发送给我,然后我将其存储。我如何证明这是一个有效的密钥?
-
签名者(希望)验证所有者。
-
所以在我上面的例子中,我认识你,所以我签署了你的公钥?这证明这是您的钥匙?是否有必要在您的钥匙串上签署每个公钥,或者它只是一个“不错”的功能?我想我在问,即使尚未签名,您是否可以合法地使用该公钥来保护数据?所以我从未见过你,但我想向你发送安全数据 - 这样做仍然“安全”吗?
-
这完全取决于您要保护数据的安全性。此外,了解我还不够;您需要确认没有 MITM 攻击者修改了您认为是我的密钥。 en.wikipedia.org/wiki/Key_signing_party