首先:
公私钥都可以互相解密对方加密的信息,是一对密钥
流程:
- A 生成密钥对,交给 B 公钥。
- B 给A 发信用公钥加密
- A 收到信用 私钥解密
- A 回信,先 对信件内容做 hash, 生成 摘要,然后使用 私钥对摘要加密,就是数字签名。附件到信件下面,发给 B
- B 收到回信,用公钥对数字签名解密,得到摘要。然后自己对信件内容做一次 hash, 得到摘要。然后比对两次 摘要是否相等,如果相等,那么信件内容未被篡改,否者就是被篡改了
如果 C 把 B 的公钥偷换成自己的公钥,并欺骗 B 所拥有的公钥就是 A的。而且 B 冒充 A 和 C 通信,用自己的私钥和 B 来回通信,这个过程可以正常通信,没什么技术问题。只要让 B 相信自己就是 A !
但是,发生了欺骗,虽然通信过程有了一定的安全性,但是通信身份无法保证!
所以有了 CA(证书中心),那么作用是什么呢?
首先,A 要去 CA 为自己的公钥做认证,让这个第三方机构承认自己的公钥就是属于自己的。
证书中心用自己的私钥 对 A 的公钥和其它一些信息一起加密,生成 “数字证书”,颁发给 A
- A 和 B 通信,交给 B 信件内容,数字签名,数字证书
- B 收到信,用 CA 的公钥解开数字证书,拿到 A 的公钥
然后用得到的公钥继续解密数字签名,比对 摘要
解决了什么问题:
公钥是从权威第三方手里拿到的,不可能被偷换
新的问题:
假如 C 也去 证书中心做认证,一开始就冒充 A 和 B 通信,这也是没问题的。
那么如何让 B 相信和一开始自己通信的 就是 A 呢 ?!
这就要靠 B 自己去识别通信对象的正确性,并且交换 A 的数字证书
如何识别?
假如你访问 淘宝,淘宝的网址是自己辨别的。你不能输入一个京东的网址,说自己访问的是淘宝,那只能怪你自己了...
假如美女硬要把 张三当李四看,不也是没办法的事情嘛...
总结:
一开始的通信身份要靠自己去辨别,数字签名,数字证书只能保证后续通信过程的安全性
网友评论