草履虫都能看懂的https安全机制

1 篇文章 0 订阅

https的安全

RSA+AES:想通过服务器端生成公私钥,并将RSA公钥以明文的方式传给客户端,客户端收到公钥后,生成AES密钥,并通过RSA公钥加密传送个服务器,服务器私钥解密,就能保证AES密钥的安全性了?就可以愉快地用aes加密消息传送了??

问题:采用RSA和AES结合方式的安全问题:如果攻击者劫持并且替换了服务器第一次给客户端发送的RSA公钥,之后客户端用攻击者的公钥对AES密钥进行加密,攻击者再次劫持并用自己的RSA私钥进行解密可以得到明文

解决的终极(即https的安全机制):
数字证书登场:在刚才的讲解中,我们知道,之所以非对称加密会不安全,是因为客户端不知道这把公钥是否是服务器的,因此,我们需要找到一种策略来证明这把公钥就是服务器的,而不是别人冒充的。
解决这个问题就要数字证书:我们需要找到拥有公信力,大家都信任的证书CA

服务器在给客户端传输公钥的过程中,会把公钥以及服务器的个人信息通过Hash算法生成信息摘要。如图

为了防止信息摘要被人调换,服务器还会用CA提供的私钥对信息摘要进行加密来形成数字签名。如图:

并且,最后还会把原来没Hash算法之前的个人信息以及公钥 和 数字签名合并在一起,形成数字证书。如图

当客户端拿到这份数字证书之后,就会用CA提供的公钥来对数字证书里面的数字签名进行解密来得到信息摘要,然后对数字证书里服务器的公钥以及个人信息进行Hash得到另外一份信息摘要。最后把两份信息摘要进行对比,如果一样,则证明这个人是服务器,否则就不是。如图:

这样,就可以保证服务器的公钥安全着交给客户端了。
(总的来说,就是这个CA把私钥给服务器,公钥给客户端,就可以保证绝对的安全了)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值