HTTPS如何保证网络传输的安全性

http协议使用明文进行网络数据的传输,无疑没有安全性。在此基础上,https应运而生。https采用加密算法保证网络数据传输过程的安全性。下面介绍整体加密流程。

首先,浏览器在向网站服务器发送请求时,正常情况下会得到服务器的响应。但两者之间如果使用明文传输的话,可能会遭到中间路由的恶意攻击,比如篡改数据等问题,这时浏览器就无法得到正确的网站响应。

为了不让中间路由从中捣乱,我们就需要对传输过程进行加密。
首先,可以约定浏览器和服务器双方都拿到同一个密钥,这个密钥既能对数据进行加密,也能进行解密,只要不让中间路由拿到密钥,它就无法拦截篡改数据了,这样的过程称之为对称加密。但是问题在于,浏览器和服务器如何约定两者之间的密钥呢?一般会由浏览器随机生成一个密钥发给服务器,然后两者就可以通过对称加密的方式进行数据传输,但是浏览器向服务器发送随机密钥这个过程也不能是明文的,否则相当于这样一种场景:两个人之间在互传纸条,怕被别人看见里面内容,所以想通过用一个盒子把纸条锁进去的方式来传,不过两人想要拿出纸条,都需要同一把钥匙,那么在传纸条之前就需要先给对方一把钥匙,这里的钥匙就是浏览器随机生成的密钥,如果用明文传输,就相当于把钥匙从你这里扔到对方那里,并大喊一声,我要扔给你钥匙了啊!那这时你们中间隔着的那些人就都会注意到你要扔钥匙了,你扔的时候别人随时都可以拦截到你的钥匙。

所以,还需要把密钥给加把锁。这里不具体介绍加密的中间演变过程,直接扔出最终版:非对称加密。

所谓非对称加密,就是指服务端手里拿着一把私钥,并配出一把公钥,然后它把公钥扔给浏览器,私钥谁都不给,并且规定,通过私钥加密的数据只有公钥能解开,通过公钥加密的数据只有私钥能解开。在实际操作过程中,服务器会把自己的公钥和网站域名等信息都发送给第三方的CA机构,CA机构通过自己的私钥对这些信息进行签名,形成服务器网站的证书。然后CA会把签好名的证书返回给服务器,这个过程相当于CA机构对服务器的公钥又进行了一次加密形成证书,服务器拿着这个证书(被加密过的服务器公钥)发给浏览器,浏览器通过内嵌的CA机构的公钥对这个证书进行解析,解析后就能得到服务器的公钥,然后通过服务器的公钥对自己随机生成的密钥进行加密,并发给服务器,服务器拿到这个由公钥加密后的密钥,通过自己的私钥能解开,并拿到里面浏览器随机生成的密钥。这样一个非对称加密过程就完事了。

由于非对称加密比较复杂,效率比对称加密低,因此非对称加密过程主要用于给传输对称加密的密钥,然后浏览器和服务器两者都拿到对称加密的密钥后,通过对称加密过程传输数据。

在非对称加密过程中,即使中间路由截取到服务器的响应,并向CA申请一个证书,把截取到的数据篡改之后再发给浏览器也是没有用的,因为浏览器内嵌了CA的公钥,它解密出来的证书既包含了网站公钥,又包含了网站域名等信息,如果浏览器发现解密出来的网站域名跟访问的域名对不上,那他就会发出异常提醒。

https就是通过这样的非对称加密和对称加密过程来保证网络数据传输的安全性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值