2012-04-05 10 views
2

私は暗号の初心者ですが、データを暗号化してiOS 3のファイルに保存しようとしています。ファイルを編集します。 iOS 3でデータを安全に(比較的)暗号化する適切な方法は何ですか?私がオンラインで見つけたドキュメンテーションのほとんどは、iOS 5向けです。iOSで文字列を対称的に暗号化するための適切かつ安全な方法3 +

何か助けていただければ幸いです!私はすでに内蔵されているものを提案するiOS3は十分知っていない

おかげで、 アレックス

答えて

0

。最初から暗号化を開発する必要がある場合は、RC4はプログラムの作成が面倒です。今は陳腐化していますが、それでもなお安全です。あなたの視点からの大きな欠陥は、PBKDF2のような良いKDF(Key Derivation Function)を使って安全な鍵を選ぶ必要があることです。

0

「正しい」方法は、AppleのキーチェーンをIOSで使用することです。残念ながら、thisの投稿によると、これはIOs3ではあまり安全ではありません。 ios4ではうまく動作します。

誰かがおそらく支払った解決策を持っているかもしれませんが、自分で自分で作成することもできます。あなたは

  1. にしたいとしているようにPBKDF2として鍵導出関数を使用してユーザが入力したパスワードからあなたの鍵を導出します。実際には2つのキーを派生する必要があるので、2つの異なるRANDOMの塩で2回実行する必要があります。

  2. RANDOM IVのAESと派生キーの1つを使用してください(重要な部分と私が見たすべてのサンプルコードではそうではありませんでした)。塩とIVをあなたの暗号文の前に付加してください。

  3. 上記のすべてのデータで、他の派生キーとhmacを使用してください。その前に。

  4. 暗号化するには、パスワードと前置塩でキー導出アルゴリズムを使用して鍵を再構築し、hmacを再生成し、生成されたsha1ハッシュを取り出し、メッセージ内のsha1ハッシュを別々に取り出し、それらは同じです(直接hmacsを直接比較しないでください)。そして、他の派生キーと前置されたIVを使用してデータを解読してください。

これは、彼らが別のパスワードに置く必要があるので、書いて、ユーザーに迷惑する痛みであるが、それ以外はしっかりとそれを行うための方法はありません。あなたがiPhoneに鍵を保存すると、誰かがそれを読んでデータを解読することができます。鍵を暗号化できますが、その鍵をどのように保存しますか?

私はリンゴがこれのためのまともな目的cバインディングを持っているとは思わないので、共通のcrypto c APIを使用する必要があります。その文書hereが記載されています。役に立たないと思われるobjective-c APIは、文書化されています。here

関連する問題