2017-02-21 13 views
1

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デバイスで

  1. を全ての指紋が除去された後には、PrivateKeyが無効にされていません。
  2. 以前にすべてを削除した後に新しいプリントを登録すると、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(); 
+0

'setUserAuthenticationRequired'と' setUserAuthenticationValidityDurationSeconds'を使用しましたか?コードを表示する。 – Codo

+0

はい私は 'setUserAuthenticationRequired(true)'を使用していますが、有効期限は使用しませんが、キーを使用するたびに権限を与えます。 – rossco

+0

こんにちは、私は全く同じ問題を抱えています。あなたはそれを解決することができましたか?ありがとう;) – Venator85

答えて

0

UPDATEそれが思わこれはGoogle Issue 227919に、部分的に関係しています。 2月17日のコメント最新のNバージョンに修正が加えられたとしますが、私はまだ他のもののように再現できます。

この問題が発生した場合は、Googleの問題に注目してください。

関連する問題