HTTPS的加密方式
HTTPS
通过上述了解,我们对HTTP有了相对深刻的认识,但是HTTP有个问题——它 “明文传输” 的特点,导致了它有安全的漏洞,为了应对这种情况,就基于HTTP发明了HTTPS加密协议(SSL/TLS 协议)
SSL/TLS 协议
为了加密传输的内容,服务器和客户端就引入 “密钥” 这个东西,负责加密&解密
主流的HTTPS加密方式有对称加密、非对称加密和应对中间人攻击的证书加密
-
对称加密
客户端 / 服务器生成一个密钥,同时对方也拥有这个密钥。这个密钥既可以加密,也可以解密,是客户端随机生成的,不同客户端对应不同的密钥,再通过网络传输给服务器
像这种一把锁控制全部的方法,传输效率高,但安全系数低,上面说是客户端通过网络传输密钥,那传输的过程中就很容易被窃取,毕竟传输 “密钥是xxx” 这个信息并没有加密
-
非对称加密
是对称加密的更进一步的的加密方式
拥有两把钥匙,pub公钥是公共的,负责加密;pri私钥是私有的,负责解密,公匙谁都可以拥有,但私钥只在服务器手里,黑客如果想得到私钥就只能黑进服务器,安全系数增加
公钥就想是锁头,谁都能上锁,私钥就是钥匙,只有一把
这种传输方式虽然更加安全,但是又加多了一把锁,占用的系统资源是比较多的,效率不高
-
对称加密+非对称加密
聪明的人们就想到了通过两者结合的方式。第一次把对称加密的钥匙,通过非对称加密的方式,传输给对方,这样黑客就不知道对称密钥是多少了,接下来的文件就只需要通过对称密钥进行加密,效率增加
-
中间人攻击
但是上述这种方式就绝对安全吗?道高一尺魔高一丈,黑客可以冒充对方的方式,来间接的窃取,belike双面间谍
具体的流程如图所示
-
证书加密
为了应对这种情况,引入了证书的机制
证书是一个结构化的字符串,由第三方公证机构办法给服务器的
所以在客户端申请访问服务器时,都会先索要服务器的证书,证明 “你是你”
具体流程如图所示
从图中能看出,pub3 / pri3 跟平时的用途不太一样? 这里的pub3是负责解密,pri3负责加密;跟加密通信的pub加密,pri解密不同?
- 前者是签名机制
- 后者是通信机制
这是因为两者的目标不一样。
-
签名机制是 “我要让别人知道这真的是我发的,且内容没被改过” ,所以私钥要我自己保存着,签名确实是我发出的(pri在我这,只有我能加密)
-
通信机制是 “我要让别人(只有拥有私钥的人)能解密”,所以只有他有pri能解密
这就是HTTPS,在HTTP的基础上,引入了加密层。像这种加密方式就是 SSL/TLS 协议。
所以能大致理解成HTTPS == HTTP + SSL/TLS 协议(●’◡’●)
这就是我对HTTPS加密方式的总结,希望看到这里对你有所帮助,如有错误欢迎指出,祝愿各位身体健康~