HTTPS
HTTPS基于HTTP的,只不过在HTTP的基础上多了一个加密层。因为如果网络上的数据传输是明文传输的,都是会存在被劫持、被篡改的风险。所以为了改善这个问题,就引入了加密,HTTPS也就出现啦。
一、关键概念:
明文:实际要传达的信息
密文:将明文转换后得到的信息
加密:把明文转换成密文
解密:把密文转换成明文
关键:在加密和解密的过程中,需要一个关键的钥匙,这把钥匙就是**(密钥)**
二、HTTPS的工作过程
为了在网络传输过程中保证数据安全,我们就需要进行加密操作,也就是说不再是直接传输明文了,而是加密后的密文。加密的方式整体可以分为两大类:对称加密和非对称加密。
1.对称加密
只有一个密钥,key
明文+key =>密文
密文+key =>明文
加密和解密都是使用同一个密钥,所以计算起来比较快速
2.非对称加密
需要两个密钥,公钥(pub),私钥(pri)
明文+pub => 密文
明文+pri =>密文
或者
密文+pri =>明文
密文+pub => 明文
3.基本工作过程
加密针对HTTP的各种header和body
(1)使用对称密钥
(2)使用非对称密钥加密
解决的问题:客户端要把生成的密钥key进行加密,传给服务器,不被黑客获取
在这里要注意的是客户端和服务器的业务数据传输,仍然是使用的对称加密方式,(对称加密速度快,成本低),这里引入了非对称加密只是为了保证对称密钥key能够安全的到达服务,保护对称密钥而已,所以非对称加密在对称密钥传输完成后就可以不用了,这里一共是三把钥匙(pub+pri+对称密钥的key)。
(3)中间人攻击
但是呢上述方式也不是绝对安全的,黑客他还可以将获取到pub进行拦截后,自己生成一对pub2和pri2,然后发给客户端,此时客户端收到了黑客发来的pub2然后就使用黑客的pub2进行加密传输,这样黑客就能使用自己的pri2进行解密了,然后再将客户端发回来的密文替换为pub加密的返回给服务器。所以就有了中间人攻击。
(4)引入证书
为了解决中间人攻击的方式,我们解决的关键问题就是要让客户端用什么方式去信任传过来的公钥(pub)。
所以在这里就引入了证书,如果要弄一个服务器,那么就需要去到权威机构这里申请个证书,此时权威机构会生成证书的公钥(pub2)和私钥(pri2)。这个证书上的内容有很多包括服务器的url、证书过期时间、颁布机构、以及服务器自己的公钥pub,还有加密后的签名,对于签名的话,会先针对证书的所有属性,计算一个校验和(签名),再由证书颁布机构,使用自己的私钥对于这个签名进行加密。服务器在注册时候会获得私钥pri2。
上述的加密过程,对称加密+非对称加密+证书,也是一个协议(SSL/TLS),所以HTTPS = HTTP+SSL。
以上就是对HTTPS的学习总结啦,还是存在很多的不足,争取再接再厉!