Https工作流程

流程图

之前一直对https工作原理比较疑惑,后来网上看到一幅图,个人觉得描绘的很清楚,借用一张图,来源
在这里插入图片描述

原理

https可以用来防止中间人攻击,整个流程中包含了两种加密方式,对称加密非对称加密,client给server传送密钥使用的是非对称加密,即4->5的过程;双方正式传输数据使用的是对称加密,即6以后的过程。这两种加密的结合保证了传输的安全性,那么安全性是如何保证的?
首先了解几个前置条件:

  • 非对称加密中,使用公钥加密,私钥解密;私钥签名,公钥验证
  • 对称加密中,加解密使用相同密钥

从流程图中反推一下,看是否有漏洞

  • 数据通信的安全性:过程6及以后的通信使用对称加密的密钥加密,只要密钥传输给Server的过程中不泄露就是安全的
  • 密钥的安全性:传输密钥的过程使用非对称加密,只要公钥在传输给Client的过程中不泄露就是安全的
  • 公钥的安全性:公钥跟随数字证书一起下发给Client,只要保证数字证书(图中的公钥证书)的可靠性就是安全的
  • 数字证书的可靠性:数字证书是由权威机构CA向网站颁发的,其中包含了网站信息、公钥等,数字证书会经过hash、CA密钥签名后得到数字证书签名,这样网站就拿到了数字证书和证书签名,首次请求时Server会将证书和签名下发给Client,Client使用CA公钥验证签名并和经过hash的证书对比是否一致,如果一致则表示证书可靠
  • 客户端是如何拿到CA证书的:浏览器内置了CA机构的根证书,可以拿到他们的公钥

这样整个流程就串起来了,环环相扣

这里也想到一个问题,是否有遇到过网站提示“不受信任的证书”?
是因为给该网站办法证书的机构根证书未在浏览器内置,这样的网站还是小心为好,如果确认可信,可以通过手动添加根证书的方式解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值