Android根设备中的应用是否受到侵害?

时间:2012-09-18 14:40:16

标签: android rooted-device

我正在开发一个处理敏感数据的应用程序。

该应用程序具有合理的安全模型,包括加密,SSL和数据不会持久存储在设备上。

我正在尝试确定我的应用是否在root设备上“安全”运行,或者设备已植根的事实将更容易利用/破解应用。 所以问题是:处理敏感数据的应用程序应该在root设备上运行吗?

我已经做过研究,但我还没有看到任何关于root设备安全性的讨论。我知道检测有根设备的方法有可能被规避,因此不支持有根设备的重点是什么?

2 个答案:

答案 0 :(得分:2)

根设备上的应用程序最大的安全问题是:

  1. 用户可以直接访问您的内部数据
  2. 其他应用可以访问您应用的私人数据
  3. 你能做的最好的事情是:

    1. 以难以进行逆向工程的方式加密数据。如果有人在您的数据之后,您应该假设他们已经反编译您的应用程序。因此,在服务器上进行所有加密/解密,并且不要使您的算法等常识
    2. 如果您应该将数据存储在设备本身上,请使其模糊不清。因此,如果必须保存整数,请不要保存原始值。使用像savedValue = ((((realValue*10)+1)/365*23)*50)+1;这样的东西这使得黑客很难编辑你保存的值并得到想要的结果,但是因为他/她会反编译你的apk,这是一个非常基本的保护措施。
    3. 在设备上存储尽可能少的高风险数据。需要时,通过安全连接下载,显示并甚至从RAM中删除它。此外,请将机密数据保存在内存中尽可能短的时间,因为可以读取RAM中未加密的数据。
    4. 确保您的加密技术不易蛮力。由于其他应用程序也可以在root设备上访问您的数据,因此您可以将数据发送到远程服务器进行解密,这样的服务器将具有比您的移动电话更多的处理能力
    5. 这些只是我能想到的一些建议。我绝不是安全专家,你可能想咨询一下这个问题。

答案 1 :(得分:1)

Android根设备中的应用是否受到侵害?是的,他们是。

即使在非root用户手机上,攻击者仍有可能捕获漏洞并采取根控制(GingerBreak是其中一个展示案例)。因此,即使没有用户使用,手机也不会受到100%的损害。

正如您所提到的,root的检测不能完全可靠,因为它们可以被绕过。但是,如果您检测到手机已经根除了,您肯定会阻止它。如果你没有检测到它,这并不意味着手机没有root,你仍然需要有防御根电话的安全机制。

您可能需要应对几种类型的攻击:中间人攻击,键盘记录程序,屏幕捕获,用户模式rootkit,内核模式rootkit,...

好消息是,有些公司会为您制作库,以保护您的应用免受此类攻击。他们为您提供解决方案,让您摆脱头痛,因为他们会为您提供帮助。 V-Key 就是其中之一,您可以查看他们的网站并考虑是否要购买 V-Guard 产品。