Google Pixelデバイスで7.1.1をテストし、すべてのフィンガープリントがデバイスから削除されたときに私の秘密キーが無効になっていないことを確認しています。デモアプリケーションごとに1つの対称SecretKeyを使用してテストしましたが、期待通りに機能しましたが、非対称キーペアを使用すると、新しいプリントが登録されたときにのみKeyPermanentlyInvalidatedException
がスローされます。私はその後、私の指紋ダイアログを表示し、成功した私は、それはKeyStoreException: Key user not authenticated
をスローCipher
オブジェクトにdoFinal()
を呼び出すCipher
オブジェクトを、認証私の指紋をスキャンし、その後、新たに指紋を登録すれば、より多くの何フィンガープリントを削除したときのAndroidキーの無効化
。 KeyStoreException
の後でCipherオブジェクトを再度初期化しようとすると、必要に応じて無効化された例外が発生します。
サムスンS7で6.0.1を使用してテストしたところ、正常に動作し、プリントがすべて削除されたときにKeyPermanentlyInvalidatedException
が投げられました。私はrelated postに、他の誰かがネクサス(OSのバージョンは言及されていませんでした)に問題があった可能性があることがわかりましたか?特定のキーを無効にしないデバイス/ OSの特定の組み合わせのバグがありますか?それはそのように思わ
:ピクセルまたは7.1.1デバイスで
- を全ての指紋が除去された後には、PrivateKeyが無効にされていません。
- 以前にすべてを削除した後に新しいプリントを登録すると、PrivateKeyを使用してデータの復号化を行うことはできませんが、使用すると無効になります。
ユーザーが私のアプリに指紋登録したことを検出したときにキーストアなどで手動でキーを無効にする方法はありますか?しかし、フェールセーフのようにデバイスに指紋が登録されていませんか?
UPDATE:リクエスト時に鍵の生成を表示します。
mKeyPairGenerator.initialize(
new KeyGenParameterSpec.Builder(getKeyName(), KeyProperties.PURPOSE_DECRYPT)
.setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
.setUserAuthenticationRequired(true)
.setRandomizedEncryptionRequired(true)
.build());
mKeyPairGenerator.generateKeyPair();
'setUserAuthenticationRequired'と' setUserAuthenticationValidityDurationSeconds'を使用しましたか?コードを表示する。 – Codo
はい私は 'setUserAuthenticationRequired(true)'を使用していますが、有効期限は使用しませんが、キーを使用するたびに権限を与えます。 – rossco
こんにちは、私は全く同じ問題を抱えています。あなたはそれを解決することができましたか?ありがとう;) – Venator85