为了减少B持有的公钥数量,不得不再引入一对密钥。(为了减少密钥而增加密钥。。。(lll¬ω¬)。。。)
而且,这一对密钥必须是B所信任的第三方D所持有,同时B也需要持有D的公钥。A为了和B通信,必须要让D用D的私钥加密A的公钥。这个过程发生在A与B通信之前,并且只需要一次。以后A和B的通信,D就不用介入了。
A和B的通信过程如下。
这种通信方式的好处在于可以减少B持有的公钥数量。
比如:有A1,A2,A3......A100,共100台服务器需要和B进行通信,按照从前的做法,B需要持有A1,A2,A3
......A100共100个公钥,才能与这100台服务器通信。而在这个新的过程中,B只需要持有一个D的公钥。
A1,A2,A3
......A100都需要把自己的公钥用D的私钥加密,这样B就可以用唯一的D的公钥解密,得到所有的
A1,A2,A3
......A100的100个公钥。然后,用解密获得的这100个公钥,分别与
A1,A2,A3
......A100这100台服务器通信。
这种通信方式也可以有效地防御中间人模式的攻击。
假设攻击者通过替换加密公钥的方式进行攻击,B就会因为无法解密公钥而终止通信。
假设中间人不替换加密公钥,想通过直接转发公钥,然后窃取或者替换密码,也同样是不可能的。