我刚刚开始使用GPG并创建了一个公共密钥。如果没人知道,那是毫无意义的。我应该如何分发?我应该在我的个人资料上发布它在Facebook和LinkedIn吗?我的博客怎么样?有什么风险?

评论

我想这取决于您将GPG密钥用于什么目的???签署电子邮件?加密电子邮件内容?电子邮件附带的加密文件?分发您编写的可信赖软件?存储本地文件?文件大小是多少?您是否主要使用对称或非对称密钥(GPG同时支持)?谁将需要您的公钥,为什么?

#1 楼

分发密钥的最佳方法是使用可用的密钥服务器之一,例如keyserver.ubuntu.com,pgp.mit.edu或keyserver.pgp.com。

如果您使用Seahorse (Ubuntu下的默认密钥管理器),它会自动将您的密钥同步到这些服务器之一。然后,用户可以使用您的电子邮件地址或keyid查找您的密钥。

如果要在LinkedIn或博客上发布公共密钥,则可以将密钥上载到服务器,也可以仅链接到上述密钥服务器之一上的密钥页面。就我个人而言,我会将其上传到一个密钥服务器并链接到它,因为将其保持在一个位置是最新的,而不是将文件放在不同位置的负载中。您还可以与他人共享您的Keyid,然后他们可以使用gpg --recv-keys来接收您的密钥。

如果您想在Facebook上发布您的公共密钥,请在“联系信息”部分下放置一个字段您的个人资料。您还可以更改Facebook安全设置,以使用相同的公共密钥来加密他们发送给您的电子邮件。例如,这是我的公共密钥。

据我所知,发布您的公共密钥没有任何风险。

评论


广泛地发布您的公钥没有大的风险。正如Mark所指出的,您将在密钥服务器系统中使用它,以便可以将其自动导入。但是分发其他方式也是安全的。

– Peter Stone
2010-11-18 22:29



请注意,如果未由他人签名,则在PGP密钥服务器上发布密钥是毫无意义的。在这种情况下,您应该首选安全分发方式,例如SSL主页。同样,让您的弟弟在您的钥匙上签名只会提供你们两个之间的信任关系。如果您希望与更广泛的受众进行安全通信,则关键签名方或受SSL保护的主页非常有用。

–pepe
2011年6月29日18:31



我的经验是关键服务器有些失败。例如,我在pgp.mit.edu上从'99和'00丢失了很多旧密钥。确实不能正确解决问题。

–user239558
2012年9月9日23:25

您是否不应该使用https链接来分发密钥,这样就可以确定公钥在途中没有被更改?

–史蒂夫·阿姆斯特朗(Steve Armstrong)
15年8月30日在19:16

@SteveArmstrong请参阅GPG密钥获取是否不应该使用安全连接?

–用户
16年7月15日在20:05

#2 楼

通过以您和@Mark所描述的方式发布您的公钥,没有暴露您的私钥或使您的公钥失效的风险。正如@pboin所说,它旨在向全世界提供。

但是,还有另一个问题。拥有并发布您的公钥的核心目的之一(实际上,这可能是主要目的)是向其他用户进行身份验证,使他们能够验证您签名的任何消息或数据的真实性,并仅对您的眼睛进行保护/加密。
但是那些用户怎么会知道这实际上是您的公钥?例如,如果我想使用他发布的密钥(位于http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE493B06DD070AFC8)向@Mark Davidson发送私人消息,我怎么知道它是发布该密钥或指向我的REAL Mark Davidson?
在mit.edu,LinkedIn,Facebook等上发布我自己的OWN公钥对我来说是微不足道的,只是称呼自己为Bill Clinton (或比尔·盖茨)。你怎么可能不知道呢?
此外,如果我以某种方式知道这真的是合适的人(例如,我想通过匿名博客作者通过发布在他博客中的pk与他联系-我不在乎他是谁) ,网站的所有者-以及pk发行者-仍然是正确的人)-如何保证公钥在途中未被篡改?到目前为止提到的所有链接和站点(好的,PGP密钥服务器除外)都是HTTP-即没有通道保护,即可以在服务器和浏览器之间轻松更改。

