既然A与B的公钥传递是无法受信任的,那A与B协商一个公认的机构来吧。就如咱们的公安部向各位颁发的身份zheng。大家都认可公安部,公安部颁发给A的身份zheng就能证明A就是A他本人,同理B也能得到证明。

    公安部自己也得要有自己的证书,那么公安部就自己给自己颁发证书(根证书),如果每个人都到公安部的话,公安部就忙死了,公安部就会有派出机构,大家信任公安部,就会信任公安部的派出机构(派出所),信任是传递的嘛。A拿着自己的信息(姓名,住址,性别,年龄,户口本等等)到达派出所,派出所就会核实A的信息,然后制作身份zheng(包括各种防伪信息)并加上公安部的戳(这个戳就像CA证书机构生成自己的公私钥,先对A的信息进行特征计算,然后将特征计算结果用私钥加密)。当然现实中的证书机构是需要收费的,而且收费还不便宜。

    A与B发起第一次通讯,A将公安部颁发的证书发送给B,那么B是不是可以拿着公安部的公钥对证书进行解密,能够解密,那么A的身份是不是得到认可啦。在互联网上大多数都是这样单向认证的。那么在什么时候要双向认证呢?交易的时候嘛。

    E这个家伙又来捣乱了,派出所也会有假的嘛。N年前没有没有听过一个假银行事件,大家存取款都没问题,哪天存款够了,那银行就消失了。所以A向派出所获取身份zheng(电子证书)的时候,A怎么能证明这个派出所是真的?听着。。。听着。。。好像我们又掉进坑里了。那确实,世界上没有万无一失的安全。但目前来说是较为可靠的。(有时候也会被证书机构坑哦,16年的沃通ssl证书事件)

    

    假设A与B互发证书,双方能够得到验证。那怎么通信能保证,机密性,完整性,身份验证呢?

    TIM图片20180322111509.png

    其实还以换一个方法

    TIM图片20180322111509.png


    这一切的一切,都是始于证书,得到相互信任,所以证书颁发机构是安全的起始。