Wie signiere ich eine Microsoft Windows 64-Bit Kernal-Modus-Software unter Verwendung von Microsoft Authenticode oder Microsoft Office und VBA?

Solution ID:    SO5820    Updated:    08/01/2015

Problem

Signieren von Microsoft Windows 64-Bit Kernal-Modus-Software unter Verwendung von Microsoft Authenticode oder Microsoft Office und VBA

Solution

64-bit Versionen von Microsoft Windows erfordern sogenanntes Kernal-Mode-Code-Signing

Um Microsoft Windows 64-Bit-Kernal-Modus-Software unter Verwendung von Microsoft Authenticode oder Microsoft Office und VBA zu signieren, müssen Sie Folgendes herunterladen und installieren:

  1. Microsoft Vista SDK (Muss installiert sein, um signtool zu erhalten)
  2. Symantec Cross Certificate (Sie finden das Zertifikat auch unten auf dieser Seite)
  3. PVK-Import (Dieses Programm wird von Symantec nicht unterstützt)
     

Wenn Ihr Zertifikat nicht schon bereits im Windows-Zertifikatsspeicher installiert ist (einsehbar über Internet Explorer), verwenden Sie PVK-Import, um dies nachzuholen.

Benutzen Sie signtool.exe (kommandozeilenbasiert) aus dem Windows SDK für das Signieren des Codes. Verwenden Sie den folgenden Befehl:

signtool sign /v /ac "C:AuthenticodeMSCV-VSClass3.cer" /s MY /n "Symantec Corp." /t http://timestamp.verisign.com/scripts/timstamp.dll CatFileName.cat

Hinweis: Ersetzen Sie CatFileName.cat mit dem Namen der Datei, die Sie signieren möchten.

Dieses Beispiel verwendet mehrere Parameter, die das SignTool unterstützt:

  • Sign: Konfiguriert das Tool zum Signieren der Katalogdatei mit dem Namen CatFileName.cat
  • /v: Legt die Verbose-Option fest, die die erfolgreiche Ausführung bestätigt und Warnmeldungen ausgibt
  • /ac: Fügt das Cross-Zertifikat aus der CrossCertificateFile-Datei der digitalen Signatur hinzu (Pfad nach Bedarf ändern)
  • /s: Gibt den Ordner im Windows-Zertifikatsspeicher an, in welchem das Zertifikat gesucht werden soll (liegt das Zertifikat im Ordner "Eigene Zertifikate", wie es Standard ist, ist dieser Wert My)
  • /n: Gibt den Unternehmensnamen in Ihrem Zertifikat wieder, wie er im Feld "AUSGESTELLT AN" erscheint (ersetzen Sie also "Symantec Corp." durch den Wert in Ihrem Zertifikat).
  • /t: Legt fest, dass die digitale Signatur einen Zeitstempel durch die Time-Stamp Authority (TSA) erhält, die in der URL aufgerufen wird

Hinweis: Die URL für den Zeitstempel für Symantec ist http://timestamp.verisign.com/scripts/timstamp.dll.
"timstamp.dll" schreibt sich ohne "e". Dies daher, damit beim Dateinamen die alten MS-DOS-Namenskonventionen eingehalten werden.

Weitere Informationen finden Sie in den folgenden Dokumenten aus der Microsoft Knowledge Base:

http://www.microsoft.com/whdc/driver/64bitguide.mspx

http://msdn.microsoft.com/en-us/library/aa388170

 

Microsoft stellt außerdem die folgende zusammengefasste Version des Signiervorgangs zur Verfügung:

Problem - Probleme beim Signieren eines Treibers unter Verwendung von Signtool und Cross-Zertifikaten
Umgebung - Windows 64-Bit
Lösung - Installieren Sie Ihr Zertifikat durch Doppelklick und erlauben eine automatische Installation. Auf diese Weise müssen Sie sich keine Sorgen machen, in welchem Zertifikatsordner es gespeichert wird.

Verwenden Sie bei der Verwendung von SIGNTOOL die x64-geprüfte Entwicklungsumgebung, bzw. Server 2008 SDK. Cross-signieren Sie nur .SYS-Dateien. CAT-Dateien müssen nicht cross-signiert werden. Während des Ladens betrachtet das System nur die SYS-Datei zur Überprüfung und nie die CAT-Datei (nur auf 64-Bit-Systemen).

 

Verwenden Sie beim Cross-Signieren folgende Syntax:

a) Ihr Zertifikat liegt im Windows-Zertifikatsspeicher:

Ohne Timestamp:

signtool sign /v /ac "C:AuthenticodeMSCV-VSClass3.cer" /s MY /n "Symantec Corp." "C:driver.sys"

Mit Timestamp:

signtool sign /v /ac "C:AuthenticodeMSCV-VSClass3.cer" /s MY /n "." /t http://timestamp.verisign.com/scripts/timstamp.dll "C:driver.sys"

Hinweis: Ersetzen Sie "Symantec Corp." durch den Wert "issued to:" (ausgestellt an) in Ihrem Zertifikat. Ersetzen Sie die Pfade zu den einzelnen Dateien durch Ihre Werte.

b) Ihr Zertifikat liegt in einer passwortgeschützten PFX-Datei vor:

Ohne Timestamp:

signtool sign /v /ac "C:AuthenticodeMSCV-VSClass3.cer"  /f "C:AuthenticodeYourCert.pfx"  /p Password  /n "Symantec Corp." "C:driver.sys"

Mit Timestamp:

signtool sign /v /ac "C:AuthenticodeMSCV-VSClass3.cer" /f "C:AuthenticodeYourCert.pfx" /p Password /n "Symantec Corp." /t http://timestamp.verisign.com/scripts/timstamp.dll "C:driver.sys"

Um zu überprüfen, dass der Treiber ordnungsgemäß cross-signiert wurde, verwenden Sie die folgende Syntax und halten Sie Ausschau nach der "Microsoft Code Verification Root":

signtool verify /v /kp "C:\driver.sys"

Für das Cross-Signieren müssen Sie nur die PFX-Datei installieren. Denken Sie daran: Diese Datei muss nur doppelgeklickt werden, um sie ordnungsgemäß zu installieren. Alle anderen Installationsmethoden platzieren das Zertifikat in einen falschen Ordner.

Legacy ID

vs41181

Contact Support

Find Answers