VJA*_*JAI 1 security encryption ios ios6.1
我是 iOS 开发的新手,正在开发一个用于存储用户敏感信息的小型 iOS 移动应用程序。最初我想到使用自定义 AES 加密来加密/解密所有数据。我还希望加密数据与 iCloud 同步。在阅读更多信息后,我从 iPhone 3GS 了解到每个设备都有一个内置的 AES-256 加密引擎。从 XCode 中,我观察到我可以为移动应用程序打开一个名为“数据保护”的选项来保护数据。根据我的分析,我有以下问题:
要为 iPhone 3GS(使用 iOS 6.1)使用数据保护,我需要设置密码吗?
如果没有为设备设置密码,我如何使用内置的加密引擎来加密我的数据?
信息非常敏感,所以在这种情况下我需要实施自定义加密吗?
RNCryptor 非常有用,但它基本上只是 Apple 自己的 CommonCrypto 功能的包装器(这使得实现它变得非常容易)。如果您想加密设备上即使用户也无法获取的数据,这将非常有用。
关于您的具体问题:
数据保护使用 Apple 的设备级加密来加密您的应用程序数据(您自己无需密码保护)。这有其用途 - 如果第三方无法解锁,它将阻止第三方访问设备上的数据 - 但不会阻止(例如)用户访问其未锁定设备上的数据。使用基于它的 RNCryptor 和 CommonCrypto,您可以使用您选择的密码对内容进行 AES256 加密。
苹果在这里详细说明了这一点。基本上,从最终用户的角度来看,他们只是像往常一样为其设备设置密码。您不使用自己选择的密码。
您可以使用以下说明为您的应用程序进行设置:
这取决于数据的敏感程度以及您预见的威胁(您想让谁远离?您是否打算遵守任何法律/法规?您希望自己承担多少工作来保护这些数据? ?)。在某些情况下,有很多权衡和警告可以适用。
如果您有少量数据,您可以考虑将其存储在 iOS 钥匙串中。否则,我建议尝试使用 RNCryptor。集成相当容易。
我希望这有帮助。
更新:另一件需要考虑的事情......如果您实施自己的加密,即使使用 RNCryptor/CommonCrypto,也可能会出现潜在的出口控制后果。根据您愿意处理多少文书工作和/或延迟,这可能会影响您的决定。您可以在 Apple 的网站上了解更多相关信息:
https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/wo/20.0.0.13.7.2.7.9.3.1.2.3.3.1.5.7.1
| 归档时间: |
|
| 查看次数: |
3398 次 |
| 最近记录: |