我正在写一些关于 Android 设备的小型安全报告,这些报告通常与从 RAM 访问信息有关。主要条件是设备最初是无根的。
用例:用户打开 3rd-party 应用程序,在密码字段中输入一些密码。之后,该正在运行的应用程序会丢失设备。此应用程序的源代码显示此密码信息在应用程序启动并运行时在 RAM 中可用。例如在公共字符串 myPassword 中的 AllMyAppPasswords 类中。现在是关于访问此密码信息的可能方法的问题(如果我错了,请纠正我):
- 访问这个密码的方法是转储内存。
- 对于内存转储,我需要让设备植根。
- 为了根设备,我需要解锁引导加载程序。
- 要实现解锁引导加载程序和 root 操作,需要至少重新启动设备一次。
- 设备重新启动后,有关密码的信息从 RAM 中消失了
结论:如果设备是非 root 的,则无法从应用程序获取驻留在 RAM 内存中的密码。这是对的吗?
用例更新:我们假设用户刚刚拆箱新设备并且 100% 确定它没有被 root 并且不包含任何键盘记录应用程序。所以用户刚刚安装了我的应用程序,输入了密码,并且应用程序在运行时在内部使用这个密码来定期连接服务器(密码只有 RAM,从不存储在磁盘上)。因此,从视觉上看,编辑文本字段中没有任何内容,有关密码的信息仅在应用程序内存中供内部使用,当然不可能仅从屏幕上读取密码文本。现在用户丢失了他的手机。用户是否应该担心找到他手机的人可以从 RAM 中获取此密码信息?