Partager via


Résolution des problèmes d’installation de signature de pilote

L’installation d’un pilote signé en version est identique à celle décrite dans Installation, désinstallation et chargement du package de pilotes Test-Signed dans la signature de test, à l’exception de deux étapes supplémentaires nécessaires lors de l’installation à l’aide de l’une des méthodes décrites ici.

Si le signataire du package de pilotes n’a pas encore été configuré sur le système pour être approuvé, vous pouvez voir la boîte de dialogue Sécurité Windows suivante.

capture d’écran montrant la boîte de dialogue sécurité windows.

La sélection de la zone case activée n’affiche plus cette boîte de dialogue sur l’ordinateur si le pilote est à nouveau installé ou si le pilote est supprimé pour une raison quelconque.

Note Le système vérifie que les informations de l’éditeur sont exactes en fonction du SPC utilisé pour signer le catalogue. Si le niveau d’approbation de l’éditeur est inconnu (comme cela sera vrai pour Contoso.com), le système affiche la boîte de dialogue. Pour que l’installation se poursuive, l’utilisateur doit sélectionner Installer. Pour plus d’informations sur l’approbation et l’installation du pilote, consultez Meilleures pratiques en matière de signature de code.

Un pilote non signé affiche la boîte de dialogue suivante, qui permet à un utilisateur d’installer un pilote non signé (cela peut ne pas fonctionner dans la version x64 de Windows).

capture d’écran montrant la boîte de dialogue d’avertissement de sécurité windows.

Vérifiez que le pilote Release-Signed fonctionne correctement

Utilisez Gestionnaire de périphériques pour afficher les propriétés du pilote (décrites précédemment pour le pilote signé par le test). Vous trouverez ci-dessous la capture d’écran pour afficher si le pilote fonctionne.

capture d’écran montrant l’appareil grille-pain dans le gestionnaire de périphériques.

Résoudre les problèmes de pilotes Release-Signed

Plusieurs façons courantes de résoudre les problèmes liés au chargement de pilotes signés ou signés de test sont répertoriées ci-dessous :

  • Utilisez Gestionnaire de périphériques pour case activée si le pilote est chargé et signé, comme décrit dans Vérifier que le pilote Test-Signed fonctionne correctement lors de la signature de test.
  • Ouvrez le fichier setupapi.dev.log créé dans le répertoire %windir%\inf après l’installation du pilote. Avant d’installer le pilote, reportez-vous à la section relative à la définition de l’entrée de Registre et au renommage du fichier setupapi.dev.log.
  • Vérifiez le journal d’audit de sécurité Windows et les journaux des événements d’intégrité du code.

Analyse du fichier Setupapi.dev.log

Comme expliqué précédemment, toutes les informations d’installation du pilote sont consignées (ajoutées) au fichier setupapi.dev.log dans le répertoire %windir%\inf. Lors du test de l’installation de votre package de pilotes, si le fichier est renommé avant l’installation d’un pilote, un nouveau fichier journal est généré. Un nouveau fichier journal sera plus facile à rechercher pour les journaux importants d’une nouvelle installation de pilote. Toutefois, le fichier journal ne doit pas être renommé dans le cadre d’un scénario de production. Le fichier journal peut être ouvert dans n’importe quel logiciel de modification de texte.

La colonne la plus à gauche peut avoir un seul point d’exclamation « ! » ou plusieurs marques d’exclamation « !!! ». Le point d’exclamation unique est un message d’avertissement, mais le triple point d’exclamation indique un échec.

Vous verrez le point d’exclamation unique suivant lorsque vous installez une version de package de pilote signée avec un certificat SPC fourni par un fournisseur d’autorité de certification. Il s’agit d’avertissements indiquant que le fichier cat n’a pas encore été vérifié.

!    sig:                Verifying file against specific (valid) catalog failed! (0x800b0109)
!    sig:                Error 0x800b0109: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider.
     sig:                Success: File is signed in Authenticode(tm) catalog.
     sig:                Error 0xe0000242: The publisher of an Authenticode(tm) signed catalog has not yet been established as trusted.

Si vous sélectionnez le bouton « Installer » dans la boîte de dialogue affichée lorsque le signataire n’est pas encore approuvé sur cet ordinateur, vous verrez le journal ci-dessous, ce qui signifie dans la plupart des cas que le pilote s’installera et se chargera correctement. Le Gestionnaire de périphériques ne signale aucune erreur ni aucun point d’exclamation jaune pour le pilote.

!    sto:           Driver package signer is unknown but user trusts the signer.

Si vous voyez également le journal des erreurs suivant dans le fichier journal, il se peut que le pilote ne soit pas chargé.

Le fichier setupapi.dev.log a également signalé l’erreur suivante :

!!!  dvi:                          Device not started: Device has problem: 0x34: CM_PROB_UNSIGNED_DRIVER.

Notez que 0x34 est le code 52.

