目录
1. 加密和解密
HTTPS工作过程
2. 对称加密
3. 对称加密
4. 既然都有非对称加密了,那为啥还要有对称加密
5. 中间人攻击
6. 引入证书
HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层.
HTTP 协议内容都是按照文本的方式明文传输的. 这就导致在传输过程中出现一些被篡改的情况.
现在HTTP的页面已经很少了,主要还是因为 "运营商劫持事件"
1. 加密和解密
加密就是把 明文 (要传输的信息)进行一系列变换, 生成 密文 .
解密就是把 密文 再进行一系列变换, 还原成 明文 .
对称加密: 加密和解密使用同一个密钥
非对称加密:加密和解密使用不同密钥
HTTPS工作过程
要保证安全,那就要加密,加密简单的办法就是,对称加密
2. 对称加密
最简单的对称加密是 按位异或
一个服务器,要给很多客户端提供服务,这些客户端使用的是不同的秘钥
因为如果都使用的都是同一个秘钥,那就相当于没有秘钥(因为如果此时黑客把自己也当一个客户端的话,向服务器发送请求,此时就获得了这个秘钥)
所以典型的做法,就是每个客户端,在建立连接之初,就先自己生成秘钥,然后进行通信的时候,先把自己的秘钥发送给服务器
为了解决这个问题,那就需要引入 非对称加密
3. 对称加密
加密时一个秘钥,解密时一个秘钥,这两个是成对的. 如果知道一个,是无法推测是另一个的
比如 可以使用秘钥A来加密,配对的秘钥B来解密
也可以使用秘钥B来加密,配对的秘钥A来解密
可以让服务器,生成一对非对称秘钥
一个是公开出来的,任何人都能获取到 公钥
另一个是私密的,只有服务器自己知道 私钥
客户端就可以先从服务器拿到服务器的公钥
然后使用公钥对自己生成的对称秘钥进行加密
此时由于外界只有公钥,私钥只是服务器自己所有的(别人拿不到)
只有服务器可以使用私钥对上述请求进行解密
4. 既然都有非对称加密了,那为啥还要有对称加密
因为对称加密开销成本较低,非对称加密开销成本大
虽然说非对称加密已经很安全了,但黑客针对这个情况,还是有办法进行入侵的,那就是中间人攻击
5. 中间人攻击
6. 引入证书
中间人攻击的关键,就是要能够证明当这个公钥,是服务器自己的公钥,而不是伪造的
上面这套HTTPS的 对称加密+非对称加密+证书 这个流程不是HTTPS独有的
这套机制属于一个专门的协议 SSL(旧)/ TLS(新) (很多加密的场景都会用到这个)
HTTPS = HTTP + SSL