Release-Signing einer Treiberbinärdatei über eine eingebettete Signatur
Eine signierte Katalogdatei ist alles, was Sie benötigen, um die meisten Treiberpakete ordnungsgemäß zu installieren und zu laden. Für einige Szenarien kann jedoch auch die eingebettete Signatur einiger Binärdateien im Treiberpaket erforderlich sein. Eingebettete Signatur bezieht sich auf das Hinzufügen einer digitalen Signatur zur Binären Imagedatei des Treibers selbst, anstatt sich auf die digitale Signatur in einer Katalogdatei zu verlassen. Daher wird das Binärimage des Treibers geändert, wenn der Treiber eingebettet und signiert ist.
Die eingebettete Signatur von Binärdateien im Kernelmodus (z. B. Treiber und zugehörige .dll Dateien) ist immer erforderlich:
Die Treiberbinärdatei ist ein Starttreiber. In 64-Bit-Versionen von Windows Vista und höheren Versionen von Windows geben die Anforderungen für die Codesignatur im Kernelmodus an, dass ein Start-Start-Treiber eine eingebettete Signatur aufweisen muss. Dies ist unabhängig davon erforderlich, ob das Treiberpaket des Treibers über eine digital signierte Katalogdatei verfügt.
Die Treiberbinärdatei wird über eine Methode installiert, die kein Treiberpaket und eine Katalogdatei umfasst.
Wie bei Katalogdateien wird das SignTool-Tool verwendet, um mithilfe eines Testzertifikats eine digitale Signatur in Binärdateien im Kernelmodus einzubetten. Die folgende Befehlszeile zeigt, wie SignTool ausgeführt wird, um die folgenden Schritte auszuführen:
Testen Sie die 64-Bit-Version der Binärdatei des Toastpkg-Beispiels, toaster.sys. Im WDK-Installationsverzeichnis befindet sich diese Datei im Verzeichnis src\general\toaster\toastpkg\toastcd\amd64 .
Verwenden Sie ein softwareherausgeberzertifikat (Software Publisher Certificate, SPC), das von einer kommerziellen Zertifizierungsstelle (Commercial Certificate Authority, CA) ausgestellt wurde.
Verwenden Sie ein kompatibles Kreuzzertifikat für SPC.
Weisen Sie der digitalen Signatur über eine Zeitstempelautorität (Time Stamp Authority, TSA) einen Zeitstempel zu.
Führen Sie die folgende Befehlszeile aus, um dietoaster.sys-Datei zu testen:
Signtool sign /v /fd sha256 /ac MSCV-VSClass3.cer /s MyPersonalStore /n contoso.com /t http://timestamp.digicert.com amd64\toaster.sys
Hierbei gilt:
Der Sign-Befehl konfiguriert SignTool, um die angegebene Kernelmodus-Binärdatei amd64\toaster.syszu signieren .
Die Option /v ermöglicht ausführliche Vorgänge, in denen SignTool erfolgreiche Ausführungs- und Warnmeldungen anzeigt.
Die Option /fd gibt den Datei-Digestalgorithmus an, der zum Erstellen von Dateisignaturen verwendet werden soll. Die Standardeinstellung lautet SHA1.
Die Option /ac gibt den Namen der Datei an, die das von der Zertifizierungsstelle abgerufene Cross-Certificate (MSCV-VSClass3.cer) enthält. Verwenden Sie den vollständigen Pfadnamen, wenn sich das zertifikatübergreifende Zertifikat nicht im aktuellen Verzeichnis befindet.
Die Option /s gibt den Namen des persönlichen Zertifikatspeichers (MyPersonalStore) an, der den SPC enthält.
Die Option /n gibt den Namen des Zertifikats (Contoso.com) an, das im angegebenen Zertifikatspeicher installiert ist.
Die Option /t gibt die URL der TSA (
http://timestamp.digicert.com
) an, mit der die digitale Signatur zeitstempelt wird.
Wichtig
Das Einschließen eines Zeitstempels stellt die erforderlichen Informationen für die Schlüsselsperrung bereit, falls der private Schlüssel des Signierers kompromittiert wird.
- amd64\toaster.sys gibt den Namen der Kernelmodus-Binärdatei an, die eingebettet und signiert wird.
Weitere Informationen zu SignTool und seinen Befehlszeilenargumenten finden Sie unter SignTool.
Weitere Informationen zum Releasesignieren eines Treibers über eine eingebettete Signatur finden Sie unter Releasesignaturtreiberpakete und Releasesignatur einer Treiberdatei.