应用程序在 Android root 设备中是否受到损害?

ome*_*ega 5 android rooted-device

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

\n\n

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

\n\n

我试图确定我的应用程序是否是 \xe2\x80\x9csafe\xe2\x80\x9d 在 root 设备上运行,或者设备已 root 的事实将使利用/破解该应用程序变得更加容易。\n所以问题是:处理敏感数据的应用程序应该在 root 设备上运行吗?

\n\n

我已经做过研究,但我还没有看到任何关于 root 设备安全性的讨论。我知道检测 root 设备的方法可能会被绕过,因此 \xe2\x80\x99s 不支持 root 设备有什么意义?

\n

Rag*_*ood 5

对于 root 设备上的应用程序来说,最大的安全问题是:

  1. 用户可以直接访问您的内部数据
  2. 其他应用程序可以访问您应用程序的私有数据

你能做的最好的事情是:

  1. 以难以进行逆向工程的方式加密您的数据。如果有人在追踪您的数据,您应该假设他们也反编译了您的应用程序。因此,所有加密/解密都在服务器上进行,并且不要让您的算法等成为常识
  2. 如果您应该将数据存储在设备本身上,请将其隐藏起来。因此,如果必须保存整数,请不要保存原始值。使用像savedValue = ((((realValue*10)+1)/365*23)*50)+1;这样的东西会让黑客很难编辑你保存的值并获得想要的结果,尽管他/她会反编译你的apk,这是一个非常基本的保护措施。
  3. 在设备上存储尽可能少的高风险数据。需要时,通过安全连接下载、显示它,甚至从 RAM 中删除它。另外,机密数据在内存中保存的时间应尽可能短,因为 RAM 中未加密的数据可以被读取。
  4. 确保您的加密技术不容易被暴力破解。由于其他应用程序也可以访问您在 root 设备上的数据,因此您的数据有可能被发送到远程服务器进行解密,而这样的服务器将比您的手机拥有更多的处理能力

这些只是我能想到的一些建议。我绝不是安全专家,您可能想就此事咨询其中一位专家。