我正在开发一个使用 PhoneGap 框架的应用程序,因此它只是一个使用 HTML5 的普通网络应用程序。与许多网络应用程序一样,我的客户也希望在设备离线时可以使用数据。对于那些情况,我想将数据存储在浏览器的本地存储中。
但是,客户还希望对数据进行加密,以防万一设备丢失,敏感数据不会落入坏人之手。我目前的研究提出了 2 个可能的方法:
1) 在存储到本地存储之前,使用 JS 加密框架对任何数据进行加密。由于我的应用程序需要用户登录,因此我可以使用用户密码来派生加密 key (用户密码存储在 iOS 钥匙串(keychain)中)
2) 用户iOS的数据保护机制https://www.apple.com/business/docs/iOS_Security_Guide.pdf
对于 2),在开发人员门户(应用程序 ID 部分)中启用数据保护是否正确实际上不加密任何内容,而是启用加密的可能性使用适当的 NSData
或 NSFileManager
操作的特定文件?
还是可以通过在 App ID/配置文件级别启用数据保护来加密整个沙箱(包括浏览器本地存储!)?
是否有任何其他推荐的方法来保护浏览器本地存储中存储的数据?
最佳答案
第一个选项适用于跨设备。
我在研究中发现的两个可靠的 JS 加密框架是
- Stanford Javascript Crypto Library
- CryptoJS (在我使用 AES-256 的测试中比 SJCL 更快)
无论您做什么,请确保用于派生加密 key (在您的示例中为密码)的可能数据已安全存储。
关于ios - 如何保护(加密)webkit/local store 存储的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945216/