Web of Trust 不允许您不“参与 CA/RA 流程”。恰恰相反:有了信任网络,每个人都参与了 CA/RA 流程。这就是 WoT 的重点:任何单个用户都可以充当 CA+RA,通过验证其他用户的物理身份(RA 部分)然后签署他们的公钥(CA 部分)。
信任网络的一个经常被忽视的方面是对冗余的需求。要理解它,请考虑证书验证过程。用户A(我们称他为 Akhenaton)拥有一份据称归用户B(Burna-Buriash)所有的公钥副本。但他想在使用该密钥加密一些外交信件之前确定这一点。幸运的是,Burna-Buriash 的钥匙获得了认证由 Suppiluliumas 撰写:后者(用他自己的私钥)签署了一份包含 Burna-Buriash 的密钥和姓名的文件。Akhenaton 也不知道 Suppiluliumas 的钥匙,但是这把钥匙又得到了 Tushratta 的认证,Tushratta 是 Akhenaton 的朋友,Akhenaton 知道 Tushratta 的钥匙。这允许 Akhenaton 验证 Suppiluliumas 证书上的签名,从而 Akhenaton 获得了对 Suppiluliumas 密钥的一些信任。然后,他可以继续验证 Suppiluliumas 向 Burna-Buriash 颁发的证书,从而对据称由 Burna-Buriash 拥有的密钥获得一些信心。
现在我们看到,在证书验证过程中,Akhenaton 不得不信任Tushratta 和 Suppiluliumas 都正确地完成了他们的工作。确实,虽然阿肯那顿对图什拉塔的钥匙有第一手的了解,但他仍然必须以某种方式相信图什拉塔不会试图通过颁发假证书来欺骗他,其中包含 Suppiluliumas 的名字,但实际上是由图什拉塔控制的钥匙自己。Tushratta 的签名保护该过程免受第三方的干扰(就像那个永远不会做好的计划 Aziru),但他们不提供防止参与者自己叛国的保护,甚至是轻信:Tushratta 可能喝了太多进口的迈锡尼酒那天喝酒,可能自己被阿兹鲁骗了,留着假赫梯胡须,自称是苏皮留鲁玛斯。
下一步的情况更糟,因为虽然 Tushratta 是 Akhenaton 的私人朋友,但他不认识 Suppiluliumas。Akhenaton 无法评估 Suppiluliumas 的可信度;即使 Akhenaton 认为 Tushratta 是友好而清醒的,并且据称是 Suppiluliumas 的钥匙确实由 Suppiluliumas 拥有,这对他来说并没有说明 Suppiluliumas 是否会真实地与 Burna-Buriash 做同样的 RA 工作。
简单地说:信任在转移时会急剧下降。
分层 PKI(就像X.509旨在支持的那样)和 Web of Trust PKI(OpenPGP的正常模型)以不同的方式处理这个问题:
在分层 PKI 中,结构是金字塔形的,与用户群相比,CA 很少;比如说,100 万用户使用 100 个 CA。每个 CA 都根据合同和法律要求与上级 CA(对其进行认证)绑定,因此任何错误或欺诈都将意味着对有缺陷的 CA 的严厉报复。因此,CA 被“保证”通过以所有法律力量威胁他们来保持一致并值得信赖。只要没有太多的CA,并且整个结构适当地集中,这可以工作。
在信任网络中,每个用户都是潜在的 CA。WoT 依赖于以下假设:批次中可能有一些害群之马,但大多数用户是诚实的,不会试图作弊,并且(可能)他们中的大多数人会足够谨慎,不会在之后相互签署密钥第三品脱吉尼斯。这个假设有一点一厢情愿,但让我们暂时相信它。在 WoT 中,您无法通过验证单个证书路径来获得对密钥的足够信任;相反,您必须验证通过不同中间体的许多路径。这在一定程度上确保了安全,因为虽然有些路径可能会通过作弊者,但并非所有用户都是腐败的。这就是我所说的冗余。
由于冗余对 WoT 很重要,因此参与基于 WoT 的验证的用户软件必须支持它。软件必须构建多条路径,检查它们是否相交,并验证它们。这就是S/MIME在执行 WoT 时失败的地方:尽管没有什么可以阻止 X.509 证书实现 WoT 模型,但 X.509 并不是为此而设计的,相应地,执行 S/MIME 的软件(即 Outlook 或 Thunderbird 等电子邮件应用程序) ) 只是假设它们处于分层 PKI 模型中,并声明自己对单个经过验证的路径感到满意。
这就是这里的重要教训:您选择的 PKI 模型必须由验证者(即用户的应用程序)实施。如果您想要 Web of Trust,用户必须使用积极支持它的应用程序,目前,这意味着 OpenPGP 格式(例如GnuPG)。
最后,Akhenaton 信任了所有人。这对埃及帝国来说并没有好转。