PGP的信任网

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/83062661

一 点睛

PGP所采用的一种确认公钥合法性的方法——信任网。

在使用PGP时,确认自己所得到的公钥是否真的属于正确的人(公钥合法性)是非常重要的,因为公钥可能会通过中间人攻击被替换。

证书是确认公钥合法性的方法之一。证书就是由认证机构对公钥所施加的数字签名,通过验证这个数字签名就可以确认公钥的合法性。

然而,PGP中却没有使用认证机构,而是采用了一种叫做信任网的方法。在这种方法中,PGP用户会互相对对方的公钥进行数字签名。

信任网的要点是“不依赖认证机构,而是建立每个人之间的信任关系”。换言之,就是能够自己决定要信任哪些公钥。

下面分3个场景来介绍一下信任网是如何建立起来的。

二 场景1——通过自己的数字签名进行确认

Alce和Bob约会,在告别的时候,Bob给了Alice一张存储卡,并说“这是我的公钥”。

Alice回到家里,从存储卡中取出Bob的公钥,并存放到自己所使用的PGP公钥串中(导入公钥)。由于Alice确信刚刚导入的公钥确实是属于Bob本人的,因此Alice对这个公钥加上了自己的数字签名。

对Bob的公钥加上数字签名,就相对于Alice声明“这个公钥属于Bob本人(即这个公钥是合法的)”。

随后,Alice收到了来自Bob的邮件,由于这封邮件带有Bob的数字签名,因此Alice想用GPG来验证Bob的数字签名。

PGP将执行下面这些操作。

1 为了验证Bob的数字签名,PGP需要从Alice的公钥串中寻找Bob的公钥。

2 Alice的公钥串中包含Bob的公钥,因为前几天约会之后Alice导入了Bob的公钥。

3 PGP发现Bob的公钥带有Alice的数字签名,这是因为前几天约会之后Alice对Bob的公钥加上了数字签名。

4 为了验证Alice的数字签名,PGP需要从Alice的公钥串中寻找Alice自己公钥。

5 当然,Alice的公钥串中也包含Alice自己的公钥。

6 PGP使用Alice的对Bob公钥上Alice的数字签名进行验证。如果验证成功,则可以确认这的确是Bob的公钥。

7 PGP使用合法的Bob的公钥对邮件上附带的Bob的之前签名进行验证。

通过上面的步骤,就完成了Bob的数字签名的验证,Alice确认这封信就是前几天和她约会的Bob所发送文档,她终于可以放心了。

三 场景2——通过自己完全信任的人的数字签名进行确认

Alice有一个叫Trent的男朋友。在Alice的公钥串中,也包含了带有Alice的数字签名的Trent的公钥。

Alice非常信任Trent,她想:“Trent很了解密码和数字签名,也了解对公钥施加自己的数字签名所代表的意义,因此经过他签名的公钥一定是合法的。”

使用PGP可以表现Alice对Trent的信任程度,也就是说,Alice可以对Trent的公钥设置“我完全信任Trent的数字签名”这一状态,并加上自己的数字签名。

在PGP中,用户可以设置对每个公钥所有者的所有者信任级别。Alice对Trent的所有者信任级别设置为“完全信任”。

我们假设这次Alice收到了一封来自Carrol的邮件,这封邮件带有Carrol的公钥,而且这个公钥带有Trent的数字签名。当Alice将Carrol公钥导入自己的公钥串时,Alice的PGP会认为Carrol的公钥是合法的,因为Carrol的公钥带有Alice“完全信任”的Trent的数字签名。

在这个场景中,Trent对于Alice来说是可信的“介绍人”。Trent对Carrol的公钥加上数字签名,就相对于Trent写了一封“介绍信”。

四 场景3——通过自己有限信任的多个人的数字签名进行确认

最后,介绍一个通过多个所有者信任的总和来确定公钥合法性的方法。

假设Alice有两个男朋友,他们分别叫Dave和Fred。她想:“Dave和Fred了解对公钥施加自己数字签名所代表的意义,当然,他们没有Trent那样可信,不过只要是Dava和Fred两个人都签过名的公钥,就一定是合法的。”

在这样的场景中,Alice可以将对Dava和Fred的所有者信任级别设置为“有限信任”。

某天,Alice收到了来自George的公钥,其中带有Dave的数字签名和Fred的数字签名。如果只有Dava一个人的签名是不可信的,只有Fred一个人的签名也是一样,但两个有限信任的人的签名加在一起,Alice的GPG就会认为这个公钥的确属于George本人。

某天,Alice又收到了来自Harrold的公钥,这次上面只带有Fred一个人的数字签名。这时,Alice的PGP就会认为这个公钥不一定属于Harrold本人。

上面我们是通过两个人的数字签名来判断公钥的合法性,用户还可以自行设定判断公钥合法需要多少个数字签名。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/83062661
PGP