首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在执行过程中内存中有敏感数据的ios 10应用程序

在执行过程中内存中有敏感数据的ios 10应用程序
EN

Stack Overflow用户
提问于 2016-09-23 06:35:06
回答 1查看 1.4K关注 0票数 2

是否可以从运行中的应用程序读取内存中的数据。也就是说,是否有可能转储正在运行的ios应用程序的内存,并能够知道变量中的数据。

由于我们在windows上进行内存编辑,用于更改正在运行的应用程序的变量,因此是否可以做同样的操作,或者至少从变量中读取数据。

例如:如果存在一个具有敏感数据的变量(字符串),并且用户只能通过提供密码来解密这些数据(字符串)。在应用程序执行过程中,同一用户是否有可能从内存中获得加密的数据形式(这样他就可以强行或其他一些无需密码的技术来解密数据)。

P.S :加密的数据将通过网络提供,所以不会硬编码到应用程序中。

如果还有其他漏洞,请告诉我。

通过在Sandbox中运行应用程序,它无论如何都是安全的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-02 16:54:23

iOS上的应用程序是沙箱化的,不能访问彼此的内存或数据(除非通过各种方法显式共享)。

通过配置严格的数据保护类(如NSFileProtectionComplete ),可以进一步保护磁盘上存储的数据。(尽管您应该仔细评估哪个数据保护类适合您的应用程序-即使您的应用程序在后台运行,最严格的类也会在设备锁定时阻止数据访问。)

然而,所有这些都假设设备的安全性仍然完好无损(按设计)。

在过去,iOS可以使用越狱,从而使设备所有者能够绕过操作系统中的各种安全机制。在一个越狱设备上,所有的赌注都取消了--如果设备所有者能够绕过iOS的安全特性,他们可能可以轻松地访问应用程序内存的内容。

操作系统或支持库中的安全漏洞也可能启用应用程序上下文中的任意内存访问或远程代码执行。

这一切归结起来是:

您最终将在及其设备上向用户提供数据。

您不能确保100%的安全性,对一个确定的攻击者,您不应该认为,这是不可能的人完全修改您的应用程序在他们的设备上的行为(包括访问您提供给他们的所有数据)。

但你可以通过以下方式使它变得更加困难:

  • 最小化一次存储在内存中的未加密数据的数量,以及它保持未加密的时间。
  • 确保在服务器上执行访问检查--而不是通过信任客户端只解密用户允许访问的数据。(例如:让客户端使用服务器对用户进行身份验证,并让服务器只提供允许用户访问的数据。)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39654101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档