HTTPS

在网络上进行传输数据的时候,通常要进行加密,如果不加密的话,就相当于在网络上裸奔,所有的请求和返回的信息都会被查到。


加密算法分为对称加密和非对称加密


对称加密


 就是加密和解密的密钥是相等的,这种加密解密的速度很快,但是如果在传输密钥的过程中,密钥被人截获,就相当于没有进行加密。


非对称加密


通常是加密密钥和解密密钥是不相等的,这种比较安全,但是有个很大的缺点,就是速度比较慢,不适合传输比较大的数据。

所以由此,我们可以想一下,如果用非对称加密的方式,将一个对称密钥进行加密传输,接收方和发送方在真正进行传输的时候,使用这个对称密钥进行传输,既保证了安全,也提高了速度。


可是,如果有一个中间人截获了这个公钥,而把自己的公钥传给发送方,然后用自己的私钥解密,来进行读取信息,这样还是没能起到安全传输的结果。


这里借用一张图  

    

 
所以说到底,这个关键就是保证发送方公钥的准确传输,以及不被篡改。

所以为了防止这种情况,我们就要保证传输的发送方的公钥是正确的,这里我们采用,一个有公信力的认证组织CA来进行验证,确保传输的公钥是正确的。


上面的过程在网络中,可以将发送方可以看成服务器,将接收方可以看成是浏览器

 

  • 1.在发送方浏览器发起了一个https请求之后。dns解析,服务器响应了之后。
  • 2.首先服务器将自己信息和公钥进行hash算法,生成一个消息摘要,在将这个消息摘要使用被CA认证过的私钥进行加密,生成数字签名,将这个数字签名和信息摘要一起作为一个数字证书进行传输,传输给接收方。
  • 3.浏览器接受了之后,将这个数字签名用CA的公钥进行解密,这个公钥如何获取?(通常在浏览器上会有预置的CA列表),如果解密的结果和信息摘要相同,就说明传输的信息没有被篡改,如果不一样就被篡改了,hash算法由于其的特点,如果内容有一点点的改变,生成的结果都会不一样。
  • 4.验证成功后,浏览器得到了服务器的公钥,浏览器随机生成一个对称密钥,使用服务器的公钥进行加密,传输到服务器。服务器收到之后,用自己私钥进行解密,现在两方都得到了一个对称密钥,可以进行传输了。


在这个过程中,数字证书起到的作用就是,放置信息被篡改。

 

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

学习资料:

http://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665513779&idx=1&sn=a1de58690ad4f95111e013254a026ca2&chksm=80d67b70b7a1f26697fa1626b3e9830dbdf4857d7a9528d22662f2e43af149265c4fd1b60024&mpshare=1&scene=23&srcid=10243ET3Hu0Nl8xDvj9hFp9U#rd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值