我最近为我正在工作的应用程序遇到了一个安全问题:在有根设备上运行的可能性。我发现这种情况很难预防。我的第一次尝试是实现RootBeer。可悲的是,有像Magisk Manager这样的工具可以欺骗您的应用程序,使其无法将设备识别为 root。
经过一番研究,我发现SafetyNet终于被“修复”了,所以该应用程序不能再通过 Magisk 使用了。为此,我需要向我的服务器发送一个使用随机数生成的 JWS 令牌(从服务器接收,如 Google 建议的那样)。
现在一切都很好 - 我的主要问题是我的应用程序可以离线使用。一个解决方案是在本地验证 JWS 令牌,但这会打开漏洞。
我需要您的帮助来了解我应该怎么做才能防止应用程序在有根设备上使用 SafetyNet(或其他方式)在在线和离线模式下打开。
谢谢!