Https加密过程

​ 我们都知道如果通过http以明文的方式进行传输的话,那么数据很容易泄露。这个时候我们就需要对这个数据进行一个加密传输。

​ 首先,我们想到的是通过对称加密来保护数据的传输过程安全,这个确实简单, 只需要通信双方拥有一个别人不知道的密钥,用这个密钥对数据加密,那么就可以保证数据传输的一个安全性。可是问题来了,那如何保证这个密钥传输给通信的另一方的时候,不被别人劫持呢?很明显,如果在这个传输过程中被非法人员获取这个密钥的话,那么他就可以顺利的解开双方传输的内容了。

​ 此时,我们又想到另外一种方法叫作非对称加密,非对称加密的一个原理可以简单的说为由公钥加密的数据只能由私钥解密,由私钥加密的数据只能由公钥解密。当客户端发起请求的时候,此时服务端将自己的公钥发给客户端。客户端通过公钥加密返回给服务端,即使此时非法人员拿到了公钥,也无法解密数据内容。那么问题又来了,由于客户端此时只有公钥,所以服务端此时选择私钥加密数据,将响应数据传回给客户端,客户端用公钥进行解密,但是别忘了前面的非法人员此时也有公钥在手上,那么对于服务端传输数据给客户端这条路就又行不通了。

​ 这个时候我们又想到了一个方法,那就是服务端和客户端各有一对公钥和私钥,客户端用服务端的公钥加密,传输给服务端后,服务端用自己的私钥解密,反过来同理,服务端用客户端的公钥加密,传输给客户端后,客户端用自己的私钥解密。但是这样的一个传输过程将会耗掉许多时间和资源,同时如果服务端和客户端两个公钥都被劫持的话,数据就又被窃取了。

​ 所以此时我们对非对称加密和对称加密进行结合。服务端自己持有一对公钥和私钥,客户端生成一个对称密钥,并将这个对称密钥用服务端的公钥进行加密,然后传回给服务端,服务端用自己的私钥进行解密,获取对称密钥。这样就好像防止了传输过程中被非法人员获取密钥的可能。

​ 此时的非法人员他还有一种方法,那么就是直接将服务端的公钥劫持,并将自己的公钥转发给客户端,客户端将对称密钥发回去的时候,非法人员用自己的私钥进行解密,获取对称密钥。同时非法人员还将这个对称密钥用劫持到的服务端的公钥进行加密返回给服务端。这样不仅客户端和服务端确立了通信过程中的对称密钥,非法人员也在神不知,鬼不觉的情况下获取了这个对称密钥。最后传输的数据依然被非法人员轻易破解。在这个过程中可以把这个非法人员充当一个中转站的作用,只不过没人察觉到这个中转站。

​ 那么应对这个问题要怎么办呢?解决这个问题,最重要的就是要确定这个公钥的来源是不是自己所请求的网站。那么就要给网站颁发身份证,也就是我们说的数字证书。而这个颁发数字证书的机构(CA)也持有一对公钥和私钥。

​ 那我们简单的来说下他的过程,就是网站首先会像CA机构申请一份数字证书,证书里面会包含一些关于该网站的公钥,域名等信息集合,CA机构会用自己手上的私钥对这个信息集合进行签名加密,并将这个加密后的数据连同证书交给网站。当要进行数据传输的时候,网站会将该证书发给客户端,客户端会使用CA机构的公钥进行解密,并且比较解密后的数据和证书上的数据是否一致。如果说有信息不一致,那么这个数据传输就会被终止。所以即使非法人员获取到这份证书,并将证书上的公钥换成自己的,那么当客户端解密后的数据和证书上公钥不一样的话,也无法进行数据传输,即让非法人员无法充当隐形的中转站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值