Partager via


Signature d’un pilote pour une mise en production publique

Avant de publier un package de pilotes au public, nous vous recommandons de soumettre le package pour certification. Pour plus d’informations, consultez Certification matérielle Windows et Services de tableau de bord matériel. Pour envoyer 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 approuvée comme VeriSign. Pour plus d’informations, consultez Obtenir un certificat VeriSign. Vous aurez également besoin d’un certificat croisé, fourni par Microsoft.

Supposons que vous avez obtenu une paire de fichiers de Verisign : un fichier de clé privée (PVK) et un certificat de publication logicielle (SPC). Supposons également que vous disposez d’une solution Microsoft Visual Studio qui contient un projet de pilote nommé MyDriver et un projet de package de pilotes nommé Package MyDriver. Pour signer votre package de pilotes, procédez comme suit.

  1. Utilisez l’outil Pvk2Pfx pour créer un certificat PFX (Personal Information Exchange). L’outil Pvk2Pfx prend vos fichiers PVK et SPC en entrée et crée un seul fichier PFX. Pour cet exercice, supposons que votre fichier PFX soit nommé MyCert.pfx.

    Note 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 le certificat croisé dont vous avez besoin, consultez Certificats croisés pour la signature de 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’existe pas, téléchargez le certificat croisé à partir de 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 cliquez avec le bouton droit) sur le projet de package, Package MyDriver, puis choisissez Propriétés.

  4. Dans les pages de propriétés du package, accédez à Propriétés de configuration > Signature > du pilote Général. Dans la liste déroulante Mode de connexion, sélectionnez Signe de production. Pour Certificat de production, effectuez l’une des opérations suivantes :

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

    • Choisissez Sélectionner à partir d’un fichier, puis accédez à votre certificat de signature.

    • Choisissez Sélectionner à partir du magasin et choisissez un certificat que vous avez importé précédemment dans un magasin de certificats.

      Note Pour importer un certificat dans un magasin, sélectionnez et maintenez enfoncé (ou cliquez avec le bouton droit) le fichier de certificat (fichier PFX), puis choisissez Installer PFX. Suivez les instructions de l’Assistant Importation de certificat.

      Note Si vous décidez d’utiliser un autre certificat ultérieurement, assurez-vous que votre nouveau certificat est importé dans le magasin de certificats. Si vous choisissez Sélectionner à partir d’un fichier et accédez à votre nouveau certificat, le nouveau certificat est automatiquement importé dans le magasin de certificats. Toutefois, si vous entrez manuellement le chemin d’accès à votre nouveau certificat, il n’est pas automatiquement importé dans le magasin de certificats. Dans ce cas, vous devez sélectionner et maintenir (ou cliquer avec le bouton droit) votre nouveau fichier de certificat, puis choisir Installer PFX.

  5. Dans la page de propriétés Général de la signature > du pilote , pour TimeStampServer, sélectionnez l’un des serveurs d’horodatage dans la liste déroulante.

    Note L’utilisation de l’un des serveurs d’horodatage dans 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, désactivez le champ TimeStampServer .

  6. Dans les pages de propriétés du package, accédez à 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 cliquez avec le bouton droit) le projet de pilote , MyDriver, puis choisissez Propriétés

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

  10. Lorsque vous êtes prêt à générer votre package de pilotes, appuyez sur F5. Visual Studio signe 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és sur un ordinateur de test. Pour plus d’informations, consultez Provisionner un ordinateur pour le déploiement et le test de pilotes (WDK 8.1).

Affichage des fichiers de package de pilotes

Après avoir créé votre solution, accédez à Explorateur de fichiers jusqu’au dossier qui contient votre package de pilotes. L’un des fichiers du package est un fichier catalogue. Le fichier catalogue contient la signature numérique du package. Pour obtenir un exemple d’affichage des fichiers dans un package signé, consultez Écriture d’un pilote KMDF basé sur un modèle.

Obtention d’une signature de version WHQL

Lorsque votre package de pilotes réussit les tests de certification, il peut être signé par Windows Hardware Quality Labs (WHQL). Si votre package de pilote 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 installer 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 envoyer tout nouveau pilote en mode noyau Windows 10 pour la signature numérique sur le portail Tableau de bord du Centre de développement matériel Windows. Les soumissions de pilotes en mode noyau et utilisateur doivent avoir un certificat de signature de code de validation étendue (EV) valide.

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

Signature d’un package par rapport à la signature d’un fichier de pilote individuel

Un package de pilote contient plusieurs fichiers. En règle générale, un package de pilotes comporte 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, la signature du fichier catalogue est identique à la signature du 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 des fichiers de pilotes individuels. Parfois, toutefois, vous devez signer à la fois le package et les fichiers de pilotes individuels. Par exemple, les fichiers de pilote de démarrage doivent être signés individuellement. La signature d’un fichier de pilote individuel est appelée incorporation d’une signature dans le fichier de pilote.

Supposons que vous disposez d’une solution Visual Studio qui contient un projet de pilote nommé MyDriver et un projet de package de pilotes nommé Package MyDriver. Visual Studio fournit deux ensembles de pages de propriétés : l’un pour Mon pilote et l’autre pour Mon package de pilotes. Pour signer le package de pilotes, définissez les propriétés Signature de pilote de Mon package de pilotes. Pour incorporer une signature dans le fichier de pilote individuel, définissez les propriétés Signature de pilote de My Driver.

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

Note Pour afficher le hachage (également appelé empreinte numérique) d’un certificat, ouvrez une fenêtre d’invite de commandes et accédez au répertoire qui contient votre certificat. Entrez la commande certutil -dumpCertName.pfx, où CertName.pfx est le nom de votre certificat.