是否可以从正在运行的应用程序中读取内存中的数据。即是否可以转储正在运行的 ios 应用程序的内存并能够知道变量中的数据。
由于我们在 windows 操作系统上进行内存编辑,用于更改正在运行的应用程序的变量,是否可以这样做或至少从变量中读取数据。
例如:如果有一个带有敏感数据(字符串)的变量被加密,并且用户只能通过提供密码来解密数据。同一用户是否有可能在应用程序执行期间从内存中获取加密形式的数据(以便他可以暴力破解或其他一些技术在没有密码的情况下解密数据)
P.S : 加密后的数据将通过网络提供,因此不会硬编码到应用程序中。
如果还有其他漏洞,请告诉我。
无论如何,通过在 Sandbox 中运行应用程序是安全的。
Best Answer-推荐答案 strong>
iOS 上的应用是沙盒化的,无法访问彼此的内存或数据(除非通过各种方法明确共享)。
可以通过配置严格的数据保护类来进一步保护存储在磁盘上的数据,例如 NSFileProtectionComplete . (尽管您应该仔细评估适合您的应用的数据保护等级 - 最严格的等级会在设备锁定时阻止数据访问,即使您的应用在后台运行。)
但是,所有这一切都假设设备的安全性仍然完好无损(按设计)。
过去,iOS 可以进行越狱,使设备所有者能够绕过操作系统中的各种安全机制。在越狱的设备上,所有的赌注都没有了——如果设备所有者能够绕过 iOS 的安全功能,他们或许能够轻松访问您应用内存中的内容。
操作系统或支持库中的安全漏洞也可能导致任意内存访问,或在您的应用上下文中远程执行代码。
这一切归结为:
您最终是在用户的他们的设备上提供数据。
您无法确保 100% 安全抵御坚定的攻击者,并且您永远不应假设某人不可能完全修改您的应用在其设备上的行为(包括访问您提供给他们的所有数据)。
但您可以通过以下方式使其变得更加困难:
关于ios 10 应用程序在执行期间内存中有敏感数据,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/39654101/
|