使用X.509 / PKI模型时,总会有人信任您。例如。著名的证书颁发机构(受信任,因为浏览器供应商对其进行了审核,并将其根证书添加到浏览器中的“受信任的根存储”中)验证了您的身份并签署了公钥/证书。因此,想要验证您的身份的任何人都可以简单地检查签名,然后查看为您提供担保的人的身份(然后重复进行操作,直到找到众所周知的受信任的根CA)。 />
但是,在PGP模型中,通常没有中央的,可信的授权机构(尽管当前版本确实允许这样做)。相反,PGP基于信任网络模型,其中,如果您信任某人,则他们可以反过来担保他人的身份。

无论如何,仅将公用密钥放在那儿并不能帮助任何人验证您的身份,也不能确保只有正确的人才能看到加密的邮件。

您可以做什么:


发布您的公钥,就像您和@Mark所说的一样-但要提供一个公钥令牌(基本上是一个哈希)通过安全通道获取公钥(例如指纹)。例如。现在这足够短了,如果他本人认识您,就可以通过电话朗读...我什至还看到有人将其pk令牌放在他的名片上,举行了一次会议(承认这是来自供应商的)。
开始对您的电子邮件进行签名,然后通过带外通道(例如通过电话或亲自(谢谢!))向收件人确认您的签名。
使情况复杂化,获得标准X。 509证书并在您的网站上实施SSL(最好是EV),那么任何人都可以下载pk安全文件,前提是该文件来自拥有该域名的人...(好吧,也许对大公司来说效果更好...)
了解Microsoft是如何做到的...

除此之外,这实际上取决于此pk的用途-如果只是想让母亲哇,那就不要理会所有这些:)
另一方面,如果您的沟通非常敏感,或者具有安全意识的客户,那么以上所有内容都很重要...

评论


证书仅在最终用户信任证书颁发机构的级别上受信任。 PGP公钥可以由其他PGP用户签名,这样做可以建立信任网络,可以说,我最好的朋友信任此密钥,而我也信任他,因此我也信任此密钥。

– ewanm89
2011年7月1日在20:02

pgp.mit.edu上具有@ whitehouse.gov的条目

– Bernhard Heijstek
2012年4月17日下午6:16

“没有暴露您的私钥(...)的风险”……我在读这个正确的字词还是遗漏了某些东西?

– hamena314
16 Mar 29 '16 at 8:57

@ hamena314我想不是:-)。我认为您将其理解为“没有暴露您的私钥的风险”,这与我写的“没有暴露风险的风险”不同。即没有这样的危险。如果您阅读了整个句子,“没有风险通过发布公共密钥来公开您的私有密钥”->发布您的公共密钥不会使您的私有密钥面临暴露的风险。抱歉,句子结构混乱!

–AVID♦
16 Mar 29 '16 at 10:05

谢谢你的澄清。作为非英语母语者,我可能不明白预期的含义。

– hamena314
16 Mar 29 '16 at 10:51

#3 楼

一般的解决方案是将其上传到密钥服务器。另一个好主意可能是进入Biglumber。这有助于与其他人联系,并可能互相签名。

此外,您应该查看收件箱并查找已经签署其电子邮件的联系人。您可以向他们发送非正式邮件,即现在您拥​​有一个密钥并将其指向资源。

有关密钥的博客条目也可以。您应该提供一个下载密钥的链接。

如果您在邮件中使用签名,则可以指向新密钥,当然还要在每封邮件上签名。

提醒您将密钥上传到密钥服务器(并在其中分发)后,您将无法删除它。当然,您可以撤销它。此外,假定垃圾邮件发送者将查找这些电子邮件地址并向您发送一些“不错的报价”。当您进行密钥签名并上载新签名时,签名会显示您在特定日期的去向。

评论


+1表示发布密钥文件所涉及的实际风险,该密钥文件将包含您的电子邮件地址信息以及通过推断得出的数据泄漏。

– Iszi
2011年6月2日在16:09



Biglumber,可以使用吗?他们甚至不使用https...。

–起搏器
2014年2月11日下午3:57

#4 楼

请注意,密钥上的任何电子邮件地址都会显示在公共Web界面上。我在密钥上的电子邮件中收到大量垃圾邮件,因此它没有在密钥上放置我当前的电子邮件地址。

