私はAndroid KeyStoreを使用しています。私はKeyStore全体と各パスワード入力用のパスワードを設定しました。これらのパスワードは文字列であるため、文字列メンバにコードとして格納されます。安全にAndroid KeyStoreのパスワードを保存する方法
攻撃者がapkを逆コンパイルしてパスワードを取得する可能性があるため、アプリを公開する場合は安全ではありません。アプリでハードコードされているためです。
私の質問は以下のとおりです。上記のシナリオで
- :攻撃者は、ファイルが唯一の私のアプリによってアクセスすることができる(無根電話で)私のキーストアファイルまたはを読むことができるだろうとそうパスワードだけ十分ではありませんか?
- KeyStoreパスワードを処理するベストプラクティスは何ですか?私は周りを見回しましたが、これに対処するための決定的な答えは見つかりませんでした。
編集のための編集:私はアプリの署名については話しませんが、パスワードで保護されたAndroid KeyStoreに暗号鍵を保存することについては言及していません。アプリはキー入力を取得するために実行時にパスワードにアクセスする必要があります。現在のコードの
例:
String keyStorePwd = "password1";
String keyEntryPwd = "password2";
FileInputStream fis = getApplicationContext().openFileInput("sms.keystore");
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(fis, keyStorePwd.toCharArray());
SecretKey key = (SecretKey) ks.getKey("aes_key_sms_notifier", keyEntryPwd.toCharArray());
fis.close();
たぶん、あなたはhttps://github.com/scottyab/secure-preferences – Prexx
@Prexx悪いアイデアを使用することができます。 1つは、なぜあなたはすべてのもののセキュリティのためのギブスのランダムなライブラリを信頼しますか?第二に、安全な設定を暗号化するには、鍵が必要です。それはあなたのアプリにキーがあることを意味します。それは無意味なスピードバンプになります。 –
grade.propertiesを使用しています。あなたのパスをそこに格納します – ZeroOne