密钥服务器如何解决冲突?


1

按照PGP network FAQ

虽然有一些关键的服务器,只需要你的钥匙发送给他们的一个。密钥服务器将负责将密钥发送到所有其他已知服务器的工作。

很方便。让我们说,尽管有上述建议,鲍勃决定将他的公钥同时上传到两台服务器 - 其中一台服务器已被攻破。用户对两台服务器都有信心,并且不检查密钥是否未更改。他签下了一天。

在某些时候,服务器会传播密钥并发生冲突。下列情况之一会发生:

  1. 服务器将接受两个键(最有可能)
  2. 最新的关键将在他们认为是有效键被拒绝
  3. 服务器将“票”(最有可能)

鲍勃现在可以撤销键上传每当他想要的,但假设上述(1),活键将保持与服务器下去。

我的问题:有没有一种方法让用户验证其他(诚实)服务器的正确密钥?也许用正确的密钥发送签名的电子邮件?还是有另一个冲突解决系统?


更正:当我说“冲突”,我的意思是两个公钥对应同一个电子邮件地址。

5

通常,PGP密钥服务器通过不解决冲突来解决冲突。密钥服务器存储公钥。如果他们得到几个以某种方式“碰撞”某些碰撞概念的公钥(例如,这两个公钥都涉及相同的电子邮件地址),那么他们只保留全部。这是设计。特别是假钥匙不能被删除。 PGP Web of Trust的整个概念是,信任来自签名,而不是来自密钥服务器的密钥服务器,密钥服务器只是存储区域(或者更常见的是垃圾回收区域)。

例如,参见MIT PGP key server FAQ

1.你可以从密钥服务器中删除我的钥匙?

不,我们无法将您的密钥从密钥服务器上删除。当您向我们的密钥服务器提交密钥时,密钥也会转发给全球其他密钥服务器,然后再将密钥转发给其他服务器。从我们的服务器删除密钥不会导致它从世界上任何其他服务器中删除,因此这不是确保您的密钥不再使用的有效方法。

2.所以,你不能删除我的密钥,有什么我可以做的吗?

如果您仍然拥有私钥,则可以使用PGP软件生成吊销证书并将其上传到密钥服务器。生成撤销证书的确切步骤取决于您使用的PGP软件,请参阅文档以获取更多信息。这不会将密钥从密钥服务器上删除,但它会告诉下载密钥的人,密钥已被撤销,不应使用。

3.但是我想从密钥服务器上删除密钥的原因是我丢失了私钥(因此我无法生成撤销证书),请问我可以删除我的密钥吗?

我很喜欢回答第三个问题的确定性。


0

一个密钥的OpenPGP数据是由每个密钥的多个独立子分组构成的。密钥服务器不以任何方式验证密钥(赛门铁克的服务器进行电子邮件地址验证,因此具有特殊性),所有信任都来自用户之间的签名。

OpenPGP通过来识别密钥,它应该能够防止冲突,所以不应该有任何关于密钥的冲突。这些用作标识符的指纹足够大,足以确保它代表一个关键字,而不是不同的关键字。

对于签名和UID等所有其他数据包,设计时不存在冲突。如果另一个接收的数据包与另一个已经存储在密钥服务器上的数据包完全相同,则无需解决任何冲突 - 只需忽略它。如果密钥服务器不知道接收到的数据包,他将保留并重新分配它。无法删除数据包,可以通过发送另一个数据包来撤销。同样,没有数据包将被删除,但撤销证书被存储并重新分配。

这些子分包只能被添加并且没有排序,因此不会发生冲突。所有合并都是通过存储所有来源的所有新数据完成的,不需要解决冲突。