Attestation de signature des pilotes Windows
Cet article décrit comment signer un pilote à l'aide de la signature d'attestation. Pour obtenir des informations détaillées et connaître les exigences relatives à la signature d'attestation, consultez les pilotes Windows 10 signés par attestation.
Important
À compter du 1er mars 2023, les pilotes signés par attestation ciblant le public de détail ne sont plus publiés sur Windows Update. Les pilotes signés par attestation pour les scénarios de test sont toujours pris en charge lorsque vous sélectionnez les options CoDev ou Test Registry Key / Surface SSRK.
Prérequis
Lisez et comprenez les exigences relatives aux pilotes signés par attestation pour Windows 10.
Inscrivez-vous au programme Hardware Developer. Si vous n'êtes pas encore inscrit, suivez les étapes de la section Comment s'inscrire au programme Microsoft Windows Hardware Developer.
Vous devez disposer d’un certificat de signature de code de validation étendue (EV). Vérifiez si votre organisation dispose déjà d’un certificat de signature de code. Si votre entreprise dispose déjà d’un certificat, tenez-le à disposition. Si votre organisation ne dispose pas d'une certification, vous devez acheter un certificat EV.
Suivez le processus décrit dans la section Téléchargement de kits et d'outils pour Windows 10 pour télécharger et installer le kit de pilotes Windows (WDK).
(Facultatif) Téléchargez l'exemple de pilote echo utilisé dans cet article.
Créer le fichier CAB
Dans cette section, nous suivons le processus de création d'une soumission de fichiers CAB. Nous utilisons l'exemple de pilote echo pour illustrer le processus.
Une soumission de fichier CAB typique doit contenir
Le pilote lui-même, par exemple Echo.sys
Le fichier INF du pilote qui est utilisé par le tableau de bord pour faciliter le processus de signature.
Le fichier de symboles utilisé pour les informations de débogage. Par exemple, Echo.pdb. Le fichier .pdb est nécessaire pour les outils d'analyse automatique des plantages de Microsoft.
Les fichiers de catalogue .CAT sont nécessaires et utilisés uniquement pour la vérification de l'entreprise. Microsoft régénère les fichiers de catalogue et remplace tous les fichiers de catalogue qui ont été soumis.
Remarque
Chaque dossier de pilote de votre fichier CAB doit prendre en charge le même ensemble d'architectures. Par exemple, ils doivent prendre en charge x86, x64, ou ils doivent tous prendre en charge à la fois x86 et x64.
N'utilisez pas de chemins de partage de fichiers UNC lorsque vous faites référence à l'emplacement de vos pilotes (\\\server\share
). Vous devez utiliser une lettre de lecteur mappée pour que le CAB soit valide.
Pour créer le fichier CAB :
Rassemblez les fichiers binaires à signer dans un seul répertoire. Dans cet exemple, nous utilisons
C:\\Echo
.Ouvrez une fenêtre d’invite de commande en tant qu’Administrateur.
Saisissez
MakeCab /?
pour afficher les options MakeCab :C:\Echo> MakeCab /? Cabinet Maker - Lossless Data Compression Tool MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination] MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...] source File to compress. destination File name to give compressed file. If omitted, the last character of the source file name is replaced with an underscore (_) and used as the destination. /F directives A file with MakeCAB directives (may be repeated). Refer to Microsoft Cabinet SDK for information on directive_file. /D var=value Defines variable with specified value. /L dir Location to place destination (default is current directory). /V[n] Verbosity level (1..3).
Préparez un fichier d'entrée DDF pour le fichier CAB. Pour notre pilote Echo, il pourrait ressembler à ceci :
;*** Echo.ddf example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ; Specify the subdirectory for the files. ; Your cab file should not have files at the root level, ; and each driver package must be in a separate subfolder. .Set DestinationDir=Echo ;Specify files to be included in cab file C:\Echo\Echo.Inf C:\Echo\Echo.Sys
Entrez la commande suivante pour créer le fichier CAB.
C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
La sortie de MakeCab doit afficher le nombre de fichiers dans le fichier CAB créé. Dans ce cas, il devrait y avoir deux fichiers.
C:\Echo> MakeCab /f Echo.ddf Cabinet Maker - Lossless Data Compression Tool 17,682 bytes in 2 files Total files: 2 Bytes before: 17,682 Bytes after: 7,374 After/Before: 41.70% compression Time: 0.20 seconds ( 0 hr 0 min 0.20 sec) Throughput: 86.77 Kb/second
Localisez le fichier CAB dans le sous-répertoire
Disk1
. Vous pouvez sélectionner le fichier CAB dans l'Explorateur de fichiers pour vérifier qu'il contient les fichiers attendus.
Signez le fichier CAB avec votre certification EV
Pour signer le fichier CAB avec votre certificat EV, utilisez la procédure recommandée par le fournisseur du certificat EV. Par exemple, pour signer votre fichier CAB avec un certificat SHA256/algorithme de chiffrement/horodatage, entrez la commande suivante :
C:\Echo> SignTool sign /s MY /n "Company Name" /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td sha256 /v "C:\Echo\Disk1\Echo.cab"
Important
N'oubliez pas d'utiliser les meilleures pratiques du secteur pour gérer la sécurité du processus de signature de code EV.
Soumettez le fichier CAB signé EV à l'aide du Centre des partenaires.
Accédez au tableau de bord matériel du Partner Center et connectez-vous avec vos identifiants.
Sélectionnez Soumettre un nouveau matériel.
Dans la section Packages et propriétés de signature, saisissez un nom de produit pour votre soumission de pilote. Ce nom peut être utilisé pour rechercher et organiser vos soumissions de pilotes.
Remarque
Si vous partagez votre pilote avec une autre entreprise, celle-ci verra ce nom.
Ne cochez pas les deux options de signature de test.
Dans l'option Signatures requises, sélectionnez les signatures que vous souhaitez inclure dans votre package de pilotes.
Descendez dans la page et sélectionnez Soumettre.
Lorsque le processus de signature est terminé, téléchargez votre pilote signé à partir du tableau de bord du matériel.
Vérifier que le pilote a été correctement signé
Effectuez les étapes suivantes pour vous assurer que le pilote a été correctement signé.
Après avoir téléchargé le fichier de soumission, extrayez le fichier du pilote.
Ouvrez une fenêtre d’invite de commande en tant qu’Administrateur.
Saisissez la commande suivante pour vérifier que le pilote a été signé comme prévu.
C:\Echo> SignTool verify Echo.Sys
Pour répertorier des informations supplémentaires et demander à SignTool de vérifier toutes les signatures d'un fichier comportant plusieurs signatures, entrez la commande suivante :
C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
Pour confirmer les EKU du pilote, procédez comme suit.
Ouvrez l'Explorateur Windows et localisez le fichier binaire. Sélectionnez et maintenez (ou cliquez avec le bouton droit de la souris) le fichier et sélectionnez Propriétés.
Dans l'onglet Signatures numériques, sélectionnez l'élément répertorié dans la liste Signature.
Sélectionnez Détails, puis Afficher le certificat.
Dans l'onglet Détails, sélectionnez Utilisation améliorée de la clé.
Lorsque le pilote est résigné par le tableau de bord, le processus suivant est utilisé :
- Ajout d'une signature intégrée Microsoft SHA2.
- Si les binaires du pilote sont intégrés et signés par le client avec leurs propres certificats, ces signatures ne sont pas écrasées.
- Crée et signe un nouveau fichier de catalogue avec un certificat Microsoft SHA2. Ce catalogue remplace tout catalogue existant fourni par le client.
Testez votre pilote sous Windows
Suivez les instructions ci-dessous pour installer l'exemple de pilote.
Ouvrez une fenêtre d’invite de commande en tant qu’Administrateur. Accédez au dossier du package de votre pilote et entrez la commande suivante.
C:\Echo> devcon install echo.inf root\ECHO
Confirmez que le processus d'installation du pilote n'affiche pas la boîte de dialogue « Windows ne peut pas vérifier l'éditeur de ce logiciel pilote ». Boîte de dialogue de sécurité Windows.
Créer une soumission avec plusieurs pilotes
Pour soumettre plusieurs pilotes en même temps :
Créez un sous-répertoire pour chaque pilote.
Préparez un fichier CAB et un fichier d'entrée DDF qui font référence aux sous-répertoires. Voici à quoi cela doit ressembler :
;*** Submission.ddf multiple driver example ; .OPTION EXPLICIT ; Generate errors .Set CabinetFileCountThreshold=0 .Set FolderFileCountThreshold=0 .Set FolderSizeThreshold=0 .Set MaxCabinetSize=0 .Set MaxDiskFileCount=0 .Set MaxDiskSize=0 .Set CompressionType=MSZIP .Set Cabinet=on .Set Compress=on ;Specify file name for new cab file .Set CabinetNameTemplate=Echo.cab ;Specify files to be included in cab file ; First Driver .Set DestinationDir=DriverPackage1 C:\DriverFiles\DriverPackage1\Driver1.sys C:\DriverFiles\DriverPackage1\Driver1.inf ; Second driver .Set DestinationDir=DriverPackage2 C:\DriverFiles\DriverPackage2\Driver2.sys C:\DriverFiles\DriverPackage2\Driver2.inf