谷歌SafetyNet升级举措让Magisk难逃系统一致性检查

所属趣点:那些"谷"事

家伟

2020-03-12 14:38:51


Magisk是安卓业界最常用的root工具,当然,它还提供了很多模块,帮助极客安卓玩家实现“无所不能”的功能。谷歌过去这么多年一直在提升安卓生态的安全性,而对抗风险巨大的root行为的一个举措就是对于系统分区的一致性检查。一但用户root了设备,就改变了系统分区,就很难通过谷歌play的SafetyNet的一致性检查。这样那些对于一致性要求非常高的应用(比如google pay)或者游戏就会让用户无法使用。

而Magisk之所以过去这么多年这么流行,就是因为作者一直在研究和实施骗过SafetyNet的办法,让应用无法得知设备真实情况,并通过SafetyNet的检测。虽然每年安卓都在加强安全方面的措施,但是Magisk的作者每年总能找到办法,并为SafetyNet的检测行为构建一个单独孤立的“安全环境”,它通过Google的API来创建合法的SafetyNet结果,该结果隐藏了设备真实的情况,从而绕过一致性检查。

不过现在情况可能发生了根本的改变,谷歌以前SafetyNet的检查办法一直是基于软件的,而现在Google可能已实施了硬件级密钥证明,以验证bootloader是否被修改。 具体来说,这意味着Google Play服务“将未修改的密钥库证书(设备没有改变分区的密钥)发送到[SafetyNet]服务器,验证其合法性,并检查证书扩展数据,以了解您的设备bootloader状态。” 这意味着可能不再可能隐藏boot loader(使用Magisk 来root需要先解锁)已被解锁的事实。

这就让Magisk无法再使用软件级别的欺骗来通过SafetyNet的检查了,通俗的讲,以前Magisk伪造一个证件(可以理解为ps行为),SafetyNet就放行了,不再管了。而现在SafetyNet会检查证件的真实性,通过服务器一查,没有这个证件。所以Magisk目前面临的问题是得到设备未修改bootloader时候密钥库证书,只有真实的密钥库证书才可以通过SafetyNet检查。而这个设备的密钥库证书非常难以获得,这么说吧,只有破解Trusted Execution Environment才能得到,而这需要找到安卓固件的漏洞才有办法得到。而你如果真的找到一个漏洞,谷歌还会奖赏你银子呢。

所以你说是开发Magisk容易,还是找到安卓固件的漏洞容易呢?一但谷歌全面实施这种硬件级别的一致性检查的话,Magisk就无法让客户既能root又能隐藏设备已经解锁的实际情况了。



0
分享至
请在登录后评论
  • 全部回复
  • 只看楼主