【发布时间】:2013-04-11 09:27:04
【问题描述】:
我正在开发一个使用 PhoneGap 框架的应用程序,因此它只是一个使用 HTML5 的普通网络应用程序。与许多网络应用程序一样,我的客户也希望设备离线时数据可用。对于这些情况,我想将数据存储在浏览器的本地存储中。
但是,客户还希望数据被加密,这样在设备丢失的情况下,敏感数据不会落入坏人之手。我目前的研究提出了 2 个可能的方法:
1) 在存储到本地存储之前,使用 JS 加密框架对任何数据进行加密。由于我的应用需要用户登录,我可以使用用户密码来派生加密密钥(用户密码存储在 iOS 钥匙串中)
2) 用户iOS的数据保护机制https://www.apple.com/business/docs/iOS_Security_Guide.pdf
对于 2),在开发者门户(应用程序 ID 部分)中启用数据保护是否正确不会实际上加密任何内容,而是 启用加密的可能性使用适当的NSData 或NSFileManager 操作的特定文件?
还是可以通过在 App ID/配置文件级别启用数据保护来加密整个沙箱(包括浏览器本地存储!)?
还有其他推荐的方法来保护浏览器本地存储中存储的数据吗?
【问题讨论】:
-
从用户密码中获取密钥(使用正确的 KDF 和 salt)。要求用户在启动应用程序时输入密码。但显然,只有当用户的密码很强大时,这才是安全的。
标签: ios security encryption webkit data-protection