Langue

KeyGenParameterSpec.Builder.SetUnlockedDeviceRequired(Boolean) Méthode

Définition

Définit si cette clé est autorisée à être utilisée uniquement pendant le déverrouillage de l’appareil.

[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

Paramètres

unlockedDeviceRequired
Boolean

Retours

Attributs

Remarques

Définit si cette clé est autorisée à être utilisée uniquement pendant le déverrouillage de l’appareil.

L’appareil est considéré comme verrouillé pour un utilisateur lorsque les applications de l’utilisateur sont actuellement inaccessibles et qu’une forme d’authentification par écran de verrouillage est nécessaire pour récupérer l’accès à ces derniers. Pour obtenir la définition complète, consultez KeyguardManager.isDeviceLocked().

Les opérations de clé publique ne sont pas limitées par setUnlockedDeviceRequired(true) et peuvent être effectuées même si l’appareil est verrouillé. Dans Android 11 (niveau d’API 30) et inférieur, les opérations de chiffrement et de vérification avec des clés symétriques n’ont pas été limitées non plus.

Les clés qui utilisent setUnlockedDeviceRequired(true) peuvent être importées et générées même si l’appareil est verrouillé, tant que l’appareil a été déverrouillé au moins une fois depuis le dernier redémarrage. Toutefois, ces clés ne peuvent pas être utilisées (à l’exception des opérations illimitées mentionnées ci-dessus) tant que l’appareil n’est pas déverrouillé. Les applications qui doivent chiffrer les données pendant que l’appareil est verrouillé de telle sorte qu’il ne peut être déchiffré que lorsque l’appareil est déverrouillé peut générer une clé et chiffrer les données dans le logiciel, importer la clé dans keystore à l’aide de setUnlockedDeviceRequired(true) et zéro la clé d’origine.

setUnlockedDeviceRequired(true) est lié mais distinct de setUserAuthenticationRequired(true). setUnlockedDeviceRequired(true) exige que l’appareil soit déverrouillé, tandis que setUserAuthenticationRequired(true) exige qu’un type spécifique d’authentification forte ait eu lieu dans une période spécifique. Ils peuvent être utilisés ensemble ou séparément ; il existe des cas où une exigence peut être satisfaite, mais pas l’autre.

Avertissement : Veillez à utiliser setUnlockedDeviceRequired(true) sur Android 14 (niveau d’API 34) et à réduire, car les bogues suivants existaient dans Android 12 à 14 : Lorsque l’utilisateur n’avait pas d’écran de verrouillage sécurisé, les clés déverrouillées-requises ne pouvaient pas être générées, importées ou utilisées ; Lorsque l’écran de verrouillage sécurisé de l’utilisateur a été supprimé, toutes les clés déverrouillées requises par l’appareil ont été supprimées automatiquement ; Déverrouillage de l’appareil avec une biométrie non forte, comme le visage sur de nombreux appareils, n’a pas réinscrit l’utilisation des clés déverrouillées requises pour l’appareil ; Le déverrouillage de l’appareil avec une biométrie n’a pas autorisé l’utilisation de clés requises par appareil déverrouillées dans des profils qui partagent le verrou de l’utilisateur parent. Ces problèmes sont résolus dans Android 15. Les applications peuvent donc les éviter à l’aide de setUnlockedDeviceRequired(true) uniquement sur Android 15 et versions ultérieures. Les applications qui utilisent setUnlockedDeviceRequired(true) et setUserAuthenticationRequired(true) ne sont pas affectées par les deux premiers problèmes, car les deux premiers problèmes décrivent le comportement attendu pour setUserAuthenticationRequired(true).

Référence Android pour android.security.keystore.KeyGenParameterSpec.Builder.setUnlockedDeviceRequired.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à