小花收到了小明的数字证书,首先要验证此数字证书是不是CA颁发的。
因为我们电脑、手机的操作系统里面,都会内置CA机构的数字证书。
所以,小花就可以对数字证书进行验证。
摘要:单向加密算法,比如md5对证书整个内容加密的结果就叫摘要,也叫做证书的指纹;
签名:小明用私钥对摘要进行加密出来签字串,就叫做签名。
验签:用公钥对签名进行解密出来的摘要和原来的对比,就叫做验签。
证书验证通过后,就说明此证书是CA颁发的。那么,小花就可以从数字证书中拿到小明的公钥了。因为小明在申请数字证书时,数字证书中所有者是小明,CA是会验证小明的身份的,所以数字证书中小明的公钥是真实的。
至此,小明终于把公钥安全的传输给了小花了。
这件事的成立 ,接下来我们的工作就好做多了,接下来,我们看一下具体的传输过程。
通过前面所有的关卡后,我们最后梳理一下完整的传输过程。
- 小明把写完的信,附加上摘要算法MD5, 以及通过MD5算出来的摘要;
- 小明用私钥,对摘要进行加密得到签名;
- 小明把摘要算法、摘要、签名都附加到信件上,连同数字证书一起发送给小花;
- 小花收到信后,首先用CA数字证书拿到CA公钥对小明的数字证书进行验证;
- 小花发现验证通过后,会从证书中拿到了小明的公钥;
- 小花有了小明的公钥,接下来就对信件内容进行验证;
- 小花用小明的公钥对信件的签名解密,得到信件摘要D1;
- 小花用摘要算法对信件运算,得到信件摘要D2;
- 小花对比 D1 是否等于D2;
- 如果不相等,说明信件被人篡改过,不安全;
- 如果相等,说明,信件内容没有被篡改过;
- 相等的情况,小花就拿到了信件的内容。
以上所有的内容,是数字证书,加密解密,签名,验签的过程,还没有正式讲 https
的过程呢。
https
的过程我们以访问 www.helloworld.net 网站为例,讲解https的过程。
至此,https过程结束。
过程那么多,抓住几个关键的问题去理解会更简单。其实本质上还是两个人如何安全高效的进行通信。
最后,我们简单的总结一下。
答:通过加密
答:对称加密。因为,单向加密,没办法解密,不行。非对称加密,太慢,也不行。只有对称加密,速度快。
答:小花使用小明的公钥,对密钥S进行加密,传给小明。小明用自己的私钥解密。
答:使用数字证书。具体就是小明向CA申请一个自己的数字证书,把自己的公钥放在证书中,小明再将数字证书发送给小花。
答:小花用操作系统内置的CA的数字证书,拿到CA的公钥,用CA的公钥,对数字证书进行验签
验签通过,说明数字证书是真的。
系统文章,就写完了。解决的问题是双方通信如何采用安全高效的方式进行。
欢迎点赞关注。