2017-04-02 19 views
2

セキュリティは私の専門分野ではありませんが、API 18以上を使用してAndroid KeyStoreに秘密鍵を保存することに関する質問があります。私は私のキーを試してみて、保存するために、次のコードを使用します。API 18以上を使用してAndroid KeyStoreに秘密鍵を保存

KeyStore ks = KeyStore.getInstance("AndroidKeyStore"); 
ks.load(null); 

KeyStore.SecretKeyEntry sKeyEntry = new KeyStore.SecretKeyEntry(ivKey); 

ks.setEntry(ALIAS, sKeyEntry, null); // This is where the issue is 

私は「ヌル」は、私が構築KeyProtectionのPARAMでなければならないことを理解しますが、これはAPI 18のために利用できないのは、この問題の回避策はあります?私は動作するものを見つけるのが難しいです。

java.security.KeyStoreException: Protection parameters must be specified when importing a symmetric key

答えて

0

AndroidKeyStoreはあなたが持っている何をしようとして行うにはAPIレベル23まで秘密鍵をサポートしていませんでした:

EDIT私はヌルとしてそれを残すことはエラーをスローすることを言及する必要がありますターゲット23以上に

Android KeyStoreの公開鍵/秘密鍵のペア(RSAなど)のサポートを使用して秘密鍵の素材を暗号化し、ローカルファイルに保存することができます。それを使用するには、秘密鍵を使用して解読する必要があります。次に、鍵の素材に通常のJava暗号API(「AndroidKeyStore」を指定しない)を使用して暗号操作を行います。暗号化と復号化、http://www.androidauthority.com/use-android-keystore-store-passwords-sensitive-information-623779/

を見てみることをAndroidKeyStore RSA鍵ペアを使用する方法を参照するには

しかし、私は実際には、セキュリティの観点から何かを達成することはないと思います。達成すべきセキュリティ目標は何ですか?

+0

「AndroidKeyStore」は使用しないのはなぜですか?何か欠点はありますか? –

関連する問題