Partager via


Signer un pilote pour sa diffusion publique

Avant de publier un package de pilotes au public, nous vous recommandons de soumettre le package pour certification. Pour plus d’informations, veuillez consulter la section Certification matérielle Windows et [Services du tableau de bord matériel](../dashboard/index.md). Pour soumettre un package de pilotes pour la certification, vous devez signer le package avec un certificat que vous obtenez auprès d’une autorité de certification de confiance telle que VeriSign. Pour plus d’informations, veuillez consulter la section Obtenir un certificat VeriSign. Vous aurez également besoin d’un certificat croisé, fourni par Microsoft.

Supposons que vous ayez obtenu une paire de fichiers de Verisign : un fichier de clé privée (PVK) et un certificat de publication de logiciels (SPC). Supposons également que vous disposiez d’une solution Microsoft Visual Studio contenant un projet de pilote nommé MyDriver et un projet de package de pilotes nommé MyDriver Package. Pour signer votre package de pilotes, suivez ces étapes.

  1. Utilisez l’outil Pvk2Pfx pour créer un certificat d’échange de données personnelles (PFX). L’outil Pvk2Pfx prend vos fichiers PVK et SPC en entrée et crée un seul fichier PFX. Dans cet exercice, supposons que votre fichier PFX soit nommé MyCert.pfx.

    Remarque : Une fois que vous avez créé votre fichier PFX, vous pouvez le réutiliser pour d’autres projets de pilotes et sur d’autres ordinateurs de développement de pilotes.

  2. Pour déterminer quel certificat croisé vous devez utiliser, consultez la section Certificats croisés pour la signature du code en mode noyau. Vérifiez que le certificat croisé requis se trouve dans $(BASEDIR)\CrossCertificates, où $(BASEDIR) est le répertoire de base des kits Windows (par exemple c:\Program Files (x86)\Windows Kits\8.0\CrossCertificates). Si le certificat croisé requis n’est pas présent, téléchargez-le depuis Microsoft et copiez-le dans $(BASEDIR)\CrossCertificates.

  3. Dans Visual Studio, ouvrez la solution qui contient les projets MyDriver et MyDriver Package. Si la fenêtre Explorateur de solutions n’est pas déjà ouverte, choisissez Explorateur de solutions dans le menu Affichage. Dans la fenêtre Explorateur de solutions, sélectionnez et maintenez enfoncé (ou faites un clic droit) sur le projet de package, MyDriver Package, et choisissez Propriétés.

  4. Dans les pages de propriétés du package, naviguez jusqu’à Propriétés de configuration > Signature du pilote > Général. Dans la liste déroulante Mode de signature, sélectionnez Signature de production. Pour Certificat de production, faites l’une des actions suivantes :

    • Saisissez le chemin d’accès à votre certificat de signature (par exemple c:\Certs\MyCert.pfx).

    • Choisissez Sélectionner depuis le fichier, et parcourez jusqu’à votre certificat de signature.

    • Choisissez Sélectionner depuis le magasin et sélectionnez un certificat que vous avez précédemment importé dans un magasin de certificats.

      Remarque : Pour importer un certificat dans un magasin, sélectionnez et maintenez enfoncé (ou faites un clic droit) sur le fichier du certificat (fichier PFX), et choisissez Installer le PFX. Suivez les instructions de l’Assistant d’importation de certificat.

      Remarque : Si vous décidez d’utiliser un autre certificat ultérieurement, assurez-vous que votre nouveau certificat soit bien importé dans le magasin de certificats. Si vous choisissez Sélectionner depuis le fichier et parcourez jusqu’à votre nouveau certificat, celui-ci sera automatiquement importé dans le magasin de certificats. Cependant, si vous saisissez manuellement le chemin d’accès à votre nouveau certificat, il ne sera pas automatiquement importé dans le magasin de certificats. Dans ce cas, vous devez sélectionner et maintenir enfoncé (ou faire un clic droit) sur votre nouveau fichier de certificat et choisir Installer le PFX.

  5. Sur la page de propriétés Signature de pilotes > Général, pour Serveur d’horodatage, sélectionnez l’un des serveurs d’horodatage dans la liste déroulante.

    Remarque : L’utilisation de l’un des serveurs d’horodatage de la liste déroulante nécessite que vous soyez connecté à Internet lorsque vous créez votre package de pilotes. Si vous devez être déconnecté d’Internet lorsque vous créez votre package de pilotes, effacez le champ Serveur d’horodatage.

  6. Dans les pages de propriétés du package, naviguez jusqu’à Propriétés de configuration > Inf2Cat > Général. Dans la liste déroulante Exécuter Inf2Cat, sélectionnez Oui.

  7. Fermez les pages de propriétés du package.

  8. Sélectionnez et maintenez enfoncé (ou faites un clic droit) sur le projet de pilote, MyDriver, et choisissez Propriétés.

  9. Dans les pages de propriétés du pilote, accédez à Propriétés de configuration > Signature de pilotes > Général. Définissez Serveur d’horodatage sur la même valeur que celle utilisée dans les propriétés du package de pilotes. Définissez Mode de signature sur Signature de production, et définissez Certificat de production sur la même valeur que celle utilisée dans les propriétés du package de pilotes.

  10. Lorsque vous êtes prêt à créer votre package de pilotes, appuyez sur F5. Visual Studio signera automatiquement votre package et votre fichier de pilote. Si vous avez configuré le déploiement, Visual Studio déploiera également votre package de pilotes signé sur un ordinateur de test. Pour plus d’informations, veuillez consulter la section Approvisionner un ordinateur pour le déploiement et les tests de pilotes (WDK 8.1).

