在 iphone/ipad 的持久存储上加密数据的最安全方法是啥?

Posted

技术标签:

【中文标题】在 iphone/ipad 的持久存储上加密数据的最安全方法是啥?【英文标题】:What is the most secure way to encrypt data on iphone/ipad's persistent storage?在 iphone/ipad 的持久存储上加密数据的最安全方法是什么? 【发布时间】:2011-12-12 18:25:20 【问题描述】:

我需要在会话期间将图像临时存储在 iphone/ipad 上。会话结束后,我需要删除会话期间下载的数据。我想在 iphone/ipad 的持久存储上保护数据。

我已经确认 ios 有硬件加密,但最近被破解了,所以我需要一些加密技术来安全地存储数据。我的公司以前使用 PGP 进行全盘加密,但我不知道是否可以使用任何 API 以编程方式加密/解密文件。

谢谢,

吉格尼什

【问题讨论】:

在 iOS 加密之上,我使用带有随机密钥的 Rijndal 加密。密钥再次受到应用程序特定成分以及未存储在设备上的用户数据的保护。那么你有两倍的安全性。 @Krumelur,这听起来像是一个答案,你为什么要发表评论? 那么有什么理由需要持久化下载的数据吗?只需将它留在内存中,然后在完成后释放它。坚持的唯一原因是在应用会话之间从本地存储重新加载。 您的威胁模型是什么?谁是攻击者? @Jay 这是可能的,但我担心性能问题......不过谢谢。无论如何,该项目没有获得批准,所以没有更多的工作...... 【参考方案1】:

拥有越狱 iPhone 的用户对设备的控制权比您多。 (偷了设备的小偷也是用户:)没有地方可以隐藏秘密。二进制文件可以被反编译,可以查看设备内存中的任何内容,任何通过网络传输到设备的内容都可以被用户截获。

也许您正在寻找“虽然默默无闻”的安全性,但更好的方法是重新评估您的业务模型以更好地反映技术的现实。

【讨论】:

安全并不总是关于“使访问数据变得不可能”。有时它是关于检索成本和可能性与数据重要性的关系。 另外,“内存中的任何内容都可以查看”。是的,当他们使用应用程序时,您将如何分散应用程序用户的注意力? 我的意思是,虽然秘密确实很难在设备上隐藏,但有时您不需要。例如,如果用户在获取(临时)数据之前必须通过外部 Web 服务进行身份验证,则密码在用户的脑海中,而不是放在设备存储中。【参考方案2】:

关于 iOS 的唯一“破解”是他们已经弄清楚如何从设备中提取用于加密设备数据的设备密钥。可用的加密 API/算法仍然是安全的。只是普通数据,如您的联系人、笔记等不再安全。除非您在将数据放入磁盘之前对其进行加密!

因此,使用加密库将允许您使用工业强度算法加密图像,只要您的图像密钥安全,您的数据就会安全。这是对手机已有功能的补充。

祝你好运

【讨论】:

“您的联系人、便笺等普通数据不再安全” -- true;值得指出的是,内置邮件应用程序受数据保护 API 保护(因此,如果您为设备设置了密码,邮件就会受到保护)。 Rook 是什么意思?他指定“只要您的图像密钥是安全的”。

以上是关于在 iphone/ipad 的持久存储上加密数据的最安全方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 加密和解密 mp4 文件

核心数据 SQLite 加密?

iOS 如何通过加密存储持久数据?

存储在 RabbitMQ 持久存储中时加密消息

如何通过 SecureEnclave 持久存储加密数据

为啥 iPhone/iPad 上的浏览​​器无法下载/预览 docx 文件?