Https原理总结

217 阅读3分钟

前言:

       学习https真的是一个让人抓狂的过程,每次复习这块,有困惑的时候,去网上资料看视频,都能看到不同的版本,各个版本看似相近,但是仔细看其实并不一样。 所以! 每次复习的时候我都是迷糊的,不知道到底哪个是正确的,水平参差不齐。 

       终于前段时间,本着学习深挖原理到底的精神,我打开了知乎,终于找到了一个比较靠谱的! 作者是阿里蚂蚁金融安全部的工程师!! 这个应该算权威了吧!! 然后仔细琢磨,终于看懂了,气得我把之前做的https笔记都删掉了! 正式总结一下吧 (下午还有贝壳的笔试,时间真的好赶好赶! 还有好多要总结的,复习前面的+数据库部分的总结+计算机网络网络层知识的总结+操作系统部分的总结+项目部分总结+分布式部分的总结)

     首先,这块要完全梳理,要花很多篇幅,从http为什么会有安全隐患说起,然后为什么对称加密不行,为什么必须要有CA机构等等等! 还有为什么不直接用非对称加密来通信? 为什么需要两者结合起来? 时间比较紧,就直接说核心吧~ 

1.Https原理

总结一下,就是先用非对称加密获取 对称加密的信息,然后最终用对称加密进行信息传递.

大致过程:

         CA机构用自己的私钥,在服务器申请的时候证书机构名称、有效期、拥有者、拥有者公钥 生成一个hash,然后用自己私钥加密! 客户端收服务器端的证书后,同样对证书机构名称、有效期、拥有者、拥有者公钥进行hash计算,然后利用客户端内置的CA公钥去解密自己浏览器里对应的证书,看hash值是否一样! 如果过程中被篡改过,那么拥有者 和拥有者的公钥是不对的! 因此也就不会获得信任!!

(拦截者虽然可以拦截并篡改证书信息(主要是拥有者和拥有者的公钥),但是由于拦截者没有CA的私钥,所以无法生成正确的签名)

中间的过程: 如果没有CA机构呢?

中间人可以获取到服务器端发过来的公钥,换成自己的公钥,然后客户端收到公钥,生成一个对称密钥对,用公钥加密,这个时候中间人就可以得到这个对称密钥对,就很危险了

握手协议过程

这个就是核心内容

2.为什么非对称加密比对称加密算法要慢呢?

之前有写过一篇关于对称加密和非对称加密算法的文章提过这个问题

juejin.cn/post/686548…