我正在开发一个处理敏感数据的应用程序。
该应用程序具有合理的安全模型,包括加密、SSL 和数据不会永久存储在设备上。
我正在尝试确定我的应用程序在 root 设备上运行是否“安全”,或者设备已 root 的事实将使应用程序更容易被利用/破解。所以问题是:处理敏感数据的应用程序应该在有根设备上运行吗?
我已经进行了研究,但我还没有看到任何关于 root 设备安全性的讨论。我知道检测有根设备的方法可能会被规避,因此不支持有根设备有什么意义?
我正在开发一个处理敏感数据的应用程序。
该应用程序具有合理的安全模型,包括加密、SSL 和数据不会永久存储在设备上。
我正在尝试确定我的应用程序在 root 设备上运行是否“安全”,或者设备已 root 的事实将使应用程序更容易被利用/破解。所以问题是:处理敏感数据的应用程序应该在有根设备上运行吗?
我已经进行了研究,但我还没有看到任何关于 root 设备安全性的讨论。我知道检测有根设备的方法可能会被规避,因此不支持有根设备有什么意义?
根设备上的应用程序最大的安全问题是:
你能做的最好的事情是:
savedValue = ((((realValue*10)+1)/365*23)*50)+1;
This 使黑客很难编辑您保存的值并获得所需的结果,尽管由于他/她会反编译您的 apk,因此这是一项非常基本的保护措施。这些只是我能想到的一些建议。我绝不是安全专家,您可能想就此事咨询其中一位专家。
Android root 设备中的应用程序是否受到威胁?是的,他们是。
即使在非 root 手机上,攻击者仍有可能捕获漏洞并进行 root 控制(GingerBreak 就是其中的一个案例)。因此,即使手机没有被用户植根,也没有 100% 的手机不会受到损害。
正如您所提到的,对 root 的检测不能完全可靠,因为它们可以被绕过。但是,如果您检测到手机已植根,则绝对应该阻止它。如果您没有检测到它,这并不意味着手机没有root,您仍然需要有安全机制来抵御root手机的攻击。
您可能需要应对几种类型的攻击:中间人攻击、键盘记录器、屏幕捕获、用户模式 rootkit、内核模式 rootkit,...
The good news is that there are companies that make libraries for you to protect your apps against such type of attacks. They offer you solution to free yourself from headache as they will care abt it for you. V-Key is one of those, you can look at their website and consider if you want to buy their V-Guard product.