HTTPS

背景:

当前网络上,大多使用HTTPS了,很少使用HTTP。HTTPS也是基于HTTP,但是HTTPS在HTTP的基础上引入了“加密”机制。举一个场景:去到商场,可能会连公共wifi,商场的路由器有没有可能被黑客入侵,然后如果连上了商场的wifi并且使用http进行传输,黑客可以通过路由器来获取你的一些信息,假如你的支付宝密码在传输过程中被截取了,那么将非常危险!所以敏感的数据是不能再网络上传输的,需要进行加密。

1.HTTPS的加密

是通过密钥加密的,是一种可以将明文加密成密文,对密文进行解密的“钥匙”。

主要有两种加密方式:

(1)对称加密:

加密和解密是同一密钥。

(2)非对称加密:

有一对密钥:公钥和私钥,公钥/私钥可以进行加密/解密,也就是一个来进行加密,另一个就用来解密。

2.HTTPS的工作流程

主要是针对HTTP的body和header加密。

(1)引入对称加密

客户端使用密钥对明文加密,将密文同密钥一同传输给服务器,然后服务器通过传输过来的密钥对密文解密,得到明文。但是在这个过程中,黑客可以获取这些所有的信息,所以此时加密等同于没有加密。(黑客入侵路由器)

(2)引入非对称加密

客户端首先使用密钥对明文加密,然后使用非对称加密密钥(在这个过程中,客户端首先会发送请求询问服务器这边的公钥/私钥是什么,只需要返回其中一个就好,另一个留在服务器用来解密,这里假如返回的公钥),然后将这个经过两层加密的数据传输和密钥给服务器,服务器接收到了这写数据,首先通过刚才生存的私钥进行解密,然后再用传过来的密钥进行解密,得到明文数据。

但是在这个过程中黑客也有办法来获取明文数据:

首先客户端会发送请求服务器询问公钥(使用公钥加密,私钥解密)是什么,然后黑客此时已经入侵路由器,可以通过一定的办法来截取到这个请求,此时黑客就可以自己生成一对密钥,然后将公钥返回给客户端,黑客自己保存服务器这边传来的公钥,客户端此时就拿着这个伪造的公钥进行非对称加密,此时也相当于没有加密,等待加密后的数据传过来时,黑客首先先解密获得原文,再用刚才服务器生存的公钥进行加密(瞒天过海,服务器感知不到),归根结底在客户端没有分辨能力,无法区别这个公钥是不是伪造的。

(3)引入第三方“公证机构”

公证机构会颁发给服务器一个证书,证书中会有一些重要的属性:服务器的网址,服务器的公钥,公钥的过期时间,数字签名(很重要,是一个针对证书中属性计算的校验和,并且通过公证机构生成的私钥进行了非对称加密,公钥会内置在客户端设备的操作系统,设备出厂就已经内置好了)等等。

当客户端拿到了这个证书,就可以拿到这个数字签名,并且根据内置的公钥进行数字签名的解密,然后得到数字签名,然后客户端会拿着证书的这些属性计算出一个校验和,与这个解密的校验和进行比对,如果相同就认为证书中的这些信息是可靠的,也就是证书中的公钥确实是服务器生成的,不是伪造,此时就可以避免上述出现的问题了。

虽然在这个过程中,路由器也可以获取到这个证书,并且不能进行数据签名的解密,即使伪造了一个服务器的公钥,客户端在计算校验和的时候会发现与解密后的校验和是不同的,所以不会进行加密操作;黑客也不能通过自己计算一个校验和,自己生成一对密钥,然后进行加密,客户端没有进行解密的密钥,所以黑客自己也不能获取到明文数据;黑客更不能通过自己向公证机构申请一个证书,这个过程需要一定的资料,很明显黑客获取这个数据是不合法的,所以这种方式不可行。

综上:HTTPS的加密引入了对称加密(加密明文)和第三方机构约束的非对称加密(加密密钥(密钥是加密明文的密钥))。

3.问题:

明明只需要第三方机构约束的非对称加密,为什么还需要对称加密?

非对称加密/解密,运算成本比较高,运算速度也比较慢;而对称加密运算成本低,速度快。

与直接使用非对称加密加密密文,这里使用非对称加密密钥,加密的数据量肯定要少一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值