Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln beskrivs hur du signerar en drivrutin med intygsbaserad signering.
Anmärkning
Signerade drivrutiner avsedda för konsumenter publiceras inte på Windows Update. Stödet fortsätter för attesteringssignerade drivrutiner när du testar scenarier med CoDev eller Test Registry Key/Surface SSRK alternativ.
Förutsättningar
Läs och förstå kraven för attestering av signerade drivrutiner för testscenarier.
Registrera dig för Programmet för maskinvaruutvecklare. Om du inte är registrerad följer du stegen i Register för Microsoft Windows Hardware Developer Program.
Du måste ha ett certifikat för utökad validering (EV) för kodsignering. Kontrollera om din organisation redan har ett kodsigneringscertifikat.
Om du har ett befintligt certifikat gör du certifikatet tillgängligt.
Om din organisation inte har något certifikat köper du ett EV-certifikat.
Ladda ned och installera Windows Assessment and Deployment Kit (Windows ADK) genom att följa processen som beskrivs i Ladda ned och installera Windows ADK.
(Valfritt) Ladda ned Echo-drivrutinsexemplet som används i den här artikeln, som finns på GitHub.
Skapa CAB-filen
Följande procedur skapar en CAB-filöverföring med hjälp av drivrutinsexemplet Echo för att illustrera stegen.
En typisk CAB-filöverföring måste innehålla följande komponenter:
Själva drivrutinen (till exempel Echo.sys).
Inf-drivrutinsfilen (.inf) som används av instrumentpanelen för att underlätta signeringsprocessen.
Symbolfilen som används för felsökning av information, till exempel Echo.pdb. Filen .pdb krävs för Microsoft automatiserade verktyg för kraschanalys.
Katalogfiler (.cat) krävs och används endast för företagsverifiering. Microsoft återskapar katalogfiler och ersätter alla katalogfiler som skickats tidigare.
Anmärkning
Varje drivrutinsmapp i CAB-filen måste ha stöd för samma uppsättning arkitekturer. De måste till exempel ha stöd för x86, x64 eller så måste alla ha stöd för både x86 och x64.
Använd inte UNC-filresurssökvägar när du refererar till dina drivrutinsplatser (\server\share). Du måste använda en mappad enhetsbeteckning för att CAB-filen ska vara giltig.
Följ dessa steg för att skapa CAB-filen:
Samla in binärfilerna som ska loggas in i en enda katalog. I det här exemplet används
C:\Echo-mappen.Öppna ett kommandotolksfönster med administratörsbehörighet.
MakeCab /?Ange kommandot för att se kommandoalternativen: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).Förbered en indatafil för CAB-filenhetens beskrivningsramverk (DDF). För Echo-drivrutinen i det här exemplet kan indata likna följande kod:
;*** 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.SysAnge följande kommando för att skapa CAB-filen:
C:\Echo> MakeCab /f "C:\Echo\Echo.ddfKommandots
MakeCabutdata bör visa antalet filer i den skapade CAB-filen. I det här fallet bör det finnas två filer.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/secondLeta upp CAB-filen i underkatalogen
Disk1. Du kan välja CAB-filen i Utforskaren för att kontrollera att den innehåller de förväntade filerna.
Signera CAB-filen med ditt EV-certifikat
Nästa steg är att signera CAB-filen med ditt EV-certifikat.
Använd den process som rekommenderas av ev-certifikatprovidern. Om du till exempel vill signera CAB-filen med en SHA256-tidsstämpel anger du följande kommando:
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"
Viktigt!
Kom ihåg att använda branschtips för att hantera säkerheten för EV-kodsigneringsprocessen.
Skicka den EV-signerade CAB-filen i Partnercenter
När du har signerat CAB-filen är du redo att skicka filen i Partnercenter:
Gå till instrumentpanelen för Partnercenter-maskinvara och logga in med dina autentiseringsuppgifter.
Välj Skicka ny maskinvara.
I avsnittet Paket och signeringsegenskaper anger du ett produktnamn för din drivrutinsinlämning. Använd det här namnet för att söka efter och organisera dina drivrutinsinsändningar.
Anmärkning
Namnet visas när du delar föraren med ett annat företag.
Lämna båda testsigneringsalternativen avmarkerade (ej valda).
För alternativet Begärda signaturer väljer du de signaturer som ska ingå i drivrutinspaketet:
Välj Skicka längst ned på sidan.
När signeringsprocessen är klar laddar du ned den signerade drivrutinen från maskinvaruinstrumentpanelen.
Verifiera att drivrutinen är korrekt signerad
Bekräfta att din drivrutin är korrekt signerad enligt följande steg:
När du har hämtat insändningsfilen extraherar du drivrutinsfilen.
Öppna ett kommandotolksfönster med administratörsbehörighet.
Ange följande kommando för att kontrollera att drivrutinen är signerad som förväntat:
C:\Echo> SignTool verify Echo.SysOm du vill visa en lista med annan information och låta SignTool verifiera alla signaturer i en fil med flera signaturer anger du följande kommando:
C:\Echo> SignTool verify /pa /ph /v /d Echo.SysUtför följande steg för att bekräfta drivrutinens utökade nyckelanvändningar (EKU:er):
Öppna Windows Explorer och leta upp den binära filen. Högerklicka på filen och välj Egenskaper.
På fliken Digitala signaturer väljer du det angivna objektet i signaturlistan.
Välj Information och välj sedan Visa certifikat.
På fliken Information väljer du Förbättrad nyckelanvändning.
Drivrutinen använder följande process när drivrutinen avgår:
Lägg till en inbäddad Microsoft SHA-2-signatur.
Om drivrutinsbinärfilerna är signerade och inbäddade av kunden med sina egna certifikat, skrivs signaturerna över.
Skapa och signera en ny katalogfil med ett SHA-2-Microsoft certifikat. Katalogen ersätter alla befintliga kataloger som tillhandahålls av kunden.
Testa drivrutinen på Windows
Installera exempeldrivrutinen och testa den på Windows:
Öppna ett kommandotolksfönster med administratörsbehörighet.
Gå till mappen för drivrutinspaketet och ange följande kommando.
C:\Echo> devcon install echo.inf root\ECHOBekräfta att drivrutinsinstallationsprocessen inte visar följande felmeddelande: "Windows kan inte verifiera utgivaren av drivrutinsprogramvaran."
Skapa en sändning med flera drivrutiner
Skicka flera drivrutiner samtidigt genom att följa dessa steg:
Skapa en underkatalog för varje drivrutin.
Förbered en CAB-fil DDF-indatafil som refererar till underkatalogerna. I det här exemplet kan indata likna följande kod:
;*** 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