【译】PGP Web of Trust: Delegated Trust and Keyservers

欢迎阅读第二部分“PGP Web of Trust”系列。 前面的文章中 ,我们研究了信任网络如何工作的基本知识,现在应该很好地理解以下内容:
  • 您通过签署密钥来担保某人的身份。
  • 关键的“有效性”是我们确信有问题的关键属于我们想与之交流的人。 它是根据所有者信任和密钥上签名的数量计算得出的。
  • 密钥“信任” 必须由用户为密钥环中的每个密钥设置,然后才能包含在信任度计算网络中。
  • 信任可以是完全的或边缘的。 它只需要一个完全可信的签名来将密钥标记为“有效”,但至少需要三个边缘信任的密钥来执行相同的操作。

这是最简单形式的信任网络,也称为“经典信任模型” - 您(并且只有您)必须在每个密钥包含在任何信任计算中之前,直接为每个密钥分配信任。 然而,在复杂的等级组织中,人们不断来去,这可能变得难以管理。 认识到这一点,PGP后来的版本决定使用多层次的“可信介绍者”来实现信任委托。

在这一部分中,我们将看看以下内容:

  • 什么是密码学中的“可信介绍者”和“元介绍者”
  • PGP如何实现“元引进者”
  • PGP信任签名如何在实践中发挥作用
  • 密钥服务器是什么以及如何使用密钥服务器来跟踪人们的公钥。

值得信赖的介绍人

在讨论X.509证书的功能时,我们在前一部分中讨论了“证书颁发机构”。 在X.509世界中,您不会将信任分配给人们的证书,而是选择签署所有密钥的权威机构。 承载CA签名的任何密钥都被隐式假定为完全有效。 通常,有几个级别的权力机构通常被称为“根管理机构”和“中介机构”,并且它们形成一个“认证链”。

在密码学中,这些都是在“可信介绍者”和“元介绍者”的通用术语下公知的。 假设的北美认证链将如下所示:

PGP信任图

如果爱丽丝信任由“北美CA”制作的签名,她会自动信任由中介机构制作的签名,因此就爱丽丝而言,Fiona的密钥具有完整的“有效性”(以使用PGP的术语)。

信任签名

PGP第5版引入了“信任签名”,增加了对PGP世界信任授权的支持。 信任签名基本上是一种说法:“如果您信任我的密钥,那么您可能也会对这些我信任的密钥给予相同的信任。”

让我们使用我们的老朋友火枪手来形象化信任签名的工作方式。

D'Artagnan是国王火枪手的队长,直接向他的指挥官德特雷维尔报告,他直接向路易十三国王报告。 在书中 ,由于Richelieu枢机主教的阴谋,皇后护送Anne d'Autriche和她的情人白金汉公爵冒着暴露的风险。 无奈之下 ,安妮转向她信任的法庭医生康斯坦斯· 博纳西厄 ,要求她找一个她信任的人快速前往英格兰。 Richelieu红衣主教发现了他的追随者Comte de Rochefort,以确保女王的绝望情节失败。

如果我们看一下这个方案中主要参与者之间的关系,我们可以如下图示:

PGP信任国王路易

当Constance Bonacieux来到d'Artagnan寻求他的帮助时,d'Artagnan怎么知道她真的是女王信任的courtisane 他可以手动追踪DeTréville的签名到国王,然后到女王,然后到康斯坦斯,但幸好有一个更快更通用的解决方案,他可以使用。

国王是当时法国的最终信托当局,所以我们可以把他看作是根本权威。 由于他无法签署法国政府所有人的钥匙,因此他在gpg的tsign命令的帮助下将其信任委托给了他的下属

 路易斯[〜] $ gpg --edit-key anne
 pub 2048R / 65C953D7已创建:2014-02-21过期:从未使用过:SC
                     信任:未知有效期:未知
 [未知](1)。  Queen Anne d'Autriche女王
 gpg> tsign
 [..跳跃..]
请输入此信任签名的深度。
大于1的深度允许您签名的密钥生成
代表您的信任签名。
您的选择?  1
 [..跳跃..]
你确定你想和你签署这个密钥吗?
关键“路易十三国王”(28133692)
真的签名?  (y / N)y
 GPG>

上面的“信任深度”是什么意思? 这描述了国王愿意委托他的信任的链条有多远。 这样想一想:

  • 等级1:“你可以相信我已经签署了和我一样多的密钥, 但是就我愿意保证的那样
  • 等级2:“你可以相信我签署的这个密钥和我的一样多, 再加上这个人信任的任何其他密钥 -如果你愿意,

在密码学的说法中, 对具有“1级”的密钥进行信任签名将该人指定为“可信介绍人”。对具有“2级”的密钥进行信任签名将该人指定为“元导入者”。

