安全网说明:为什么Android Pay和其他应用程序不工作的根设备

生根Android手机

根据您的Android设备,您可以访问更多种类的应用程序,并更深入地访问Android系统。 但是,一些应用程序般的谷歌Android收费 -wont工作扎根设备上的。

Google使用名为SafetyNet的东西来检测您的设备是否已有root,并阻止访问这些功能。 谷歌是不是唯一的一个,要么,大量的第三方应用程序也将无法正常工作的根深蒂固的Android设备 ,虽然他们可能检查根在其他方面的存在。

SafetyNet:Google如何知道您已将Android手机植根

Android设备提供了一个“ 安全网API ”,这是部分谷歌播放服务安装在谷歌认证的Android设备层。 根据Google的说法,这个API可让您存取Google服务,协助您评估Android装置的健康和安全性。 如果您是Android开发人员,则可以在应用中调用此API,以检查您运行的设备是否已被篡改。

此SafetyNet API旨在检查设备是否已被篡改 - 例如,它是否由用户根植,运行自定义ROM,或已被低级恶意软件感染。

通过Google Play商店和其他应用安装的设备必须通过Google的Android“兼容性测试套件”。 根设备或安装自定义ROM可防止设备“CTS兼容”。 这就是SafetyNet API如何知道你是否扎根 - 它只是检查CTS兼容性。 同样,如果你得到一个Android设备,从来没有随谷歌的应用程序,如那些20美元的平板电脑直接从中国的工厂发货之一 - 它不会被认为是“CTS兼容”,即使你没有根植它。

要获取此信息,Google Play服务会下载一个名为“snet”的程序,并在您设备的后台运行。 该程序会从您的设备收集数据,并定期将其发送给Google。 Google将此信息用于各种目的,从获取更广泛的Android生态系统的图片,以确定您的设备的软件是否已被篡改。 谷歌没有解释什么snet正在寻找,但很可能是snet检查您的系统分区是否已从出厂状态修改。

您可以通过下载喜欢的应用检查设备的安全网状态安全网助手样品安全网游乐场 该应用会向Google的SafetyNet服务询问您设备的状态,并告知您从Google服务器获得的响应。

欲了解更多技术细节,请阅读这篇博客文章由约翰·Kozyrakis,在Cigital的技术战略家,一个软件安全公司编写的。 他挖掘了SafetyNet并解释了它如何工作。

这是由应用程序

SafetyNet对于应用开发者是可选的,应用开发者可以选择使用它。 如果应用程序的开发人员不希望应用程序在有根的设备上工作,SafetyNet只会阻止应用程序工作。

大多数应用程序不会检查SafetyNet API。 即使是检查SafetyNet API的应用程序(如上面的测试应用程序),如果他们收到错误的响应,也不会停止工作。 应用程序的开发人员必须检查SafetyNet API,并使应用程序拒绝运行,如果它了解到您的设备的软件已被修改。 Google自己的Android Pay应用程序就是一个很好的例子。

Android付款将无法在根设备上工作

Google的Android Pay移动支付解决方案根本无法在根植的Android设备上正常运行。 尝试启动它,您只会看到一条消息“无法使用Android Pay。 Google无法验证您的设备或其上运行的软件是否与Android兼容。

这不只是关于生根,课程-的运行自定义ROM也将让你相抵触这个要求。 如果你使用的设备没有自定义ROM,SafetyNet API将声称它不是“Android兼容”。

记住,这不只是检测生根。 如果您的设备感染了某些系统级恶意软件,并能够侦测Android Pay和其他应用程序,则SafetyNet API也会阻止Android Pay运行,这是一件好事。

根据您的设备打破Android的正常安全模式。 Android的收费通常采用Android的沙盒功能,保护您的支付数据,但应用程序可以在扎根设备上打出来的沙箱 Google无法知道Android Pay在某个特定设备上的安全性如何,如果其根植或运行未知的自定义ROM,则它们会阻止它。 一个Android付费工程师讲解了该问题上的XDA开发者论坛 ,如果您想知道更多。

其他方法应用程序可以检测根

SafetyNet只是应用程序可以检查它是否在根设备上运行的一种方式。 例如,三星设备包括名为KNOX的安全系统。 如果根您的设备,KNOX安全跳闸。 三星付费,三星自己的移动支付应用程序,将拒绝在根设备上运行。 三星正在使用KNOX,但它也可以使用SafetyNet。

同样,大量的第三方应用程序将阻止您使用它们,并不是所有的人都使用SafetyNet。 他们可能只是检查设备上是否存在已知的根应用程序和进程。

很难找到最新的应用程序列表,这些应用程序在设备植根时无法正常工作。 然而,RootCloak提供了几个 名单 这些列表可能已过期,但它们是我们可以找到的最好的。 许多是银行和其他移动钱包应用,这些应用会阻止对固定手机的访问,以保护您的银行信息不被其他应用捕获。 视频流服务应用程序也可能会拒绝在有根的设备上运行作为一种DRM措施,尝试阻止您录制受保护的视频流。

一些应用程序可以欺骗

Google使用SafetyNet玩一个猫和鼠标游戏,不断更新它,试图保持领先的人。 例如,Android开发人员Chainfire创建了一种新方法来生成Android设备,而不修改系统分区,称为“无系统root”。 SafetyNet最初没有检测到这些设备被篡改,Android Pay工作,但SafetyNet最终更新,以检测这种新的生根方法。 这意味着Android的收费不再起作用一起systemless根。

根据应用程序如何检查根访问权限,您可能会欺骗它。 例如,据报道,一些方法可以根除一些三星设备,而不跳过KNOX安全,这将允许您继续使用三星Pay。

在应用程序,只需要检查根应用程序在系统上的情况下,有一个Xposed框架命名模块RootCloak ,据说可让您在诱骗反正工作。 这适用于DirecTV GenieGo,Best Buy CinemaNow和Flixster的电影等应用程序,通常不适用于有根的设备。 然而,如果这些应用程序更新使用Google的SafetyNet,他们不会那么容易欺骗这种方式。


在您植入设备后,大多数应用会继续正常工作。 移动支付应用是最大的例外,其他一些银行和金融应用也是如此。 付费视频流服务有时会阻止您观看他们的视频。

如果您需要的应​​用程式无法在已植入装置的装置上运作,您可以随时取消装置的使用功能。 该应用程序应该在您将设备恢复到安全的出厂状态后工作。

图片来源: 丹尼周仰杰在Flickr

赞 (0)
分享到:更多 ()