HTTPS的加密方式介绍
一.HTTPS的概念
目录
二.HTTPS和HTTP的体系结构
HTTP体系结构
HTTPS体系结构
三.为什么要引入HTTPS
被篡改情况举例如下
四.什么是加密,解密,密钥
五.加密的方式
1.对称加密
对称加密演示图(假设客户端生成密钥)
使用对称加密产生的问题
a.服务器需要维护每个客户端和每个密钥的关联关系
示意图如下
解决方案示意图如下
引入非对称加密的背景
2.非对称加密
a.非对称加密的常见概念
b.对称加密和非对称加密的特点
非对称加密的工作原理图
六.中间人攻击
1.中间人攻击的示意图
七 .数字证书(校验机制)
申请颁发证书的大致流程
数字签名
总结证书(校验机制)流程和结论
数字证书(校验机制)解决中间人攻击的示意图
HTTPS是一个应用层协议,是在HTTP协议的基础上引入了一个加密层(SSL or TLS)。
二.HTTPS和HTTP的体系结构
HTTP体系结构
HTTPS体系结构
三.为什么要引入HTTPS
HTTP协议内容都是按照文本的方式明文传输的,这就会导致在传输过程中出现一些被篡改的情况。
被篡改情况举例如下
这样黑客就会很容易地进行篡取。 在互联网上,明文传输是一件非常危险的事情。
HTTPS就是在HTTP的基础上进行了加密,进一步的来保证用户的信息安全的。
四.什么是加密,解密,密钥
加密就是把明文(要传输的信息)进行一系列变换,生成密文。
解密就是把密文在进行一系列变换,还原成明文。
在这个加密和解密的过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据成为密钥。
五.加密的方式
加密的方式有很多种,但是整体上可以分成两大类:对称加密和非对称加密。
1.对称加密
对称加密其实就是通过同一个密钥,把明文加密成密文,并且也能把密文解密成明文。客户端和服务器最开始通信的时候,就需要一方生成唯一的密钥,再通过网络传输给另一方。
对称加密演示图(假设客户端生成密钥)
引入对称加密之后,即使数据被截获,由于黑客不知道密钥是啥,因此就无法进行解密 ,也就不知道请求的真实内容是啥了。
使用对称加密产生的问题
a.服务器需要维护每个客户端和每个密钥的关联关系
服务器同一时刻其实是给很多客户端提供服务的,这么多客户端,每个人用的密钥必须是不同的(如果是相同的密钥,意味着黑客可以自己搞个客户端,就能拿到密钥了)。因此服务器需要维护每个客户端和每个密钥之间的关联关系,这是一个很麻烦的事情。
示意图如下
为了解决上述的问题,可以在客户端和服务器建立连接的时候,双方协商确定这次的密钥是啥
解决方案示意图如下
引入非对称加密的背景
但是如果直接把密钥明文传输,那么黑客也能获得密钥了,此时后续的加密操作就形同虚设了,因此密钥的传输也必须加密传输。即使再给密钥进行加密,但是新的密钥始终是明文的。为了解决这个问题,引入非对称加密
2.非对称加密
a.非对称加密的常见概念
非对称加密要用到两个密钥,一个叫做公钥,一个叫做私钥
公钥和私钥是配对的。最大的缺点就是运算速度非常慢,比对称加密要慢得多。
- 通过公钥对明文加密,变成密文
- 通过私钥对密文解密,变成明文
也可以反着用
- 通过私钥对明文加密,变成密文
- 通过公钥对密文解密,变成明文
b.对称加密和非对称加密的特点
对称加密:运算速度快,开销小,适合针对大量数据进行加密
非对称加密:运算速度慢,开销大,加密小的数据还行,加密大量数据,非常耗时
非对称加密的工作原理图
- 客户端在本地生成对称密钥,通过公钥加密,发送给服务器。
- 由于中间的网络设备没有私钥,即使截获了数据,也无法还原出内部的原文,也就无法获取到对称密钥。
- 服务器通过私钥解密,还原出客户端发送的对称密钥,并且使用这个对称密钥加密给客户端返回的响应数据。
- 后续客户端和服务器的通信都只用对称加密即可。由于该密钥只有客户端和服务器两个主机知道,其他主机 / 设备不知道密钥即使截获数据也没有意义。
- 由于对称加密的效率比非对称加密高很多,因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密。
但是上述的加密还是有一定问题。 黑客可以通过特殊手段,来获取对称密钥,破坏后续传输的安全性,这种手段是中间人攻击
六.中间人攻击
1.中间人攻击的示意图
- 服务器生成公钥pub1,私钥pri1
- 客户端生成对称密钥key
- 黑客自己生成公钥pub2,私钥pri2
则也正如图中所说,关键是要给客户端(唐三藏)配一个孙悟空,用孙悟空的火眼金睛来区分出这个公钥是黑客生成的,还是服务器生成的。这就需要引入数字证书 (校验机制)
七 .数字证书(校验机制)
申请颁发证书的大致流程
数字签名
数字签名本质上是一个被加密的检验和,校验和是把要检验的数据部分(包含证书的有效期是什么时候,证书的颁发机构是谁,服务器的公钥是谁,服务器的拥有者是啥)代入一个固定的公式,算出的一个数字。
总结证书(校验机制)流程和结论
1.把关键信息(如公钥)作为输入生成校验和
2.针对校验和加密(第三方认证机构,也生成一对非对称密钥pri2,pub2,使用pri2进行加密)
输入的值相同,得到的校验和就是相同的
输入的值不同,得到的校验和,大概率是不相同的
校验和不同,输入的初始值就是不同的