1

私は iPhone アプリを構築しています。現在、文字列を暗号化し、ファイルに保存し、後で復号化できるようにする必要があります。私が理解しているように、対称暗号化を使用してこれを行うことができますが、暗号化/復号化のキーはリバース エンジニアリングされる可能性があります。非対称暗号化はこの問題を解決できますが、データを送信して秘密鍵で復号化するにはサーバーが必要なようです。スタンドアロン アプリで文字列を安全に暗号化/復号化する方法を知っている人はいますか?

ありがとう!

4

4 に答える 4

7

セキュリティに関するすべての問題と同様に、問題は次のとおりです。誰に対して防御しているのか?

カジュアルな泥棒 (またはスクリプト キディー) が暗号化された文字列を読み取るのを防止しようとしている場合は、 Keychainなどの組み込みの iOS 暗号化サービスを使用すると、適切から適切なセキュリティを提供できます。明らかに、セキュリティの強度は、制御できないさまざまな要因 (特に、ユーザーがデバイスに対して構成したパスワード ロックの種類 (もしあれば)) に部分的に左右されます。

次のレベルアップは、対称的に暗号化されたキー (つまり、ユーザーのパスフレーズで保護されたもの) を使用した対称暗号化です。@lukasが指摘したように、もちろん原則としてこれはクラックできますが、実用的な観点から、ユーザーが十分に大きなキーに対して十分に強力なパスフレーズを選択した場合、カジュアルから中レベルの攻撃者は効果的に阻止されます.

一方、ブルース・シュナイアーが言うように、あなたの子供の妹からではなく、主要な世界政府から秘密を守る必要がある場合、これらのアプローチは不十分である可能性が高く、他のオプションを検討する必要があります。複数のキーと複数の認証要素を使用して、文字列を複数の場所に保存することに限定されます。

これらすべて (最後のオプションを保存) に関する主要な Apple リファレンスはSecure Coding Guideであり、最初のページの最後に他のより具体的なプログラミング ガイド (キーチェーンや暗号化サービスなどをカバー) への参照があります。また、Graham Lee のProfessional Cocoa Application Securityも心からお勧めします。理論的な基礎が必要な場合、ゴールド スタンダードは Schneier のApplied Cryptographyです。

于 2012-04-06T23:22:45.863 に答える
2

この基本的な質問は、Stackoverflow で頻繁に尋ねられます。答えは、自分の顧客に対するセキュリティを曖昧にすることはできず、試みに過度の費用を費やすべきではないということです。以前の多くの議論を見つけるために、次のリンクをお勧めします。

上記から、さらにいくつかのリンクが見つかります。しかし、最終的な答えは、間違った問題を解決しようとしている可能性が高く、解決したいと思っている問題は解決できないということです。

于 2012-04-06T23:47:29.557 に答える
1

スタンドアロン アプリで文字列を安全に暗号化/復号化する方法を知っている人はいますか?

いいえ。誰かがデータに物理的にアクセスできる場合、クラックされる可能性があります。問題を解決するための Web サービスを作成します。

于 2012-04-06T23:01:33.637 に答える
0

Keychain Services の使用を検討しましたか?

于 2012-04-06T23:15:34.337 に答える