KeyGenParameterSpec.Builder.SetUnlockedDeviceRequired(Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece si esta clave está autorizada para usarse solo mientras el dispositivo está desbloqueado.
[Android.Runtime.Register("setUnlockedDeviceRequired", "(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=28)]
public Android.Security.Keystore.KeyGenParameterSpec.Builder SetUnlockedDeviceRequired(bool unlockedDeviceRequired);
[<Android.Runtime.Register("setUnlockedDeviceRequired", "(Z)Landroid/security/keystore/KeyGenParameterSpec$Builder;", "", ApiSince=28)>]
member this.SetUnlockedDeviceRequired : bool -> Android.Security.Keystore.KeyGenParameterSpec.Builder
Parámetros
- unlockedDeviceRequired
- Boolean
Devoluciones
- Atributos
Comentarios
Establece si esta clave está autorizada para usarse solo mientras el dispositivo está desbloqueado.
El dispositivo se considera bloqueado para un usuario cuando las aplicaciones del usuario no son accesibles actualmente y se requiere algún tipo de autenticación de pantalla de bloqueo para recuperar el acceso a ellos. Para obtener la definición completa, vea KeyguardManager.isDeviceLocked().
Las operaciones de clave pública no están restringidas por setUnlockedDeviceRequired(true) y se pueden realizar incluso mientras el dispositivo está bloqueado. En Android 11 (nivel de API 30) y versiones inferiores, las operaciones de cifrado y comprobación con claves simétricas tampoco estaban restringidas.
Las claves que usan setUnlockedDeviceRequired(true) se pueden importar e generar incluso mientras el dispositivo está bloqueado, siempre y cuando el dispositivo se haya desbloqueado al menos una vez desde el último reinicio. Sin embargo, estas claves no se pueden usar (excepto para las operaciones sin restricciones mencionadas anteriormente) hasta que se desbloquea el dispositivo. Las aplicaciones que necesitan cifrar datos mientras el dispositivo está bloqueado de modo que solo se pueda descifrar mientras el dispositivo está desbloqueado pueden generar una clave y cifrar los datos en software, importar la clave en Keystore mediante setUnlockedDeviceRequired(true) y cero la clave original.
setUnlockedDeviceRequired(true) está relacionado con pero distinto de setUserAuthenticationRequired(true). setUnlockedDeviceRequired(true) requiere que el dispositivo se desbloquee, mientras que setUserAuthenticationRequired(true) requiere que se haya producido un tipo específico de autenticación segura dentro de un período de tiempo específico. Pueden utilizarse juntos o por separado; hay casos en los que se puede cumplir un requisito, pero no el otro.
Advertencia: Tenga cuidado con el uso de setUnlockedDeviceRequired(true) en Android 14 (nivel de API 34) y versiones inferiores, ya que los siguientes errores existían en Android 12 a 14: Cuando el usuario no tenía una pantalla de bloqueo segura, las claves necesarias para dispositivos desbloqueados no se podían generar, importar o usar; Cuando se quitó la pantalla de bloqueo seguro del usuario, se eliminaron automáticamente todas las claves desbloqueadas de ese usuario; Desbloquear el dispositivo con una biometría no segura, como la cara en muchos dispositivos, no volvió a autorizar el uso de claves necesarias para dispositivos desbloqueados; Desbloquear el dispositivo con una biométrica no volvió a autorizar el uso de claves necesarias para dispositivos desbloqueados en perfiles que comparten el bloqueo del usuario primario. Estos problemas se corrigen en Android 15, por lo que las aplicaciones pueden evitarlos mediante setUnlockedDeviceRequired(true) solo en Android 15 y versiones posteriores. Las aplicaciones que usan setUnlockedDeviceRequired(true) y setUserAuthenticationRequired(true) no se ven afectadas por los dos primeros problemas, ya que los dos primeros problemas describen el comportamiento esperado para setUserAuthenticationRequired(true).
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.