我在一些 iOS 移动应用程序上使用 SSL Kill Switch 来尝试绕过证书固定,并且成功了。我了解 SSL Kill Switch 在客户端“杀死”证书验证过程,这就是它的工作原理。但是,开发人员有什么办法可以防止这种情况发生吗?这是否表明证书固定未成功配置?
移动开发人员如何防止使用 SSL Kill Switch 等工具绕过证书锁定?
信息安全
tls
证书
移动的
证书固定
2021-08-19 01:56:35
2个回答
来自iOS SSL Kill Switch 项目的 github 自述文件:
一旦安装在越狱设备上,iOS SSL Kill Switch 会修补安全传输 API 中的低级 SSL 功能
因此,您的问题基本上可以归结为:“如何防止我的应用程序在植根/越狱设备上感染恶意软件?”。简而言之:你没有。这就是为什么你不root你的设备!
您可以采取一些混淆技巧来增加难度;例如编写您自己的内部 SSL / TLS 库(可怕,可怕的想法,不要这样做!),然后在您编译的程序中包含这个加密,这样就不会依赖操作系统的加密库。现在,您对操作系统加密层中的黑客攻击免疫,但如果攻击者专门针对您的应用程序,则没有什么可以阻止它们,因此您无法阻止此类攻击,只是使其变得更加困难。
我听说的另一个技巧是让应用程序尝试检测它是否在有根设备上运行,如果是则拒绝运行。也就是说,如果你在谷歌上搜索“绕过越狱检测”,你会发现黑客和开发人员之间一直在进行一场打地鼠游戏,黑客在隐藏越狱方面越来越聪明。我不建议玩这个游戏。
试图阻止这种情况是没有意义的。从技术上讲,我猜你可以通过实现自己的加密(SSL Kill Switch 修改操作系统提供的加密功能)来减缓攻击者的速度,但即使有足够的时间和精力,最终也会被破解。
如果你不控制硬件,你的软件就没有机会。忍受它,让人们在他们的设备上做他们想做的任何事情。