前言
接下来介绍的这套加密过程,不是HTTPS独有的,这套机制是属于一个专门的协议SSL/TLS,很多加密场景都会用到这个,接下来咱们就来讨论一下HTTPS = HTTP + SSL这个过程~
一、提前必备知识
想要理解这套加密过程,我们有必要了解一下几个名词;
接下来可以想象这样一个场景:A给B发送一条加密后的消息;
1.1、明文
就是A要给B发送的原始信息,也就是没有加密的信息;
1.2、密文
就是在A给B发送的原始消息之上,进行加密后得到的信息;
1.3、加密
将明文转换成密文;
1.4、解密
将密文转化成明文;
1.3、密钥
A在加密的时候,需要按照一个格式进行加密,这个加密格式就是密钥;同时B在拿到A的发送的消息后,需要用来解密的格式就是密钥,通过密钥,就可以将密文转化成明文;(将看不懂的,转化成B能看懂的);
1.4、对称加密
加密和解密使用同一个密钥(用同一个格式,进行加密和解密);
1.5、非对称加密
加密和解密使用不同的密钥(用不同的格式,进行加密和解密);
二、SSL/TLS协议的具体加密过程
2.1、对称加密开销成本较低,对不是很重要的信息进行加密
过程:客户端与服务器建立连接之初,不同的客户端生成不同的密钥,然后在进行通信的过程中将密钥发送给服务器,然后再将密文传输;
但是,如果传输中途,被黑客入侵,密钥就形同虚设~(如下图)
因此,这种加密方式,不是很安全,虽然有更安全的加密方法,但是开销较大,而这个方法开销小,只是用来对不是那么重要的信息加密;想要对更重要的信息进行加密,就需要引入非对称加密;
2.2、非对称加密
原理:为了使信息更加安全,可以用密钥A来进行加密,配对着密钥B来进行解密,或者B来加密,配对A来解密;
过程:让服务器生成一对非对称密钥,其中一个使公开的,任何人都可以拿到公钥,另一个使私密的,只有服务器自己有私钥;客户端可以先从服务器拿到服务器的公钥,然后使用公钥对自己生成的对称的密钥进行加密,此时外界只有公钥,私钥只有服务器自己有,因此只有服务器可以对上述的请求使用私钥进行解密;
但是,黑客还是有办法入侵的,如下图:
非对称加密也无济于事,这时就需要引入证书了!
2.3、证书
原理:黑客能破解非对称加密,就是因为客户端不知道公钥是谁发送给的,为了解决这个问题,就需要证书了;证书中就包含了此网站相关信息,其中就有该网站的公钥,证明是该服务器发出的;客户端拿到证书,就可以进行校验,检查是否合法(证书校验的过程不一定非要访问网络,在系统安装好的时候,就会内置检查机制);
过程: