7.1.1에서 Google Pixel 기기를 테스트하고 기기에서 모든 지문을 제거하면 내 비공개 키가 무효화되지 않고 있음을 확인합니다. 필자는 데모 응용 프로그램마다 하나의 대칭 SecretKey를 사용하여 테스트했으며 예상대로 작동했지만 비대칭 키 쌍을 사용하면 새 인쇄가 등록 될 때만 KeyPermanentlyInvalidatedException
이 삭제되고 모두 삭제되지는 않습니다. 그때 새로운 지문을 등록하는 경우지문이 제거 된 경우 Android 키 무효화
무엇보다, 다음, 내 지문 대화 상자를 표시하고 성공적으로 그때 그것이 KeyStoreException: Key user not authenticated
던져 Cipher
객체에 doFinal()
를 호출 할 때 내 지문의 Cipher
객체를 인증 검사합니다. 그런 다음 KeyStoreException
다음에 Cipher 객체를 다시 초기화하려고하면 필요에 따라 무효 예외가 발생합니다.
삼성 S7에서 6.0.1을 사용하여 테스트했는데 인쇄가 모두 제거되면 올바르게 작동하고 KeyPermanentlyInvalidatedException
이 표시됩니다. 나는 related post에서 다른 누군가가 넥서스 (OS 버전이 언급되지 않았 음)에 문제가 있었을 가능성이 있음을 발견했습니다. 특정 키를 무효화하지 않는 장치/OS의 특정 조합에 버그가있을 수 있습니까?
는 것을 보일 수있을 것입니다 : 모든 지문이 제거 될 때 픽셀 또는 7.1.1 장치에
- 가의 PrivateKey의 무효화되지 않습니다.
- 이전에 모두 제거한 후에 새 인쇄를 등록하는 경우 PrivateKey를 사용하여 데이터를 해독 할 수는 없지만 사용하려고하면 해당 키는 무효화됩니다.
나는 사용자가 이전에 내 응용 프로그램에서 지문 등록했지만 안전 장치의 비트와 같은 장치에 등록 된 어떤 지문이 지금이 없음을 감지 할 때 수동으로 키 스토어 또는 무언가를 통해 키를 무효화하는 방법이 있나요?
업데이트 : 요청시 키 생성을 보여줍니다.
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