Test-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 ist immer dann erforderlich, wenn der Treiber ein Startstarttreiber ist. 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. Beachten Sie, dass dies zusätzlich zur Katalogdatei des Treiberpakets ist, das die Signierungsanforderungen für die PnP-Geräteinstallation erfüllen muss.
Wie bei Katalogdateien wird SignTool 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 das Zertifikat Contoso.com(Test) aus dem PrivateCertStore für die Testsignatur. Weitere Informationen zur Erstellung dieses Zertifikats finden Sie unter Erstellen von Testzertifikaten.
Zeitstempel der digitalen Signatur über eine Zeitstempelautorität (Time Stamp Authority, TSA).
Führen Sie die folgende Befehlszeile aus, um dietoaster.sys-Datei zu testen:
Signtool sign /v /fd sha256 /s PrivateCertStore /n Contoso.com(Test) /t http://timestamp.digicert.com amd64\toaster.sys
Hierbei gilt:
Der Befehl sign konfiguriert SignTool, um die angegebene Katalogdatei zu signieren, tstamd64.cat.
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 /s gibt den Namen des Zertifikatspeichers (PrivateCertStore) an, der das Testzertifikat enthält.
Die Option /n gibt den Namen des Zertifikats (Contoso.com(Test)) an, das im angegebenen Zertifikatspeicher installiert ist.
Die Option /t gibt die URL der TSA (
http://timestamp.digicert.com
) an, die die digitale Signatur zeitstempelt.
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 Testen des Signierens eines Treibers mithilfe einer eingebetteten Signatur finden Sie unter Testen der Signatur einer Treiberdatei.