Freigeben über


Nachweiszeichen Windows Treiber

In diesem Artikel wird erläutert, wie Sie einen Treiber mithilfe der Nachweissignatur signieren.

Hinweis

Attestationssignierte Treiber, die für Endverbraucher bestimmt sind, werden nicht auf Windows Update veröffentlicht. Die Unterstützung für nachweissignierte Treiber wird fortgesetzt, wenn Sie Szenarien mit den Optionen CoDev oder Test Registry Key /Surface SSRK testen.

Voraussetzungen

Erstellen der CAB-Datei

Im folgenden Verfahren wird eine CAB-Dateiübermittlung mithilfe des Beispiels Echo-Treiber erstellt, um die Schritte zu veranschaulichen.

Eine typische CAB-Dateiübermittlung muss die folgenden Komponenten enthalten:

  • Der Treiber selbst (z. B. Echo.sys).

  • Die vom Dashboard verwendete Treiber-INF-Datei (INF), um den Signiervorgang zu vereinfachen.

  • Die Symboldatei, die zum Debuggen von Informationen verwendet wird, z. B. Echo.pdb. Die Datei .pdb ist für Microsoft automatisierte Absturzanalysetools erforderlich.

  • Katalogdateien (CAT) sind erforderlich und werden nur für die Überprüfung des Unternehmens verwendet. Microsoft erstellt Katalogdateien neu und ersetzt alle zuvor übermittelten Katalogdateien.

Hinweis

Jeder Treiberordner in Ihrer CAB-Datei muss denselben Satz von Architekturen unterstützen. Sie müssen z. B. x86, x64 oder alle x86 und x64 unterstützen.

Verwenden Sie keine UNC-Dateifreigabepfade, wenn Sie auf Ihre Treiberspeicherorte verweisen (\server\share). Sie müssen einen zugeordneten Laufwerkbuchstaben verwenden, damit die CAB-Datei gültig ist.

Führen Sie die folgenden Schritte aus, um die CAB-Datei zu erstellen:

  1. Sammeln Sie die Binärdateien, die bei einem einzelnen Verzeichnis angemeldet werden sollen. In diesem Beispiel wird der C:\Echo Ordner verwendet.

  2. Öffnen Sie ein Eingabeaufforderungsfenster mit Administratorrechten.

  3. Geben Sie den MakeCab /? Befehl ein, um die Befehlsoptionen anzuzeigen:

    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).
    
  4. Bereiten Sie eine CAB-Datei für das Gerätebeschreibungs-Framework (DDF) vor. Für den Echo-Treiber in diesem Beispiel kann die Eingabe dem folgenden Code ähneln:

    ;*** 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
    
  5. Geben Sie den folgenden Befehl ein, um die CAB-Datei zu erstellen:

    C:\Echo> MakeCab /f "C:\Echo\Echo.ddf
    

    Die Ausgabe des MakeCab Befehls sollte die Anzahl der Dateien in der erstellten CAB-Datei anzeigen. In diesem Fall sollte es zwei Dateien geben.

    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
    
  6. Suchen Sie die CAB-Datei im Disk1 Unterverzeichnis. Sie können die CAB-Datei im Datei-Explorer auswählen, um zu überprüfen, ob sie die erwarteten Dateien enthält.

Signieren der CAB-Datei mit Ihrem EV-Zertifikat

Der nächste Schritt besteht darin, die CAB-Datei mit Ihrem EV-Zertifikat zu signieren.

Verwenden Sie den von Ihrem EV-Zertifikatanbieter empfohlenen Prozess. Wenn Sie ihre CAB-Datei beispielsweise mit einem SHA256-Zeitstempel signieren möchten, geben Sie den folgenden Befehl ein:

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"

Von Bedeutung

Denken Sie daran, die bewährten Methoden der Branche zu verwenden, um die Sicherheit des EV-Codesignaturprozesses zu verwalten.

Reichen Sie die vom EV signierte CAB-Datei im Partner Center ein.