就其本身而言,1级签名与签署密钥并设置所有者信任完全相同,只是将两个步骤合并为一个,并使结果对其他人可见,如果共享(稍后再介绍)。 对于国王路易斯,“tsign level 1”的结果和经典模型的“符号和设置所有者信任”的表现完全相同:

PGP信任图国王路易斯

信任签名只有在其他人信任 - 在高于1的等级上签署这样的密钥时,才真正发挥信任授权的作用。让我们来看看在d'Artagnan信任时会发生什么 - 用2级签名国王的密钥(国王变成d' Artagnan的meta-introducer):

  dartagnan [〜] $ gpg --edit-key louis
 pub 2048D / 28133692已创建:2014-02-21 expires:永不使用:SC
                     信任:未知有效性:完整
 [完整](1)。 路易十三国王
 gpg> tsign
请确定您信任此用户的距离,以便正确验证其他用户的密钥
 (通过查看护照,检查来自不同来源的指纹等)
   1 =我相当信任
   2 =我完全信任
您的选择?  2
请输入此信任签名的深度。
大于1的深度允许您签名的密钥生成
代表您的信任签名。
您的选择?  2
 [..skipped ..
你确定你想和你签署这个密钥吗?
关键“d'Artagnan”(65BE833E)
真的签名?  (y / N)y
 GPG>

D'Artagnan只有一个国王的钥匙的信任签名,大大扩展了他的信任网络,包括法国法庭上的所有人:

PGP 1级信任图

级别数不限于2,最多可以达到5.以下是Planchet信任-Artagnan的关键元素为“级别3”(“Meta-Meta-Introducer”)时发生的情况:

PGP信任等级3图

正如你所看到的,这与d'Artagnan的完全相同,归功于完全继承的委托信任。

信托代表团的缺席

委托信任是一个强大的工具,但与X.509的认证机构具有相同的重要缺点 - 渗透组织,攻击者只需要破坏根权威(在我们的案例中,是路易十三国王的私钥)。

如果您担心这一点,您可以通过告诉GnuPG始终使用“Classic Trust”模型,在〜/ .gnupg / gpg.conf中设置“trust-model classic”,或者从不使用信任的签名。 除非您信任 - 自己签署某人的密钥,否则他们从未开始。

密钥服务器

一旦你签了某人的钥匙,你怎么让别人知道它? 如果您的信任网仅由少数人组成,您可以简单地通过电子邮件发送签名的公共密钥,但这显然不会随着组织的发展而变得非常有效。 PGP社区很早就认识到了这个问题,并建立了分配公钥的指定服务器。 它们中的许多都具有允许搜索和下载公共密钥的Web界面 ,但该功能也内置于GnuPG命令行工具中。

例如,下面介绍如何从MIT keyserver下载Linus Torvalds的密钥:

  mricon [〜] $ gpg --keyserver pgp.mit.edu  - 搜索torvalds linux-foundation

有一个以上的密钥服务器,其中大多数与对方通信以同步公钥和签名,所以上传到pgp.mit.edu的密钥很快也可以从许多其他密钥服务器获得。

以下是我如何将自己的密钥上传到MIT服务器的方法:

  mricon [〜] $ gpg --keyserver pgp.mit.edu --send-key 329DD07E
 gpg:将密钥329DD07E发送到hkp服务器pgp.mit.edu

现在任何人都可以搜索pgp.mit.edu并从中下载我的密钥:

  dartagnan [〜] $ gpg --keyserver pgp.mit.edu --recv-key 329DD07E
 gpg:向hkp服务器pgp.mit.edu请求密钥329DD07E
 gpg:密钥329DD07E:已导入公钥“Konstantin Ryabitsev”
 gpg:处理总数:1
 gpg:导入:1(RSA:1)

概要

回顾一下:

  • GnuPG支持使用“信任签名”进行信任委托。信任签名允许PGP与其证书颁发机构(“受信任的介绍者”)系统一样运行X.509证书。
  • 一级信任签名指定某人为“受信任的介绍人”。通过对第一级人员的密钥进行信任签名,您可以有效地陈述:“您可以像我一样信任此密钥, 但是就我愿意担保而言
  • 二级信任签名将某人指定为“元导师”。通过用二级信任签署某人的密钥,您可以有效地陈述:“您可以像我一样信任此密钥, 以及此人信任的任何其他密钥 -如果你这么倾向。“
  • 委托信任很方便,但引入了与X.509的认证机构相同的问题。 攻击者只需要妥协认证机构以渗透组织。
  • 通过告诉GnuPG始终使用仅依赖于直接信任关系的“经典模型”,可以完全禁用委托信任。

在我们的最后一期中,我们将研究如何在发生不良事件时撤销密钥和签名,以及为什么您可能想签署密钥而不告诉任何其他人。


https://www.linuxfoundation.org/blog/pgp-web-of-trust-delegated-trust-and-keyservers/

猜你喜欢

转载自blog.csdn.net/omnispace/article/details/80617568