目录
HTTPS背景知识
HTTPS是什么?
HTTPS也是⼀个应用层协议。是在HTTP协议的基础上引入了⼀个加密层。
HTTP协议内容都是按照文本的方式明文传输的。这就会导致在传输过程中出现一些被篡改的情况。早期很多公司刚起步的时候,使用的应用层协议都是HTTP,而HTTP无论是用GET方法还是POST方法传参,都是没有经过任何加密的,因此早期很多的信息都是可以通过抓包工具抓到的。
为了解决这个问题,于是出现了HTTPS协议,HTTPS实际就是在应用层和传输层协议之间加了一层加密层(SSL&TLS),这层加密层本身也是属于应用层的,它会对用户的个人信息进行各种程度的加密。HTTPS在交付数据时先把数据交给加密层,由加密层对数据加密后再交给传输层。
当然,通信双方使用的应用层协议必须是一样的,因此对端的应用层也必须使用HTTPS,当对端的传输层收到数据后,会先将数据交给加密层,由加密层对数据进行解密后再将数据交给应用层。
此时数据只有在用户层(应用层)是没有被加密的,而在应用层往下以及网络当中都是加密的,这就叫做HTTPS。
加密解密
什么是加密和解密?
- 加密就是把明文( 要传输的信息)进行一系列变换,生成密文。
- 解密就是把密文再进行一系列变换,还原成明文。
在这个过程中,往往需要一个或者多个中间的数据,辅助进行这个过程,这样的数据被称为密钥(正确发音是yue四声,但是大家都读作yao四声)。
例如在电影《火烧圆明园》中,有人要谋反干掉慈禧太后。恭亲王奕䜣给慈禧递的折子。折子内容只是扯⼀扯家常,但是套上⼀张挖了洞的纸就能看到真实要表达的意思。慈禧通过一张挖了洞的纸解密出了折子要传递的信息。
在这个例子中:
- 明⽂:"当心肃顺,端华,戴恒
- 密文:奏折全文
- 密钥:挖了洞的纸
因此在古代其实人们早已能够运用加密和解密,而加密解密到如今已经发展成为一门独立的学科:密码学。而密码学的奠基人,也正是计算机科学的祖师爷之一,艾伦·麦席森·图灵。
计算机领域中的最高荣誉就是以他名字命名的“图灵奖”。
为什么要加密
早期接触互联网的人应该都或多或少地了解臭名昭著的“运营商劫持”事件。比如当我们要想下载一个软件的时候。未被劫持的效果,点击下载按钮,就会弹出你想要下载的软件的下载链接。
但是由于你发出的HTTP请求是明文传输的,并且一定要经过运营商的路由器,那么路由器收到你的HTTP请求之后经过分析得知你想要下载某一个软件,此时它便可以响应一个其它软件的下载链接给你,如果这时候你稍微一不注意就会下载到某些流氓软件。
劫持的具体过程如下:
中间人攻击
因为http的内容是明文传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务
器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击 ,所以我们才需要对信息进行加密。
不止运营商可以劫持,其他的黑客也可以用类似的⼿段进行劫持,来窃取用户隐私信息,或者篡改内容.试想⼀下,如果黑客在用户登陆支付宝的时候获取到用户账户余额,甚⾄获取到用户的支付密码.....在互联网上,明文传输是非常较危险的事情!!!
HTTPS就是在HTTP的基础上进⾏了加密,进⼀步的来保证用户的信息安全。
常见的加密方式
对称加密
- 采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所用的密钥是相同的
- 常见的对称加密算法:DES、3DES、AES、TDEA、Blowfish、RC2等等
- 特点:算法公开,计算量小,加密速度快,加密效率高
对称加密的原理
如果你还想知道更多的非对称加密算法,可以了解一下RSA,这是一个基于因式分解的非对称加密算法。下面我们简单理解一下对称加密,对称加密最典型的例子就是异或运算。
我们用A异或B得到一个中间值C,此时如果我们采用C异或B就能重新得