HTTPS原理

2021-04-11  本文已影响0人  HYIndex

Web应用存在HTTP和HTTPS两种通信方式,HTTP默认端口80,数据以明文传输,HTTPS默认端口443,数据加密传输。

HTTPS协议

HTTPS实际上并不是一种新的网络协议,是HTTP的基础上加了SSL层,数据的加密就是在SSL层完成的。


数据传输方式

明文传输

客户端和服务器已明文方式传输数据,没有安全性,数据再传输过程中可能被劫持和篡改


对称加密传输

对称加密算法:双方使用同一秘钥对数据进行加解密(AES、DES)


特点

一种改进的方案是每个客户端先协商一个加密算法和秘钥,不同客户端使用不同的算法和秘钥,这就坏人即使作为一个用户也不知道别的用户的秘钥。但是这种方式协商秘钥的过程是公开明文的,坏人也有办法窃取到秘钥的,仍然存在风险。

非对称加密传输

非对称加密算法:加密解密采用不同的秘钥,私钥加密后的密文,所有的公钥都可以解密,公钥加密后的密文只有私钥能解密。私钥通常只有一个人有,公钥可以公开发给所有人。(常见算法:RSA)


特点

HTTPS(对称加密+非对称加密)

特点

CA机构和数字证书

从前面可以看到,协商阶段时候用非对称加密,客户端一开始就要持有公钥,那么客户端如何安全的获取公钥呢?
如果服务端直接将公钥发给客户端,中间可能被坏人劫持,返回一个假公钥,客户端使用假公钥进行加密后请求,坏人就可以使用假私钥解出明文,篡改内容后再使用真公钥加密后请求到服务器,这时服务器拿到的是被篡改后的数据。


数字证书和CA机构就是用来保证服务器安全的发送公钥给客户端的。
校验过程

  1. 读取证书中的所有者,有效期等信息进行校验
  2. 查找系统内置的受信任证书发布机构CA,与服务器下发的证书中的CA对比,校验是否是合法机构颁发
  3. 如果找不到,浏览器报错警告证书不可信
  4. 如果找到了:

总结

一个完整的HTTPS请求流程如下图所示:


参考

【1】【掘金】深入理解HTTPS工作原理

上一篇 下一篇

猜你喜欢

热点阅读