2012-04-05 16 views
2

我几乎是一个新手在加密,但我想加密一些数据并将其保存在iOS 3中的文件,因为我不想让用户只是去在和编辑文件。在iOS 3中安全(相对)加密数据的正确方法是什么?我在网上发现的大多数文件都是针对iOS 5的。正确和安全的方式来对称加密字符串在iOS 3+

任何帮助,将不胜感激!

谢谢, 亚历克斯

回答

0

我不知道IOS3不够好建议,已经内置了一些东西。如果你需要从零开始开发加密,那么RC4是非常容易编程的。现在已经过时了,但仍然相当安全。从您的角度来看,它的主要缺点是您需要使用良好的KDF(密钥派生函数)来选择安全密钥,例如PBKDF2

0

“正确”的方法是在IOS中使用Apple的Key链。不幸的是,this的帖子说,这对于IOs3来说并不是那么安全。对于ios4,它工作正常。

有人可能有一个有偿的解决方案,但你最终可能最终自己写一个。你会想使用的密钥导出函数

  1. 派生您的钥匙从用户提供的密码,如PBKDF2。事实上,你需要派生两个键,所以你要用两种不同的盐来运行两次。

  2. 使用AES与RANDOM IV和您的派生键之一(该部分重要,我看过的所有示例代码都没有)。在您的密文前添加盐和IV

  3. 对所有上述数据使用hmac和其他派生键。在此之前。

  4. 解密时,使用密钥导出算法将密钥重新解密为密码和前置盐分,重新生成hmac,获取生成的sha1的sha1哈希值,并单独分析消息中的哈希值,然后验证它们是相同的(不直接直接比较hmacs),然后使用其他派生密钥和前置IV来解密数据。

这是一个痛苦的写和恼人的用户,因为他们需要把一个单独的密码,但没有办法安全地做到这一点,否则。如果您将密钥存储在iphone上,则有人可以阅读并解密数据。是的,你可以加密密钥,但那么你如何存储该密钥?

我不相信苹果有任何这样的体面的目标c绑定,所以你需要使用常见的crypto c API。其记录的here。看起来没有用处的客观c API被记录在案here

相关问题