HTTPS的精妙之处
在我写的算法相关文章里面,有一篇RSA相关的文章https://www.yuque.com/wztlink1013/blog/ccd10c,里面解释了对称加密和的非对称加密
我觉得HTTPS的精妙之处就是在于它同时运用了对称加密(AES)和非对称加密(RSA)两种加密,下面我解释一下:
HTTP为何不安全?
客户端对服务端做出请求,然后服务端做出响应,这个大家都知道,但是HTTP是明文传输,我在https://www.yuque.com/wztlink1013/blog/bw80k6/这篇文章里面也详细抓包展示了HTTP的明文传输
这样传输的信息就不安全,攻击者就能轻易得到,进一步讲,得到了就不安全吗?
- 因为假如此时服务端响应给客户端的是很重要的诸如密码或者个人信息之类的敏感信息,就会被窃听
- 中途截取,将所传输的信息不完整等等
HTTPS安全在哪?精妙之处!
由上图所示,HTTPS的协议栈相较HTTP协议栈多了安全层,也就是SSL(安全套接层)或者TSL(安全传输层)协议
客户端向服务端发出一个https请求,其中端口位443
说明:采用https的网站都会有相应的ssl证书,在服务器那里,这个证书内容就是颁发的机构、到期时间……,而这个证书的形式就是以公钥的形式存在于服务器的。
服务端响应给客户端这个证书(公钥的形式)
- 客户端解析响应来的公钥,因为需要验证这个ssl是不是伪造的还是过期了等等,假如验证不成功,就会如下:
- 然后客户端(浏览器)利用这个公钥随机得出的私钥,然后将这个私钥发给服务端,以后客户端和服务端就可以利用这个密钥来解密双方传来传去的加密信息了
说明:随机的出的私钥并不是那么“随机”,因为要保证不可攻破性,具体可以看我的RSA算法相关文章
- 服务端将要展示给客户端的具体信息利用上述私钥来加密
- 客户端接收到服务端发过来的加密信息,用共同都有的私钥解密查看之
整个过程对外人而言看到的都是加密后的信息,而不是明文
综上,56条是采用了AES对称加密,而前面是利用RSA算法得到私钥
参考
- 这位博主(数据中心网络工程师)将SSL讲解的更加细致,可以常看:SSL/TLS协议详解