Хранилище ключей Android «LSKF не настроен для пользователя»JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Хранилище ключей Android «LSKF не настроен для пользователя»

Сообщение Anonymous »

У меня возникла проблема с некоторыми устройствами Android: при генерации пары ключей произошла ошибка «java.security.ProviderException: не удалось создать пару ключей». вызвано «Не удалось обработать супершифрование»., «Не удалось выполнить супершифрование с помощью ключа LskfBound»., «LSKF не настроен для пользователя».
Сброс PIN-кода/пароля экрана блокировки не помогло.
Насколько мне удалось проанализировать ошибку, LSKF — это фактор знания экрана блокировки, PIN-код/пароль, используемый для разблокировки экрана блокировки устройства.Полное исключение (от Samsung S21, Android 14):

Код: Выделить всё

Java.security.ProviderException: Failed to generate key pair.
...
at android.view.View.performClick(View.java:8043) ~[na:0.0]
at android.widget.TextView.performClick(TextView.java:17816) ~[na:0.0]
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1218) ~[na:0.0]
at android.view.View.performClickInternal(View.java:8020) ~[na:0.0]
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) ~[na:0.0]
at android.view.View$PerformClick.run(View.java:31850) ~[na:0.0]
at android.os.Handler.handleCallback(Handler.java:958) ~[na:0.0]
at android.os.Handler.dispatchMessage(Handler.java:99) ~[na:0.0]
at android.os.Looper.loopOnce(Looper.java:230) ~[na:0.0]
at android.os.Looper.loop(Looper.java:319) ~[na:0.0]
at android.app.ActivityThread.main(ActivityThread.java:8893) ~[na:0.0]
at java.lang.reflect.Method.invoke(Native Method) ~[na:0.0]
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608) ~[na:0.0]
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103) ~[na:0.0]
Caused by: android.security.KeyStoreException: Keystore not initialized (internal Keystore code: 3 message: system/security/keystore2/src/security_level.rs:701: In generate_key. 10012

Caused by:
0: system/security/keystore2/src/security_level.rs:209
1: system/security/keystore2/src/security_level.rs:186: Failed to handle super encryption.
2: system/security/keystore2/src/super_key.rs:758: Failed to super encrypt with LskfBound key.
3: system/security/keystore2/src/super_key.rs:718: LSKF is not setup for the user.
4: Error::Rc(r#UNINITIALIZED))
at android.security.KeyStore2.getKeyStoreException(KeyStore2.java:399) ~[na:0.0]
at android.security.KeyStoreSecurityLevel.handleExceptions(KeyStoreSecurityLevel.java:60) ~[na:0.0]
at android.security.KeyStoreSecurityLevel.generateKey(KeyStoreSecurityLevel.java:161) ~[na:0.0]
at android.security.keystore2.AndroidKeyStoreKeyPairGeneratorSpi.generateKeyPair(AndroidKeyStoreKeyPairGeneratorSpi.java:651) ~[na:0.0]
24 common frames omitted
У меня нет прямого доступа к устройству, и я не смог воспроизвести ту же ошибку ни на одном тестовом устройстве.
Что я знаю о устройство:
  • установлены надежные биометрические данные (отпечаток пальца)
    установлен строковый пароль (PASSWORD_COMPLEXITY_HIGH)
Соответствующий параметр генерации ключа:

Код: Выделить всё

setUserAuthenticationRequired(true)
setUserAuthenticationParameters(0,KeyProperties.AUTH_BIOMETRIC_STRONG)
setUserConfirmationRequired(false)
setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
Ошибка возникает при создании ключей RSA и EC. Существуют резервные варианты только для SHA256 и аутентификации по ключу на основе времени, но, похоже, ни один из них здесь не работает.
У кого-нибудь есть такие же проблемы? Я нашел похожую проблему в сети, но без ответа.
Может ли кто-нибудь воспроизвести проблему?
Я пытался удалить и установить факторы блокировки экрана для разных моделей устройств с разных производителей.
Для некоторых старых устройств можно установить отпечаток пальца, затем удалить его и сохранить данные отпечатка пальца, но это не привело к ожидаемой ошибке.
Я добавил логику повтора в процесс генерации ключей для разных типов ключей (RSA, EC), другого алгоритма хэширования (SHA256, SHA512) и тайм-аутов аутентификации (ключей для каждого использования и на основе времени). ключи). Ошибка возникает на всех вариантах этих устройств.

Подробнее здесь: https://stackoverflow.com/questions/782 ... r-the-user
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»