Affichage des fichiers du package de pilotes

Après avoir construit votre solution, naviguez dans l’Explorateur de fichiers jusqu’au dossier contenant votre package de pilotes. Un des fichiers du package est un fichier catalogue. Le fichier catalogue contient la signature numérique pour le package. Pour un exemple de visualisation des fichiers dans un package signé, veuillez consulter la section Rédaction d’un pilote KMDF basé sur un modèle.

Obtention d’une signature WHQL

Lorsque votre package de pilotes réussit les tests de certification, il peut être signé par les Windows Hardware Quality Labs (WHQL). Si votre package de pilotes est signé par WHQL, il peut être distribué via le programme Windows Update ou d’autres mécanismes de distribution pris en charge par Microsoft.

Pour l’installation sur Windows 10, 8.1, 8 et 7, votre package de pilotes peut avoir une seule signature SHA1.

À partir de Windows 10, vous devez également soumettre tout nouveau pilote en mode noyau pour Windows 10 pour une signature numérique sur le portail du tableau de bord des développeurs matériels Windows. Les soumissions de pilotes en mode noyau et en mode utilisateur doivent toutes deux avoir un certificat de signature de code à validation étendue (« EV ») valide.

** Remarque ** La dépréciation de SHA1 ne s’applique pas aux pilotes.

Signature d’un package comparée à la signature d’un fichier pilote individuel

Un package de pilotes contient plusieurs fichiers. En général, un package de pilotes comprend un ou plusieurs fichiers de pilotes, un fichier d’informations (fichier INF), et un fichier catalogue. Le fichier catalogue contient des informations sur les autres fichiers du package. Lorsque vous signez le fichier catalogue, la signature dans le fichier catalogue sert de signature pour l’ensemble du package de pilotes. En d’autres termes, signer le fichier catalogue revient à signer le package de pilotes.

Dans la plupart des cas, il suffit de signer le package de pilotes, et il n’est pas nécessaire de signer les fichiers de pilotes individuels. Cependant, parfois, vous devez signer à la fois le package et les fichiers de pilotes individuels. Par exemple, les fichiers de pilotes de démarrage doivent être signés individuellement. Signer un fichier de pilote individuel est appelé intégrer une signature dans le fichier pilote.

Supposons que vous disposiez d’une solution Visual Studio contenant un projet de pilote nommé MyDriver et un projet de package de pilotes nommé MyDriver Package. Visual Studio fournit deux ensembles de pages de propriétés : une pour My Driver et une pour My Driver Package. Pour signer le package de pilotes, définissez les propriétés Signature de pilotes de My Driver Package. Pour intégrer une signature dans le fichier pilote individuel, définissez les propriétés Signature de pilotes de My Driver.

Lorsque vous définissez les propriétés du package de pilotes pour la signature de production, n’oubliez pas de régler en conséquence les propriétés de signature des fichiers pilotes individuels. Désactivez la signature des fichiers pilotes individuels ou configurez les fichiers pilotes individuels pour utiliser le même certificat que celui spécifié pour le package.

Remarque : Pour voir le hachage (également appelé empreinte digitale) d’un certificat, ouvrez une fenêtre d’invite de commandes et accédez au répertoire contenant votre certificat. Saisissez la commande certutil -dump CertName.pfx, où CertName.pfx est le nom de votre certificat.