Pour résoudre les problèmes, passez en revue le fichier journal et recherchez les marques d’exclamation en regard d’un binaire de pilote. Exécutez la signtool verify commande sur le fichier cat et d’autres fichiers binaires signés incorporés.

En règle générale, les informations du fichier journal sont suffisantes pour résoudre le problème. Si les vérifications ci-dessus ne parviennent pas à trouver la cause racine, case activée le journal d’audit de sécurité Windows et les journaux des événements d’intégrité du code, décrits dans la section suivante.

Utilisation du journal d’audit Sécurité Windows

Si le pilote n’a pas pu se charger parce qu’il n’avait pas de signature valide, il est enregistré en tant qu’événement d’échec d’audit. Les événements d’échec d’audit sont enregistrés dans le journal de sécurité Windows, ce qui indique que l’intégrité du code n’a pas pu vérifier le hachage de l’image du fichier de pilote. Les entrées de journal incluent le nom complet du chemin d’accès du fichier pilote. Les événements d’audit du journal de sécurité sont générés uniquement si la stratégie d’audit de sécurité locale active la journalisation des événements de défaillance du système.

Note Le journal d’audit de sécurité doit être explicitement activé. Pour plus d’informations, consultez Annexe 3 : Activer la journalisation des événements d’intégrité du code et l’audit système.

Pour examiner le journal de sécurité :

  1. Ouvrez une fenêtre de commande avec élévation de privilèges.
  2. Pour démarrer windows observateur d'événements, exécutez Eventvwr.exe. observateur d'événements peut également être démarré à partir de l’application gestion de l’ordinateur Panneau de configuration.
  3. Ouvrez le journal d’audit de sécurité Windows.
  4. Vérifiez dans le journal les événements d’intégrité du système avec un ID d’événement 5038.
  5. Sélectionnez et maintenez enfoncée (ou cliquez avec le bouton droit) l’entrée du journal, puis sélectionnez Propriétés de l’événement pour afficher sa boîte de dialogue Propriétés de l’événement, qui fournit une description détaillée de l’événement.

La capture d’écran ci-dessous montre la boîte de dialogue Propriétés de l’événement pour un événement de journal d’audit de sécurité provoqué par un fichier Toaster.sys non signé.

capture d’écran montrant la boîte de dialogue propriétés de l’événement.

Utilisation du journal des événements opérationnels d’intégrité du code

Si le pilote n’a pas pu se charger parce qu’il n’a pas été signé ou qu’il n’a pas généré d’erreur de vérification d’image, l’intégrité du code enregistre les événements dans le journal des événements opérationnels d’intégrité du code. Les événements opérationnels d’intégrité du code sont toujours activés.

Les événements d’intégrité du code peuvent être consultés avec observateur d'événements.

Pour examiner le journal opérationnel d’intégrité du code

  1. Ouvrez une fenêtre de commande avec élévation de privilèges.
  2. Pour démarrer windows observateur d'événements, exécutez Eventvwr.exe. observateur d'événements peut également être démarré à partir de l’application Gestion de l’ordinateur Panneau de configuration.
  3. Ouvrez le journal d’intégrité du code Windows.
  4. Sélectionnez et maintenez enfoncée (ou cliquez avec le bouton droit) une entrée de journal, puis sélectionnez Propriétés de l’événement pour afficher sa boîte de dialogue Propriétés de l’événement, qui fournit une description détaillée de l’événement.

La capture d’écran ci-dessous montre la boîte de dialogue Propriétés d’événement pour un événement de journal opérationnel d’intégrité du code qui a été provoqué par un fichier Toaster.sys non signé.

capture d’écran montrant l’observateur d’événements.

Utilisation des événements informationnels dans le journal détaillé d’intégrité du code

La vue détaillée du journal d’information d’intégrité du code suit les événements pour toutes les vérifications d’image en mode noyau. Ces événements montrent une vérification d’image réussie de tous les pilotes chargés sur le système.

Pour activer la vue détaillée Intégrité du code :

  1. Démarrez observateur d'événements, comme dans l’exemple précédent.
  2. Saisissez le nœud Intégrité du code pour lui donner le focus.
  3. Sélectionnez et maintenez enfoncée (ou cliquez avec le bouton droit) Intégrité du code, puis sélectionnez l’élément Affichage dans le menu contextuel.
  4. Sélectionnez Afficher les journaux analytiques et de débogage. Cela crée une sous-arborescence avec deux nœuds supplémentaires : Opérationnel et Détaillé.
  5. Sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) sur le nœud détaillé, puis sélectionnez Propriétés dans le menu contextuel.
  6. Sous l’onglet Général, sélectionnez Activer la journalisation pour activer le mode de journalisation détaillé.
  7. Redémarrez le système pour recharger tous les fichiers binaires en mode noyau.
  8. Après le redémarrage, ouvrez le composant logiciel enfichable Gestion de l’ordinateur MMC et affichez le journal des événements détaillé de l’intégrité du code.

Quelques autres problèmes connus de signature de pilote sont décrits dans l’annexe 4 : Problèmes de signature de pilote.