我刚刚开始使用 GPG 并创建了一个公钥。如果没有人知道,那是没有意义的。我应该如何分发它?我应该在 Facebook 和 LinkedIn 的个人资料上发布它吗?我的博客呢?有哪些风险?
我应该如何分发我的公钥?
分发密钥的最佳方式是使用可用的密钥服务器之一,例如keyserver.ubuntu.com、pgp.mit.edu或keyserver.pgp.com。
如果您使用Seahorse(Ubuntu 下的默认密钥管理器),它会自动将您的密钥同步到这些服务器之一。然后,用户可以使用您的电子邮件地址或 keyid 查找您的密钥。
如果您想在 LinkedIn 或您的博客上发布您的公钥,您可以将密钥上传到您的服务器,或者只是链接到上面其中一个密钥服务器上的密钥页面。就个人而言,我会将它上传到其中一个密钥服务器并链接到它,因为它更容易在一个地方保持最新,而不是将文件放在不同位置的负载中。您还可以与他人分享您的密钥 ID,然后他们可以使用gpg --recv-keys
.
如果您想在 Facebook 上发布您的公钥,您可以在个人资料的“联系信息”部分下方放置一个字段。您还可以更改您的 Facebook 安全设置,以使用相同的公钥加密他们给您的电子邮件。
例如,这是我的公钥。
据我所知,发布您的公钥没有任何风险。
通过以您和@Mark 描述的方式发布您的公钥,没有暴露您的私钥或使您的公钥无效的风险。正如@pboin 所说,它旨在向全世界开放。
然而,手头还有另一个问题......拥有和发布您的公钥的核心目的之一(实际上,这可能是主要目的),是向其他用户验证您自己的身份,使他们能够验证任何您签署的消息或数据,并仅为您的眼睛保护/加密数据。
但是那些用户怎么会知道它真的是你的公钥呢?例如,如果我想使用他在http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE493B06DD070AFC8上发布的密钥向@Mark Davidson 发送私人消息,我怎么知道它是真正的马克戴维森发布了那个关键或指向我那里?
对我来说,在 mit.edu、LinkedIn、Facebook 等上发布我的 OWN 公钥并简单地称自己为比尔·克林顿(或比尔·盖茨)是微不足道的。不然你怎么知道?
此外,如果我知道这确实是合适的人(例如,我想通过在他的博客上发布的 pk 联系一位匿名博主 - 我不在乎他到底是谁,网站的所有者 - 因此pk 发布者——无论如何是正确的人)——如何保证公钥在途中没有被篡改?到目前为止提到的所有链接和站点(好的,除了 PGP 密钥服务器)都是 HTTP - 即没有通道保护,即可以在服务器和浏览器之间轻松更改。
使用 X.509 / PKI 模型时,总有值得信赖的人为您担保。例如,著名的证书颁发机构(受信任,因为浏览器供应商对其进行了审查,并将其根证书添加到浏览器中的受信任的根存储中)验证了您的身份,并签署了您的公钥/证书。因此,任何想要验证您就是您所说的人的人,都可以简单地检查签名,然后检查为您担保的人的身份(然后重复直到找到众所周知的受信任的根 CA)。
然而,在 PGP 模型中,通常没有中央的、受信任的权威(尽管当前版本确实允许这样做)。相反,PGP 基于信任网络模型,如果您信任某人,他们可以依次担保他人的身份。
无论如何,将您的公钥放在那里并不能帮助任何人验证您的身份,也不能确保只有正确的人才能看到加密的消息。
你可以做什么:
- 正如您和@Mark 所说的那样,发布您的公钥 - 但随后通过安全通道提供公钥令牌(基本上是公钥的哈希,如指纹)。例如,如果他亲自认识您,这已经足够短,可以通过电话阅读......我什至看到有人将他的 pk 令牌放在他的名片上,分发了一个会议(诚然,这是来自供应商)。
- 开始签署您的电子邮件,然后通过带外渠道向收件人验证这是您的签名(例如通过电话或亲自(喘气!!))
- 使情况复杂化,获得标准的 X.509 证书并在您的网站上实施 SSL(最好是 EV),然后任何人都可以安全地下载您的 pk,因为知道它来自拥有该域名的人......(好吧,也许这行得通对大公司更好......)
看看微软是如何做到的......
撇开这些不谈,这真的取决于这个 pk 的用途——如果只是为了让你的母亲惊叹,那就不要理会这些了 :)
另一方面,如果你有非常敏感的通信,或者有安全意识的客户,那么以上所有内容都很重要...
一个通用的解决方案是将其上传到keyserver。另一个好主意可能是进入Biglumber。这有助于与其他人取得联系,并可能相互签署密钥。
此外,您应该查看您的收件箱并查找已经签署电子邮件的联系人。你可以给他们发一封非正式的邮件,告诉他们你现在有一个密钥并将他们指向一个资源。
关于您的密钥的博客条目也可以。您应该提供一个链接来下载您的密钥。
如果您在邮件中使用签名,您可以指向您的新密钥,当然也可以对每封邮件进行签名。
提醒您,在将密钥上传到密钥服务器(并在其中分发)后,您无法删除密钥。当然,您可以撤销它。此外,假定垃圾邮件发送者会寻找这些电子邮件地址并向您发送一些“好消息”。当您进行密钥签名并上传新签名时,签名会显示您在特定日期的位置。
请注意,您密钥上的任何电子邮件地址都将显示在公共网络界面上。我在密钥上的电子邮件中收到很多垃圾邮件,因此它没有将我当前的电子邮件地址放在密钥上。