有时候想通过wireshark抓https的协议包, 如果能拿到服务器证书私钥的话,可以直接导入到 wireshark 中解密SSL协议层。但大多数情况我们是没有私钥信息的,这时可以借助 Fiddler 来实现。
Fiddler本质上是运行了一个HTTP代理服务,原理可以参考这张图:
我们需要把 Fiddler 配置成一个中间人的角色,主要是HTTPS证书的配置,详细参考官方文档。
小米手机有点麻烦,有两步操作:
iPhone手机:
这里也顺带了解一下 HTTPS 的原理,以常见的 RSA + AES 为例:
根据 Fiddler 官方介绍,其安全测试的主要技术是所谓的“中间人攻击”:
Decrypt HTTPS traffic and display and modify web application requests using a man-in-the-middle decryption technique.
所以配置了代理后的 HTTPS 流程就变成了:
因为客户端会校验证书的合法性,所以要配置被抓包的客户端信任Fiddler的根证书,配置了代理后,发现颁发证书的机构确实变了:
最后留几个问题,帮助我们更好的理解 HTTPS:
客户端如何检查证书的有效性?
答:浏览器会内置若干证书颁发机构,证书在颁发的时候会经过私钥签名,用公钥去验签以确认是否被篡改过。一般还会检查是否过期、是否权威等等。
在Fiddler篡改响应内容?
待后续实践
为什么要引入对称加密方案?全部用非对称加密不行吗?
答:对称加密容易泄露秘钥,非对称加密安全性更高,但是加解密时间更长,速度慢
如何防范“中间人攻击”
答:待补充
Copyright © 2015-2022 BY-NC-ND 4.0