RNCryptor v2.2 ObjectiveC ライブラリを使用して暗号化された文字列があります。暗号化後、iPhone にローカルに保存されます。
文字列を元に戻したい場合は、復号化する前に、暗号化された文字列が改ざんされていないことを確認したい (手動で文字を変更したなど)。
どうすればこれを確認できますか?
前もって感謝します!
RNCryptor v2.2 ObjectiveC ライブラリを使用して暗号化された文字列があります。暗号化後、iPhone にローカルに保存されます。
文字列を元に戻したい場合は、復号化する前に、暗号化された文字列が改ざんされていないことを確認したい (手動で文字を変更したなど)。
どうすればこれを確認できますか?
前もって感謝します!
あなたの質問に対する理論的に正しい答えは、アプリでデバイス上でローカルに何をしても、何もしない場合と比較して、データが改ざんされているかどうかはわからないということです。データに関する一部の情報を保存するには、https Web サーバーなどの外部の信頼できるエージェントを使用する必要があります。
これを簡単に説明しましょう。iOSは、ユーザーのデバイスがジェイルブレイクされていないことを前提として、データ サンドボックスモデルを使用してアプリのデータを十分に保護しています。これは、アプリのプライベート データ (アプリの標準のドキュメント、キャッシュなどのフォルダーに保存されている) を変更する方法がないことを意味します。一方、アプリのプライベート フォルダーに保存されている暗号化された情報を変更しようとする悪意のあるユーザーは、デバイスをジェイルブレイクできます。この場合、彼はすべてにアクセスでき、すべてのプライベート フォルダーを読み書きできます。
データのハッシュまたはデジタル署名を作成してデバイスに保存できると言う人もいます。しかし、デバイスがジェイルブレイクされている場合、侵入者はアプリのバイナリ コード (Objective-C はあまり労力をかけずにリバース エンジニアリングできます) を含むすべてにアクセスできるため、ハッシュ生成アルゴリズム、ソルト、またはデジタルの秘密鍵にアクセスできます。サイン。そのため、彼はデジタル署名やハッシュも簡単に操作できました。
データが改ざんされるリスクを評価する必要があります。データを改ざんするのにどれだけの労力が必要ですか? 銀行情報を保存していて、約 100 万人のユーザーがいる場合、誰かがデバイスをジェイルブレイクし、アプリをリバース エンジニアリングし、データを改ざんするリスクを真剣に受け止める必要があります。写真共有アプリのセッション トークンを保存している場合は、iOS のサンドボックスを信頼してそのままにしておくことができます。また、デバイスのジェイルブレイクにはユーザーの積極的な参加が必要であるため、ユーザーの同意なしにリモートで実行することはできません。これは、ユーザーの同意なしにデータを改ざんできないことを意味します。
本当にデータを保護する必要がある場合、唯一の方法は、デバイスに関する外部セキュリティを提供できる、信頼できる外部サービスを使用することです。機密データを https 経由で Web サーバーに送信し、Web サーバーに秘密鍵で署名させ、必要な場所に静かに保存できる署名を再送信することができます。機密データにアクセスする必要があるたびに、データの署名 (およびサーバーの公開証明書を使用した署名の有効性) を検証できます。秘密鍵はリモート サーバーに保存されるため、誰もアクセスできず、改ざんされたデータの署名に使用することはできません。