Sécurité de la clé de Registre et droits d’accès

Le modèle de sécurité Windows vous permet de contrôler l’accès aux clés de Registre. Pour plus d’informations sur la sécurité, consultez Modèle de contrôle d’accès.

Vous pouvez spécifier un descripteur de sécurité pour une clé de Registre lorsque vous appelez la fonction RegCreateKeyEx ou RegSetKeySecurity . Si vous spécifiez NULL, la clé obtient un descripteur de sécurité par défaut. Les listes de contrôle d’accès dans un descripteur de sécurité par défaut pour une clé sont héritées de sa clé parente directe.

Pour obtenir le descripteur de sécurité d’une clé de Registre, appelez la fonction RegGetKeySecurity, GetNamedSecurityInfo ou GetSecurityInfo .

Les droits d’accès valides pour les clés de Registre incluent les droits DELETE, READ_CONTROL, WRITE_DAC et WRITE_OWNER standard. Les clés de Registre ne prennent pas en charge le droit d’accès standard SYNCHRONIZE.

Le tableau suivant répertorie les droits d’accès spécifiques pour les objets de clé de Registre.

Valeur Signification
KEY_ALL_ACCESS (0xF003F)
Combine les droits d’accès STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY et KEY_CREATE_LINK.
KEY_CREATE_LINK (0x0020)
Réservé pour le système.
KEY_CREATE_SUB_KEY (0x0004)
Obligatoire pour créer une sous-clé d’une clé de Registre.
KEY_ENUMERATE_SUB_KEYS (0x0008)
Requis pour énumérer les sous-clés d’une clé de Registre.
KEY_EXECUTE (0x20019)
Équivalent à KEY_READ.
KEY_NOTIFY (0x0010)
Obligatoire pour demander des notifications de modification pour une clé de Registre ou pour les sous-clés d’une clé de Registre.
KEY_QUERY_VALUE (0x0001)
Requis pour interroger les valeurs d’une clé de Registre.
KEY_READ (0x20019)
Combine les valeurs STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS et KEY_NOTIFY.
KEY_SET_VALUE (0x0002)
Requis pour créer, supprimer ou définir une valeur de Registre.
KEY_WOW64_32KEY (0x0200)
Indique qu’une application sur Windows 64 bits doit fonctionner sur la vue du Registre 32 bits. Cet indicateur est ignoré par Windows 32 bits. Pour plus d’informations, consultez Accès à un autre affichage du Registre.
Cet indicateur doit être combiné à l’aide de l’opérateur OR avec les autres indicateurs de cette table qui interrogent ou accèdent aux valeurs de Registre.
Windows 2000 : Cet indicateur n’est pas pris en charge.
KEY_WOW64_64KEY (0x0100)
Indique qu’une application sur Windows 64 bits doit fonctionner sur l’affichage du Registre 64 bits. Cet indicateur est ignoré par Windows 32 bits. Pour plus d’informations, consultez Accès à un autre affichage du Registre.
Cet indicateur doit être combiné à l’aide de l’opérateur OR avec les autres indicateurs de cette table qui interrogent ou accèdent aux valeurs de Registre.
Windows 2000 : Cet indicateur n’est pas pris en charge.
KEY_WRITE (0x20006)
Combine les droits d’accès STANDARD_RIGHTS_WRITE, KEY_SET_VALUE et KEY_CREATE_SUB_KEY.

Lorsque vous appelez la fonction RegOpenKeyEx , le système vérifie les droits d’accès demandés par rapport au descripteur de sécurité de la clé. Si l’utilisateur ne dispose pas du bon accès à la clé de Registre, l’opération d’ouverture échoue. Si un administrateur a besoin d’accéder à la clé, la solution consiste à activer le privilège SE_TAKE_OWNERSHIP_NAME et à ouvrir la clé de Registre avec un accès WRITE_OWNER. Pour plus d’informations, consultez Activation et désactivation des privilèges.

Vous pouvez demander le droit d’accès ACCESS_SYSTEM_SECURITY à une clé de Registre si vous souhaitez lire ou écrire la liste de contrôle d’accès système (SACL) de la clé. Pour plus d’informations, consultez Listes de contrôle d’accès (ACL) et Droit d’accès SACL.

Pour afficher les droits d’accès actuels pour une clé, y compris les clés prédéfinies, utilisez l’Éditeur du Registre (Regedt32.exe). Après avoir accédé à la clé souhaitée, accédez au menu Modifier et sélectionnez Autorisations.