一、什么是HTTPS
HTTPS也是一个应用层协议,而HTTP协议内容的传输方式是明文的,这就导致在传输过程中会出现一些被篡改的情况,基于这种情况,所以HTTPS就是在HTTP协议的基础上引入了一个加密层,那么什么是加密解密呢?
1、加密解密是什么
简单点说,加密就是把明文进行一系列的变换,生成密文。
解密就是把密文再进行一系列变换,还原成明文。
而在这个加密解密过程中,往往会有一个或多个中间数据,辅助这个过程,而这样的数据就叫密钥。
加密解密过程,就像我们用钥匙锁门一样,插进钥匙空逆时针转一下,就是加密过程,顺时针转一下,就是解密过程,而钥匙上的齿轮就是密钥
加密解密到如今已经发展成⼀个独立的学科,密码学,而密码学的奠基人,也正是计算机科学的祖师爷之⼀:艾伦·麦席森·图灵
2、为什么要加密
举个例子:我们打开电脑,会弹出各种各样莫名其妙的烦人弹窗广告,而我们去点击关闭时,就会给我们弹到其他页面,有时会给我们下载一些不需要的东西。
由于我们通过网络传输的任何的数据包都会经过运营商的网络设备(路由器、交换机等),那么运营商的网络设备就可以解析出你传输的数据内容,并进行篡改。这就是运营商劫持事件。
我们点击关闭按钮,其实就是在给服务器发送一个HTTP请求,获取到的HTTP响应其实就包含了该APP的下载链接,运营商劫持后,就会发现这个请求是要下载的对应APP,那么就会自动的把用户的响应给篡改成对应APP的下载地址了。
所以,因为HTTP的内容是明文传输的,明文数据会经过路由器、wifi热点,通信服务运营商、代理服务器等多个物理节点,如果在传输过程中被劫持,那么传输的内容则完全暴露了。劫持者还可以对篡改传输的信息且不被双方察觉,这就是中间人攻击,所以我们就需要对信息进行加密。
当然,不仅运营商可以进行劫持,其他黑客或不法分子也是可以用同样的手段进行劫持信息,来窃取用户的隐私或者篡改内容,甚至窃取用户的支付宝、微信等支付密码,所以明文传输是比较危险的。
3、常见的加密方式
1、对称加密
- 采用单密钥的加密方法,用同一个密钥对信息进- 行加密和解密,这种加密方法称为对称加密,也称为单密钥加密。
- 特征:加密和解密所用的密钥都是相同的。
- 特点:算法公开、计算量小、加密速度快、加密效率高。
- 常见对称加密算法:DES、3DES、AES等
对称加密其实就是通过同⼀个"密钥",把明文加密成密文,并且也能把密文解密成明文。
举个例子:
⼀个简单的对称加密,按位异或
假设:明文 a = 1234,密钥 key = 8888
则加密 a ^ key 得到的密文 b 为 9834
然后针对密⽂ 9834 再次进行运算 b ^ key,得到的就是原来的明文 1234。
当然,按位异或只是最简单的对称加密,HTTPS中并不是使⽤按位异或。
2、非对称加密
- 需要两个密钥来进行加密和解密,这两个是公开密钥(简称公钥)和私有密钥(简称私钥)
- 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
- 常见非对称加密算法:RSA、DSA等
非对称加密要用到两个密钥,⼀个叫做"公钥",⼀个叫做"私钥"。而公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多。
- 通过公钥对明文加密,变成密文,也可以通过私钥对明文加密,变成密文
- 通过私钥对密文解密,变成明文,也可以通过公钥对密文解密,变成明文
举个例子:
A要给B一些重要的文件,但是B可能不在,于是A和B就提前做了一个约定:
B说:我桌子上有一个盒子,我给你⼀把锁,你把文件放盒子里用锁锁上,然后我回