2012-04-05 17 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

相關問題