Création d’installations d’appareils sécurisées
Lorsque vous créez un package de pilotes, vous devez vous assurer que l’installation de votre appareil sera toujours effectuée de manière sécurisée. Une installation d’appareil sécurisée est une installation qui effectue les opérations suivantes :
limite l’accès à l’appareil et à ses classes d’interface d’appareil
limite l’accès aux services de pilote qui ont été créés pour l’appareil
protège les fichiers de pilote contre toute modification ou suppression
limite l’accès aux entrées de Registre de l’appareil
limite l’accès aux classes WMI de l’appareil
utilise correctement les fonctions SetupAPI
La sécurité de l’installation de l’appareil est contrôlée par des descripteurs de sécurité. Le principal support pour la spécification des descripteurs de sécurité est le fichier INF. Le système fournit des descripteurs de sécurité par défaut et, dans la plupart des cas, vous n’avez pas besoin de remplacer ces descripteurs.
Paramètres de sécurité pour les appareils et les interfaces
Le système fournit des descripteurs de sécurité par défaut pour toutes les classes de configuration d’appareil fournies par le système. En règle générale, ces descripteurs autorisent un accès complet pour les administrateurs système et un accès en lecture/écriture/exécution pour les utilisateurs. (Les descripteurs de sécurité qui contrôlent l’accès à un appareil contrôlent également l’accès aux classes d’interface d’appareil de l’appareil, le cas échéant.)
Les fichiers INF pour les pilotes WDM peuvent spécifier des paramètres de sécurité, par classe ou par appareil, qui remplacent les paramètres par défaut du système. Les fournisseurs qui créent une classe d’installation d’appareil doivent spécifier un descripteur de sécurité pour la classe . En règle générale, la spécification d’un descripteur de sécurité spécifique à l’appareil n’est pas nécessaire. Il peut être utile de fournir un descripteur de sécurité spécifique à l’appareil si différents types d’appareils appartenant à la même classe ont des types d’utilisateurs considérablement différents.
Pour spécifier un descripteur de sécurité pour tous les appareils qui appartiennent à une classe d’installation d’appareil WDM, utilisez une directive ADDReg INF dans une section INF ClassInstall32 du fichier INF du programme d’installation de classe. La directive AddReg doit pointer vers une section add-registry qui définit des valeurs pour les entrées de Registre DeviceType et Security . Ces valeurs de Registre spécifient un descripteur de sécurité pour tous les appareils du type d’appareil spécifié.
Pour spécifier un descripteur de sécurité pour un seul appareil qui appartient à une classe d’installation d’appareil WDM, utilisez une directive INF AddReg dans une section INF DDInstall.HW du fichier INF de l’appareil. La directive AddReg doit pointer vers une section add-registry qui définit des valeurs pour les entrées de Registre DeviceType et Security . Ces valeurs de Registre spécifient un descripteur de sécurité pour tous les appareils qui correspondent à l’ID matériel ou aux ID compatibles spécifiés par une section modèles INF associée.
Par défaut, le système applique le descripteur de sécurité défini pour un appareil à une demande d’ouverture de l’objet d’appareil qui représente l’appareil (par exemple, une demande d’ouverture de l’appareil dont le nom d’appareil NT est \Device\DeviceName).
Toutefois, le système n’applique pas par défaut le descripteur de sécurité défini pour un appareil à une demande d’ouverture d’un objet dans l’espace de noms de l’appareil, où l’espace de noms de l’appareil inclut tous les objets dont le nom a la forme \Device\DeviceName\ObjectName. Pour vous assurer que les mêmes paramètres de sécurité sont appliqués aux demandes d’ouverture d’objets dans l’espace de noms d’un appareil, définissez l’indicateur FILE_DEVICE_SECURE_OPEN caractéristiques d’un appareil. Pour plus d’informations sur l’accès sécurisé aux appareils, consultez Contrôle de l’accès à l’espace de noms des appareils (pilotes Windows). Pour plus d’informations sur la définition de l’indicateur de caractéristiques d’appareil FILE_DEVICE_SECURE_OPEN, consultez Spécification des caractéristiques de l’appareil (pilotes Windows).
Le gestionnaire PnP définit des valeurs de sécurité sur les objets d’appareil après avoir appelé la routine AddDevice d’un pilote. Certains pilotes WDM peuvent spécifier un descripteur de sécurité spécifique au périphérique lors de la création d’un objet de périphérique physique (PDO) en appelant IoCreateDeviceSecure. Pour plus d’informations, consultez Sécurisation des objets d’appareil.
Paramètres de sécurité pour les fichiers de pilotes
Lors de la copie de fichiers à l’aide de la directive INF CopyFiles, il est possible de spécifier une section de liste de fichiers. section sécurité . Cette section spécifie un descripteur de sécurité pour tous les fichiers copiés par la directive CopyFiles . Toutefois, les fournisseurs n’ont jamais à spécifier de descripteur de sécurité pour les fichiers de pilote, si la destination d’installation est l’un des sous-répertoires système de %SystemRoot%. (Pour plus d’informations sur ces sous-répertoires, consultez Utilisation de Dirids.) Le système fournit des descripteurs de sécurité par défaut pour ces sous-répertoires, et les descripteurs par défaut ne doivent pas être remplacés.
Paramètres de sécurité pour les services de pilote
Dans la section d’installation du service d’un fichier INF de pilote (voir Directive INF AddService), vous pouvez inclure une entrée Sécurité . Cette entrée spécifie les autorisations requises pour effectuer des opérations telles que le démarrage, l’arrêt et la configuration des services de pilote associés à votre appareil. Toutefois, le système fournit un descripteur de sécurité par défaut pour les services de pilote, et ce descripteur par défaut n’a généralement pas besoin d’être remplacé.
Paramètres de sécurité pour les entrées du Registre des périphériques et des pilotes
Lorsque vous spécifiez des entrées de Registre dans des fichiers INF à l’aide de directives INF AddReg, vous pouvez inclure une section add-registry. Section Sécurité pour chaque section add-registry.. Add-registry-section. La section Sécurité spécifie les autorisations d’accès aux entrées de Registre créées qui sont créées par la section add-registry-section associée. Le système fournit un descripteur de sécurité par défaut pour toutes les entrées de Registre créées sous la racine relative HKR . Par conséquent, vous n’avez pas besoin de spécifier un descripteur de sécurité lors de la création d’entrées de Registre sous la racine relative.
Paramètres de sécurité pour les classes WMI
Le système affecte des descripteurs de sécurité par défaut aux GUID qui identifient les classes WMI. Pour Windows XP et les versions antérieures du système d’exploitation, le descripteur de sécurité par défaut pour les GUID WMI permet un accès complet à tous les utilisateurs. À compter de Windows Server 2003, le descripteur de sécurité par défaut autorise l’accès uniquement aux administrateurs.
Si votre pilote définit des classes WMI et que vous ne souhaitez pas utiliser les descripteurs de sécurité par défaut du système pour ces classes, vous pouvez fournir des descripteurs de sécurité à l’aide d’une section INF DDInstall.WMI dans le fichier INF de l’appareil.
Utilisation correcte des fonctions SetupAPI
Si votre package de pilotes comprend des programmes d’installation, des co-programmes d’installation ou d’autres applications d’installation qui appellent des fonctions SetupAPI, vous devez suivre les instructions relatives à l’utilisation de SetupAPI.
Test des paramètres de sécurité de l’installation
Utilisez la journalisation SetupAPI pour vérifier que les paramètres de sécurité associés à l’installation de votre appareil ont été spécifiés correctement. Définissez le niveau de journalisation sur détaillé (0x0000FFFF), puis essayez différents scénarios d’installation.
Ces scénarios doivent inclure à la fois les installations et les réinstallations initiales, à partir de comptes d’utilisateur et de comptes d’administrateur système. Essayez de brancher votre appareil avant d’installer le logiciel, et vice versa.
Si une installation réussit, affichez le journal pour confirmer qu’aucune erreur ne s’est produite. Si une installation échoue, affichez le journal pour déterminer la cause de l’échec.
En outre, une fois l’installation terminée, vous pouvez effectuer les opérations suivantes :
Utilisez l’Éditeur du Registre pour afficher les paramètres de sécurité affectés à une entrée de Registre.
Utilisez Poste de travail pour afficher les paramètres de sécurité affectés à un fichier.