网络协议02-Https协议
前言
我们在登录一些网站时,可能使用的是Http协议,但是如果在支付的场景中,Http协议可能存在安全风险。因为容易被拦截。
比如,发送一个Http请求时,黑客拦截请求网络包并伪装成一个你要请求的网站,然后给你回复,假设他他给你回复:输入银行卡号和密码,那么你在浏览器那边完全没有察觉到就发过去,这样你就被骗了。
为解决这个问题,使用加密方式。
加密
对称加密
加密和解密使用同一个密钥。密钥需要保存好不做公开。如果被人知道密钥就容易发生被人解密的情况。
所以如果黑客拦截了你的请求,但是没有密钥就无法破解。但是你和被请求方之间怎么约定这个密钥?如果密钥也在网络上传输的话,还是可能会被黑客截获的。所以还是存在安全性。
还有另外一种加密方式:非对称加密
非对称加密
加密和解密使用不同的密钥。
加密的时候使用公钥,解密的时候使用私钥。私钥需要保存好不做公开。
客户端向支付网站发送请求时,使用支付网站的公钥加密,支付网站收到请求后使用自己的私钥解密,然后将结果通过客户端的公钥加密发送给客户端,客户端得到结果后使用自己的私钥解密。这个过程即便被黑客拦截,因其没有私钥而无法解密。
数字证书
像一部分网上银行,有时候我们需要安装证书。发送请求时,证书会给请求增加个签名,而这个签名是不可逆的,所以如果被截获也是无法解密获取到信息内容的。
HTTPS
超文本传输安全协议 ,Hypertext Transfer Protocol Secure,是一种通过计算机网络进行安全通信的传输协议。
HTTPS通过HTTP进行通信,但是其利用SSL/TLS来加密数据包,使得传输过程更加的安全,也保证了传输效率。
由于非对称加密性能不如对称加密。所以HTTPS协议将其结合起来,公钥私钥用于传输对称加密的密钥,而真正的数据量通信主要通过对称加密进行
工作模式:
客户端 服务端 |---- 加密套路 和一个随机 ------->| |<------加密套路 和一个随机数-----| |<-------我的证书,审核下---------| |<-------我的信息传输完了---------| 证书校验 |-----随机数公钥加密传输--------->| 计算出对称密钥 计算对称密钥 |--------使用对称密钥传输-------->| |------模拟对称密钥传输---------->| |<----好的使用对称密钥传输---------| |<----模拟对称密钥传输----------->| |<----------加密通信--- -------->|
作者:元宇宙
链接:https://juejin.cn/post/7039143599098839077