1.什么是HTTPS
由于HTTP的协议内容都是按照文本的方式明文传输的,这就导致在传输过程中会出现一些被篡改的情况。HTTPS,简单来说就是HTTP+SSL(安全相关的协议),在HTTP的基础上,HTTPS增加了一个加密层来保证用户的信息安全。
2.关于加密的基本概念
• 明文:要传输的真正的数据
• 密文:加密之后得到的数据
• 密钥:用与加密和解密的重要数据
• 加密:明文通过密钥变成密文
• 解密:密文通过密钥编程明文
3.HTTPS的工作过程
要保证数据安全,就需要对数据进行加密,在HTTPS中,网络传输过程不再直接传输明文,而是传输加密之后的密文。加密的方式有很多,但整体上可以分为两类:对称加密和非对称加密
3.1 引入对称加密
对称加密其实就是通过同一个密钥,把明文加密成密文,并且也能把密文解密成明文,是一种最简单的做法。
可以看到,在引入对称加密之后,即使数据被截获,由于黑客不知道对称密钥是什么,所以无法获取到真正的请求内容,但是服务器需要同一时间对很多个客户端进行提供服务,每个客户端的密钥都应该是不同的(如果密钥相同,黑客使用自己的客户端访问服务器就能获取到密钥),这就需要服务器维护每个客户端和密钥之间的关联关系,可以通过在客户端和服务器建立连接时协商确定密钥来实现,但如果黑客入侵了两者通信过程中经过的任意一个网络设备,就能够很容易的获取到密钥的内容,这时候的解决方法就是对密钥进行加密,即非对称加密。
3.2 引入非对称加密
通过非对称密钥加密的方式,针对对称密钥进行加密。在非对称密钥中,有两个密钥,一个叫公钥,一个叫私钥,通过公钥加密的需要用私钥解密,反之,通过私钥加密的需要用公钥解密,这样的加密机制,使得非对称加密的系统开销以及消耗的时间都比对称加密高很多。
虽然这个过程看着很安全,实际上黑客可以通过中间人攻击(黑客冒充自己是服务器)的形式来获取到对称密钥。
通过中间人攻击的形式,黑客很容易就获取到了对称密钥,这时解决问题的关键就是让客户端能够判断出当前的公钥是不是服务器的公钥,因此我们需要第三方机构对公钥进行公证,即引入证书。
3.3 引入证书
服务器在使用HTTPS前,需要向第三方公证机构申请领一份数字证书。服务器获取到证书后,能够从证书中得到公钥,证书就像身份证一样,证明了服务器公钥的权威性。