0

私は安全なSMSメッセージングアプリケーションを開発しています。すべてのデータはRSAキーから派生したAESキーを使用して暗号化されています。私は、アプリのパスワードを保護したいので、これらのキーはパスワードで保護されているので、たとえデバイスがルートされていてもキーなしでキーを抽出することはできません。/resume、パスワードが正しい場合、キーを抽出し、ラムに保存し、キーを使用します。アプリが閉じる/破棄されたら、キーを削除します。RSA/AESキーのベストプラクティスをAndroidアプリでパスワード保護

私はキーストアを使用すると考えましたが、それがどれほど安全であるかはわかりません。

は、それがそのhttps://developer.android.com/training/articles/keystore.htmlで書かれている:アプリのプロセスが侵害され 場合、攻​​撃者はアプリケーションのキーを使用することができるかもしれないが、その鍵を抽出することができません(例えば、Androidデバイスの外部で使用されます)。 と Android OSが侵害された場合、または攻撃者がデバイスの内部ストレージを読み取る可能性がある場合、攻撃者はAndroid搭載デバイス上の任意のアプリのAndroidキーストアキーを使用することができます。

実際にはどういう意味ですか?

私の問題を解決する正しい方法と安全な方法は何ですか?

答えて

1

簡単に言えば、Keystoreを使用すると、暗号化と復号化をブラックボックスのように扱うことができます。アプリケーションは、操作、アルゴリズム、さらにはキーIDを指定することはできますが、操作自体を監視することはできません。これにより、攻撃者はアプリケーションプロセスを制御していても、あなたの鍵を盗むことができなくなります。デバイス上で任意に暗号化/復号化を実行できますが、使用されている実際の鍵は認識できません。もちろん、十分に資金を供給され、動機づけられた攻撃者は、最終的にキーを抽出することができますが、ユーザーは優れた政府の怒りを募らない限り、そのような攻撃者に直面する可能性は低いです。

あなたのシナリオでは、キーチェーンにキーを格納することは、ほとんどの攻撃者(デバイスに直接アクセスできるものであっても)がアプリケーションで使用するキーを盗むリスクを軽減する効果的な方法です。ファイルシステムに格納するか、ハードコーディングするよりもはるかに安全です。あなたが記述したシナリオでは、それ以上のものでなければなりません。

+0

ありがとうございました。パスワードでキーストアを暗号化することはできますか? – Mykolas777

+0

私が知っている限り、あなたはできません。 –

関連する問題