评论


对于那些关注垃圾邮件的人,一种简单的处理方法是创建一个VIP收件箱,向其中添加联系人,将其设为默认视图,并假定其他一切都是机器人。

–乔什·哈布达斯(Josh Habdas)
19年11月6日在8:45

的确如此,但是大多数邮件客户端都要求密钥中收件人的邮件地址才能正常工作。

–乔纳斯·斯坦(Jonas Stein)
1月30日15:28

#5 楼

对“分配”问题的简单回答是,您应该使用对您和您的预期收件人来说很方便的任何方法,并满足您在隐私方面的需求。例如。密钥服务器可以方便地用于分发给许多收件人,但是正如ubi所指出的那样,典型的密钥服务器一直在向垃圾邮件发送者公开uid(通常具有您的电子邮件地址)。

更难的问题是如何您的接收者是否验证他们为您找到了正确的钥匙,而不是伪造的有助于攻击的东西?您可能想与其他人“带外”交换密钥的指纹,例如通过电话。或者,您可以依靠“信任网”:为此目的而信任的人的签名链。请参阅以下问题以获取更多提示:


GPG密钥获取不应该使用安全连接吗?
连接到不受信任的公共密钥服务器有哪些固有的风险?


#6 楼

对于分发,这实际上取决于您的受众。我的乐观主义者希望人们会渴望使用我的密钥来加密邮件并检查我的签名。现实情况是,管理它不是问题。通过将其提供给我的博客并应要求提供,我做得非常好。

关于风险,它的设计目的是随时向世界公开。将这些关注点集中在保护私钥上。在其周围放一个密码,并小心保护它。

#7 楼

PGP / GPG的公钥分发仍然是一个未解决的问题。

上传到公钥服务器


其他人可以侮辱您的公钥您不想在密钥中看到的文本或内容
许多用户忘记了密码,或者丢失了撤销密钥并更改了他们的邮件地址,并且不再能删除旧密钥。
从这些服务器上删除密钥或签名几乎是不可能的
数据挖掘工具可以分析来自密钥服务器的数据确实存在
一个会向公众地址发送更多垃圾邮件密钥服务器,因为它们易于裁剪且非常有趣,因为它们支持许多元数据:
,例如姓名,邮件,朋友,时间戳。
...但是每个人都可以将您的公钥上载到密钥服务器。这可能是有意或无意的。大多数PGP工具都支持上传导入的公共密钥,如果您等待了足够长的时间,则有人会在不认识您的情况下上传并签名密钥。

上传到自己的网站


用户可以删除或更改密钥
从收件人的受信任的网站下载密钥可以作为真实密钥的另一个指示
许多PGP的专业用户都选择了这种方法
您网站上联系人旁边的密钥广告了PGP的使用

个人会议


可能的攻击方法是植入假密钥。偏执狂的人会面并交换打印在纸上的密钥。
这可能是您卡上的QR码(非常有名);请参阅是否有用于将公共密钥打印为条形码的标准?

要进一步阅读,请参见



http://secushare.org/ PGP
http://zh.wikipedia.org/wiki/Key_server_(cryptographic)

http://cryptome.org/2013/07/mining-pgp-keyservers.htm


#8 楼

在Linux中,您可以使用以下命令:

$ gpg --keyserver hkp://keyserver.ubuntu.com --send-key "your key_index or email"
$ gpg --keyserver hkp://pgp.mit.edu --send-key "your key_index or email"
$ gpg --keyserver hkp://pool.sks-keyservers.net --send-key "your key_index or email"


并将其发送到其他服务器。它们将传播您的密钥。

#9 楼

在特定情况下,我还会面临另一种风险,那就是泄漏您的私钥。
假设在分布式WannaCry式攻击中,许多私钥已泄露给某些攻击者(可能是数百万),那么您的公钥可用于当试图破解不受初始攻击影响的新服务器时,两者都将您标识为目标(通过公用密钥找到您具有SSH访问权限的服务器),并在一大堆被盗的密钥对中找到私钥。 br />我们还假设您不会立即得知自己的钥匙被盗,因此可以删除访问权限并重新生成。