❝这篇我会用通俗易懂的图文并茂来讲HTTPS,小白一个可能有些地方有些欠缺请大家理解 >x<
❞
为什么需要HTTPS
HTTP报文使用明文(指未经过加密的报文)方式发送
HTTP明文协议的缺陷是导致数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要原因
具体来说 , 明文传输的每一个环节,数据都有可能被第三方窃取或者篡改,具体来说,HTTP 数据经过 TCP 层,然后经过WIFI路由器、运营商和目标服务器,这些环节中都可能被中间人拿到数据并进行篡改,也就是我们常说的中间人攻击。
❝HTTPS并不是一个新的协议, 而是一个加强版的HTTP。其原理是在HTTP和TCP之间建立了一个中间层,当HTTP和TCP通信时并不是像以前那样直接通信,直接经过了一个中间层进行加密,将加密后的数据包传给TCP, 响应的,TCP必须将数据包解密,才能传给上面的HTTP。这个中间层也叫安全层。安全层的核心就是对数据加解密。
❞
- 这个安全层就是 SSL/TLS
对称加密和非对称加密
「首先需要理解对称加密和非对称加密的概念,后续延伸到整个加密流程时才能更好地理解」
对称加密
「就是加密和解密使用同一个密钥的加密技术」
加密解密的过程
对称加密问题
- 黑客拦截,直接自己加密一个返还给你,你是完全不知道的
非对称加密
「非对称加密也成为公开密钥加密技术,就是使用不同密钥进行通信的加密技术」
- 如果有 A、 B 两把密钥,如果用 A 加密过的数据包只能用 B 解密,反之,如果用 B 加密过的数据包只能用 A 解密。
加密解密的过程
- 安全问题解决了 可视客户端没有私钥无法解密
对称+非对称加密
客户端请求服务端
服务端给key1给客户端 客户端使用对称加密 将key2放在key1里
key1需要密匙解开 别人没有打不开 传到服务端后
服务端使用私钥解开 获得到key2 key2是对称加密解密key2
因为第一次key2被key1加密了,是看不到的,密匙双方都有,别人获取不到, 后续传输直接传公钥key2,客户端和服务端都能用同一个会话秘钥进行加解密了 从而他们的通信以及安全都得到了保障
「黑客:你以为只有你们在进步?」
混合加密的问题
- 黑客拦截并且自己生成非对称加密 以假乱真
❝那么这时候为了解决该问题,就出现了一个机构,CA证书颁发机构
❞
CA证书颁发机构
「为了解决 主要问题 客户端无法确认收到的公钥是不是真的是服务端发来的」
由CA(一个权威的认证机构)颁发的一种证书,里面含有可以标识你身份的信息,类似于我们的身份证。
「证书是必须由服务端主动向CA申请的 服务器提供自己的信息和公钥给CA让其开数字证书」
「证书主要作用是数据加密和身份认证 , 身份认证就是指web浏览器和web服务器」
数字证书+混合加密流程
❝客户端请求 --> 服务端接收 --> 服务端返回数字证书给客户端 --> 客户端验证证书 --->客户端生成对称加密的随机Key然后用公钥加密 ---> 给服务端 ---> 服务端用他的私钥解密得到随机Key ---> 后续传输用该Key加密传输
❞
- 最后一步对称加密知不道有没有理解错,如果有问题请大神指点
补充 : 如何验证数字证书?
- 客户端对数字证书的明文信息进行hash加密获得摘要
- 然后用CA公钥解密数字签名,获取里面hash加密的摘要
- CA公钥是公开的 谁都能拿到 对比双方摘要是否相同,验证合法性
- 验证数字证书的有效期
- 是不是在CRL(吊销列表)里面
- 它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书
❝嘤嘤嘤 结束了 希望能帮到大家