当前位置:首页 > 游戏信息 > 正文

一起用mitmproxy偷窥HTTPS吧

一起用mitmproxy偷窥HTTPS吧-第1张-游戏信息-龙启网

在游戏开发中,分析网络包是开发者必须面对的任务之一,尤其是面对HTTP协议在手游中的广泛使用。而Wireshark等免费软件虽能方便查看HTTP包内容,但自2017年起,苹果要求AppStore应用必须使用HTTPS,使得开发者们面临了新的挑战。Wireshark对HTTPS包的无能为力,使得Fiddler等收费软件成为了选择之一,但其使用限制使得开发者寻找更经济、高效的方式。偶然间,mitmproxy这款开源软件进入了视野,它支持HTTPS抓包,并且迭代速度快、功能创新,成为了一款完美的HTTPS抓包工具。

在实际操作中,要实现mitmproxy的HTTPS抓包,首先需要在宿主机(Windows/Linux/MacOS)上安装mitmproxy,确保手机与mitmproxy处于同一网络环境中。无论是通过模拟器还是手机设备,解决网络连接问题后,即可开始使用mitmproxy进行HTTP请求的抓取。启动游戏如Survivor.io,mitmproxy的web界面会实时刷新抓包数据,从中可以直观看到HTTPS请求的头信息和十六进制表示的数据部分,为开发者提供游戏数据格式解析的依据。

然而,HTTPS的加密机制使得数据抓包变得困难重重。HTTPS在HTTP层之上引入了TSL层,采用对称加密与非对称加密结合的方式,旨在保护传输数据不被中间人窃听。Wireshark等工具虽能抓取TSL层数据,但因缺少解密信息而无法查看实际的HTTP内容。尽管TSL的安全机制涉及复杂密码学,但其核心在于非对称加密用于认证和协商对称加密的密钥,而对称加密负责实际的数据传输。抓包软件通过解决非对称加密的认证过程,获取加密密钥,从而破解加密通信数据。SSL库是TSL的一种实现,最初由网景公司开发,用于在网络模型中的加密通信。尽管SSL协议格式公开,但客户端与服务器交换的对称密钥通过公钥加密,只有对方的私钥才能解开,这就构成了SSL证书机制的核心。证书中包含公钥信息,以及通过数字签名确保其完整性的信息。证书的颁发机构负责验证证书的可信性,这一过程通过公钥验证证书拥有者的身份,并通过多层证书链实现信任传递。然而,证书校验机制确保了非法抓包的不可能性。在合法抓包情况下,开发者需手动安装mitmproxy生成的根证书,以欺骗客户端的SSL校验。

随着手机系统安全机制的增强,安装mitmproxy证书的途径受到限制。例如,对于target API大于24的Android软件,仅信任系统预装证书,自行安装的证书将不被SSL信任。解决方法包括修改APK的网络安全配置,将mitmproxy证书添加到资源内,配置信任mitmproxy证书。此外,Certificate Pinning(证书锁定)技术限制了特定软件只接受指定证书,使得mitmproxy伪造的证书无法被信任。不过,在某些情况下,开发者可以尝试修改系统SSL库,或利用漏洞,如mumu模拟器信任任何证书的能力,来绕过这些限制。