HTTPS简解+burpsuite 抓https包原理+探针解析https原理

HTTPS 简介

HTTPS = HTTP(明文传输) +SSL(Secure Sockets Layer 安全套接层)
HTTP由于其明文传输的特点所有存在窃听风险、篡改风险以及冒充风险(此三个风险的介绍可参见:https://baijiahao.baidu.com/s?id=1685474345600994715&wfr=spider&for=pc),HTTPS就是为了解决上述三个风险而生的,实现了安全通信的四个原则: 机密性、完整性,身份认证和不可否认。

  • 机密性:即对数据加密,解决了窃听风险,因为即使被中间人窃听,由于数据是加密的,他也拿不到明文;(加密方式解决的问题,重点是保证密钥的安全)
  • 完整性:指数据在传输过程中没有被篡改,不多不少,保持原样,中途如果哪怕改了一个标点符号,接收方也能识别出来,从而判定接收报文不合法;
  • 身份认证:确认对方的真实身份,即证明“你妈是你妈”的问题,这样就解决了冒充风险,用户不用担心访问的是某宝结果却在和钓鱼网站通信的问题;(CA证书解决这个问题,具体CA的简要解释可参见:https://blog.csdn.net/weixin_45630387/article/details/139274590
  • 不可否认: 即不可否认已发生的行为,比如小明向小红借了 1000 元,但没打借条,或者打了借条但没有签名,就会造成小红的资金损失。(数字签名解决这个问题,简要说明依旧可参考:https://blog.csdn.net/weixin_45630387/article/details/139274590

HTTPS的最终加密形式是对称加密,所以关键是保证对称加密的秘钥能够安全的传递。

HTTPS 通信过程

在这里插入图片描述

  1. 客户端向服务器发送https请求,请求包含SSL协议版本号、加密算法种类、随机数等信息
  2. 服务端收到https请求,给客户端返回SSL协议版本号、加密算法种类、随机数等信息,同时也返回服务器端的CA证书
  3. 客户端验证公钥,不通过验证则发出警告,通过验证则产生一个随机的客户端私钥(简单描述一下验证过程:确定颁发证书的CA机构是可信任的,所以这个可信任的CA机构向客户端担保服务器是可靠的不是什么野站,客户端就信了(你信CA,CA信服务器->你信服务器 接下来需要证明的是CA信的这个服务器是现在跟你叭叭的服务器)。另外这个CA证书里还有CA信任的服务器的信物(能解开私钥加密信息的公钥和服务器相关信息),你拿着信物跟服务器发过来的另一半信物(私钥加密的服务器相关信息)一比对,诶你俩这是一对,然后客户端和服务器就接头成功(暗号成立,你(现在跟客户端叭叭的服务器)就是他(CA信任的那个服务器))。
    验证内容:
    • 发行服务器证书的CA是否可靠
    • 服务端的证书是否过期
    • 返回的公钥是否能正确解开返回证书中的数字签名
    • 服务器证书上的域名是否和当前服务器的域名相匹配
  4. 接头成功,客户端告诉服务器自己支持啥加密方式,让服务器选一个(此时是对称加密算法)
  5. 服务器选加密方式
  6. 服务器告诉客户端咱以后就用这个加密方式(我猜一下为啥不继续用之前的公私钥而要换成对称加密:maybe 1.复杂的多,消耗资源大 2.服务器的公钥是散给所有客户端的,所有人都跟服务器这么聊服务器不知道谁是谁)
  7. 客户端收到服务端的方案后,产生随机码,用作通信过程中对称加密的密钥,使用服务端的公钥将客户端自己的密钥进行加密,返回给服务端
  8. 服务端接收到后用自己的私钥进行解密,获取客户端的对称密钥
  9. 服务端和客户端使用客户端的对称密钥进行加密通信

burpsuite 劫持https原理

先放一张劫持过程图:
在这里插入图片描述
图中,CA证书被简化成了公钥和私钥,所以是说的通的,然而事实上https还会有证书的校验,有这证书burpsuite很难把这服务器的公钥换成自己的公钥啊,所以实际过程应该是是把整个证书都换掉。
那么问题来了,把证书换掉了,那不就没有CA签名了?也通不过验证。
是的,所以众所周知,想要burpsuite劫持https就需要先在客户端导入一个证书,这个burpsuite的自签证书会向客户端证明burpsuite是可信任的。

欲知详情,可参见:https://www.cnblogs.com/binye/articles/10925319.html

NIDS解析https原理

NIDS((network intrusion detection system) - 网络入侵检测系统
它只做检测不做防御,所以一般是旁挂的,肯定跟burpsuite这种横插一脚的不一样,人家是正经做了个流量镜像而已
那么很多的NIDS其实是有解密部分https流量的功能的,它是怎么做到的呢?
此时就只有一种方法可解了,直接服务器公私钥都给它,那所有流量它都能解,所以一般如果NIDS需要对https进行解析的话就需要将对应待检测服务器的公私钥都导入。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值