Nachdem Sie die CAB-Datei signiert haben, können Sie die Datei im Partner Center übermitteln:

  1. Wechseln Sie zum Partner Center-Hardwaredashboard, und melden Sie sich mit Ihren Anmeldeinformationen an.

  2. Wählen Sie "Neue Hardware übermitteln" aus.

    Screenshot der Liste der Hardwareeinreichungen.

  3. Geben Sie im Abschnitt "Pakete und Signatureigenschaften" dazu einen Produktnamen für die Treiber-Einreichung ein. Verwenden Sie diesen Namen, um Ihre Treiber-Einreichungen zu finden und zu verwalten.

    Hinweis

    Der Name ist sichtbar, wenn Sie Ihr Profil mit einem anderen Unternehmen teilen.

  4. Lassen Sie beide Testsignaturoptionen deaktiviert (nicht ausgewählt).

  5. Wählen Sie für die Option "Angeforderte Signaturen" die Signaturen aus, die in Ihr Treiberpaket eingeschlossen werden sollen:

    Screenshot, der die Optionen zum Übermitteln des Echo-Treibers zum Signieren zeigt.

  6. Wählen Sie unten auf der Seite "Absenden" aus.

  7. Nachdem der Signiervorgang abgeschlossen ist, laden Sie Ihren signierten Treiber aus dem Hardwaredashboard herunter.

Überprüfen, ob der Softwaretreiber ordnungsgemäß signiert ist

Vergewissern Sie sich, dass Ihr Treiber mit den folgenden Schritten ordnungsgemäß signiert ist:

  1. Nachdem Sie die Übermittlungsdatei heruntergeladen haben, extrahieren Sie die Treiberdatei.

  2. Öffnen Sie ein Eingabeaufforderungsfenster mit Administratorrechten.

  3. Geben Sie den folgenden Befehl ein, um zu überprüfen, ob der Treiber erwartungsgemäß signiert ist:

    C:\Echo> SignTool verify Echo.Sys
    
  4. Wenn Sie andere Informationen auflisten und SignTool alle Signaturen in einer Datei mit mehreren Signaturen überprüfen möchten, geben Sie den folgenden Befehl ein:

     C:\Echo> SignTool verify /pa /ph /v /d Echo.Sys
    
  5. Führen Sie die folgenden Schritte aus, um die erweiterten Schlüsselverwendungen (Enhanced Key Usages, EKUs) des Treibers zu bestätigen:

    1. Öffnen Sie Windows Explorer, und suchen Sie die Binärdatei. Klicken Sie mit der rechten Maustaste auf die Datei, und wählen Sie Eigenschaften aus.

    2. Wählen Sie auf der Registerkarte "Digitale Signaturen " das aufgelistete Element in der Signaturliste aus.

    3. Wählen Sie "Details" und dann " Zertifikat anzeigen" aus.

    4. Wählen Sie auf der Registerkarte "Details " die Option "Erweiterte Schlüsselverwendung" aus.

Der Treiber verwendet den folgenden Prozess, wenn er den Treiber deaktiviert:

  1. Fügen Sie eine eingebettete MICROSOFT SHA-2-Signatur an.

  2. Wenn die Treiberbinärdateien vom Kunden mit eigenen Zertifikaten signiert sind, überschreiben Sie die Signaturen.

  3. Erstellen und Signieren einer neuen Katalogdatei mit einem SHA-2-Microsoft-Zertifikat. Der Katalog ersetzt jeden vorhandenen Katalog, der vom Kunden bereitgestellt wird.

Testen Sie Ihren Treiber unter Windows

Installieren Sie den Beispieltreiber, und testen Sie ihn auf Windows:

  1. Öffnen Sie ein Eingabeaufforderungsfenster mit Administratorrechten.

  2. Wechseln Sie zu Ihrem Treiberpaketordner, und geben Sie den folgenden Befehl ein.

    C:\Echo> devcon install echo.inf root\ECHO
    
  3. Vergewissern Sie sich, dass der Treiberinstallationsprozess die folgende Fehlermeldung nicht anzeigt: "Windows kann den Herausgeber dieser Treibersoftware nicht überprüfen."

Erstellen Sie eine Einreichung mit mehreren Treibern

Mehrere Treiber gleichzeitig übermitteln, indem Sie die folgenden Schritte ausführen:

  1. Erstellen Sie ein Unterverzeichnis für jeden Treiber.

    Diagramm, das eine Beispiel-Treibersignaturverzeichnisstruktur zeigt.

  2. Bereiten Sie eine CAB-Datei-DDF-Eingabedatei vor, die auf die Unterverzeichnisse verweist. In diesem Beispiel ähnelt die Eingabe möglicherweise dem folgenden Code:

    ;*** 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