Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób podpisywania sterownika przy użyciu podpisywania za pomocą atestacji.
Uwaga / Notatka
Sterowniki atestowane, które są przeznaczone dla odbiorców detalicznych, nie są publikowane w usłudze Windows Update. Obsługa sterowników z podpisem poświadczającym jest kontynuowana podczas testowania scenariuszy z opcjami CoDev lub Test Registry Key / Surface SSRK.
Wymagania wstępne
Zapoznaj się z wymaganiami dotyczącymi zaświadczania podpisanych sterowników na potrzeby scenariuszy testowania.
Zarejestruj się w programie dla deweloperów sprzętu. Jeśli nie jesteś zarejestrowany, wykonaj kroki opisane w Register dla programu Microsoft Windows Hardware Developer Program.
Należy posiadać certyfikat podpisywania kodu typu Extended Validation (EV). Sprawdź, czy organizacja ma już certyfikat podpisywania kodu.
Jeśli masz istniejący certyfikat, udostępnij certyfikat.
Jeśli twoja organizacja nie ma certyfikatu, kup certyfikat EV.
Pobierz i zainstaluj zestaw Windows Assessment and Deployment Kit (Windows ADK), wykonując proces opisany w Pobierz i zainstaluj zestaw Windows ADK.
(Opcjonalnie) Pobierz przykład sterownika Echo używany w tym artykule, który jest dostępny w GitHub.
Tworzenie pliku CAB
Poniższa procedura tworzy zgłoszenie plików CAB przy użyciu przykładowego sterownika Echo w celu zilustrowania kroków.
Typowe przesyłanie pliku CAB musi zawierać następujące składniki:
Sam sterownik (na przykład Echo.sys).
Plik INF sterownika (inf) używany przez panel sterowania w celu ułatwienia procesu podpisywania.
Plik symboli używany do debugowania informacji, takich jak Echo.pdb. Plik
.pdb0 jest wymagany dla Microsoft narzędzi do automatycznego analizowania awarii. Pliki katalogu (cat) są wymagane i używane tylko do weryfikacji firmy. Microsoft ponownie generuje pliki wykazu i zastępuje wszystkie przesłane wcześniej pliki wykazu.
Uwaga / Notatka
Każdy folder sterowników w pliku CAB musi obsługiwać ten sam zestaw architektur. Na przykład muszą obsługiwać x86, x64 lub muszą obsługiwać zarówno x86, jak i x64.
Nie używaj ścieżek udziału plików UNC podczas odwoływania się do lokalizacji sterowników (\server\share). Aby plik CAB był prawidłowy, należy użyć zamapowanej litery dysku.
Aby utworzyć plik CAB, wykonaj następujące kroki:
Zbierz pliki binarne, które mają być podpisane do pojedynczego katalogu. W tym przykładzie użyto
C:\Echofolderu .Otwórz okno wiersza polecenia z uprawnieniami administratora.
Wprowadź polecenie
MakeCab /?, aby wyświetlić opcje polecenia: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).Przygotuj plik wejściowy CAB opisujący urządzenie (DDF). W przypadku sterownika Echo w tym przykładzie dane wejściowe mogą być podobne do następującego kodu:
;*** 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.SysWprowadź następujące polecenie, aby utworzyć plik CAB:
C:\Echo> MakeCab /f "C:\Echo\Echo.ddfDane wyjściowe
MakeCabpolecenia powinny wyświetlać liczbę plików w utworzonym pliku CAB. W takim przypadku powinny istnieć dwa pliki.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/secondZnajdź plik CAB w podkatalogu
Disk1. Możesz wybrać plik CAB w Eksploratorze plików, aby sprawdzić, czy zawiera on oczekiwane pliki.
Podpisywanie pliku CAB przy użyciu certyfikatu EV
Następnym krokiem jest podpisanie pliku CAB przy użyciu certyfikatu EV.
Użyj procesu zalecanego przez dostawcę certyfikatów EV. Aby na przykład podpisać plik CAB przy użyciu znacznika czasu SHA256, wprowadź następujące polecenie:
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"
Ważne
Pamiętaj, aby używać najlepszych rozwiązań branżowych do zarządzania zabezpieczeniami procesu podpisywania kodu EV.
Wyślij podpisany plik CAB EV w Centrum Partnerów
Po podpisaniu pliku CAB możesz przesłać plik w Centrum partnerskim:
Przejdź do pulpitu nawigacyjnego sprzętowego Centrum partnerskiego i zaloguj się przy użyciu swoich poświadczeń.
Wybierz pozycję Prześlij nowy sprzęt.
W sekcji Pakiety i właściwości podpisywania wprowadź nazwę produktu dla przesyłania sterownika. Użyj tej nazwy, aby wyszukać i zorganizować zgłoszenia sterowników.
Uwaga / Notatka
Nazwa jest widoczna, kiedy udostępniasz swojego kierowcę innej firmie.
Pozostaw niezaznaczone obie opcje podpisywania testowego (nie zaznaczono).
Dla opcji Żądane podpisy wybierz podpisy, które mają być uwzględnione w pakiecie sterowników:
Wybierz pozycję Prześlij w dolnej części strony.
Po zakończeniu procesu podpisywania pobierz podpisany sterownik z pulpitu nawigacyjnego sprzętu.
Sprawdź, czy sterownik jest prawidłowo podpisany
Upewnij się, że sterownik jest poprawnie podpisany, wykonując następujące kroki:
Po pobraniu pliku zgłoszenia wyodrębnij plik sterownika.
Otwórz okno wiersza polecenia z uprawnieniami administratora.
Wprowadź następujące polecenie, aby sprawdzić, czy sterownik jest podpisany zgodnie z oczekiwaniami:
C:\Echo> SignTool verify Echo.SysAby wyświetlić listę innych informacji i zweryfikować za pomocą narzędzia SignTool wszystkie podpisy w pliku z wieloma podpisami, wprowadź następujące polecenie:
C:\Echo> SignTool verify /pa /ph /v /d Echo.SysAby potwierdzić ulepszone użycie kluczy (EKU) sterownika, wykonaj następujące kroki:
Otwórz eksploratora Windows i znajdź plik binarny. Kliknij plik prawym przyciskiem myszy i wybierz pozycję Właściwości.
Na karcie Podpisy cyfrowe wybierz element na liście podpisów.
Wybierz pozycję Szczegóły, a następnie wybierz pozycję Wyświetl certyfikat.
Na karcie Szczegóły wybierz pozycję Ulepszone użycie klucza.
Sterownik korzysta z następującego procesu, gdy rezygnuje ze sterownika:
Dołącz osadzoną sygnaturę SHA-2 firmy Microsoft.
Jeśli pliki binarne sterownika zostały podpisane przez klienta przy użyciu własnych certyfikatów, nadpisz te podpisy.
Utwórz i podpisz nowy plik wykazu przy użyciu certyfikatu SHA-2 Microsoft. Wykaz zastępuje dowolny istniejący wykaz dostarczony przez klienta.
Testowanie sterownika na Windows
Zainstaluj przykładowy sterownik i przetestuj go na Windows:
Otwórz okno wiersza polecenia z uprawnieniami administratora.
Przejdź do folderu pakietu sterowników i wprowadź następujące polecenie.
C:\Echo> devcon install echo.inf root\ECHOUpewnij się, że proces instalacji sterownika nie wyświetla następującego komunikatu o błędzie: "Windows nie może zweryfikować wydawcy tego oprogramowania sterowników".
Utwórz zgłoszenie z wieloma sterownikami
Prześlij wiele sterowników jednocześnie, wykonując następujące kroki:
Utwórz podkatalog dla każdego sterownika.
Przygotuj plik DDF wejściowy dla pliku CAB, który odwołuje się do podkatalogów. W tym przykładzie dane wejściowe mogą być podobne do następującego kodu:
;*** 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