网络相关-https
2020-04-15 22:38:5410/1/2021, 3:34:43 AM
HTTPS是什么
HTTPS(hyper text transfer protocol over secure socket layer),是以安全为目标的HTTP通道,简单说就是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS和HTTP的区别
- HTTP是明文传输,HTTPS通过SSL/TLS进行了加密
- HTTP的端口是80,HTTPS的端口是443
- HTTPS需要CA证书
为什么要有HTTPS
- 建立一个信息安全通道,来保证数据传输的安全
- 确认网站的真实性,防止钓鱼网站
HTTPS的原理
整体上HTTP到HTTPS的历程是: HTTP --> 对称加密 --> 非对称加密 --> 对称加密+非对称加密 --> 中间人攻击 --> CA证书
对称加密
HTTP的通信是明文的,就相当于在网络上裸奔,任何组织或个人都可以监听、窥探数据包。安全行较差,此时对称加密出现了:每次传输之前,发送方用一个加密算法加密,然后再发送;接收方使用加密算法对应的密钥进行解密。因为加密/解密都用的同一个密钥,因此称之为对称加密
弊端
密钥容易被截取
非对称加密
使用非对称加密的双方都有一对密钥:私钥(保密),公钥(公开)。使用私钥加密的数据只有对应的公钥才能解密;用公钥加密的数据只有对应的私钥才能解密。
弊端
速度较慢,相较于对称加密算法,非对称加密算法的速度要慢上百倍
对称加密+非对称加密
使用非对称加密传输对称加密的密钥,之后使用对称加密通信
弊端
不能确保接收人的身份,容易受到中间人攻击
中间人攻击
在浏览器发送公钥的时候,有个中间人截取了浏览器的公钥,然后把自己的公钥发送给服务器来冒充浏览器,然后使用自己的私钥解密对称加密使用的公钥来进行通信。(类似于代理)
CA证书
👀:这些CA本身也有证书来证明自己的身份,并且CA的信用是像树一样分级的,高层的CA给底层的CA做信用背书,而操作系统/浏览器中会内置一些顶层的CA的证书,相当于你自动信任了他们。 这些顶层的CA证书一定得安全地放入操作系统/浏览器当中,否则世界大乱。