(0) exportieren Drucken
Alle erweitern

Schritte zum Signieren eines Gerätetreiberpakets

Betrifft: Windows 7, Windows Server 2008 R2

Wenn Sie ein Gerätetreiberpaket signieren möchten, müssen Sie über ein Codesignaturzertifikat verfügen. Weitere Einzelheiten zu den zahlreichen verfügbaren Zertifikattypen und ihre Erwerbsmöglichkeiten finden Sie im Abschnitt Weitere Ressourcen am Ende dieser Anleitung. In dieser Anleitung wird das Erstellen eines Zertifikats erläutert, das Sie zu Testzwecken verwenden können.

ImportantWichtig
Das in diesem Abschnitt erstellte und verwendete Zertifikat kann nur für 32-Bit-Treiber unter 32-Bit-Versionen von Windows verwendet werden. Weitere Informationen zum Verwenden von Gerätetreibern für 64-Bit-Versionen von Windows finden Sie unter dem wichtigen Hinweis im Abschnitt Anforderungen für die Gerätetreibersignierung und -bereitstellung weiter vorn in dieser Anleitung.

Übersicht der Schritte: Signieren eines Gerätetreiberpakets

Schritt 1: Erstellen eines digitalen Zertifikats zum Signieren

In diesem Schritt erstellen Sie ein Zertifikat, das zum Signieren des Beispieltreiberpakets "Toaster" verwendet werden kann.

Öffnen Sie zunächst das MMC-Snap-In (Microsoft Management Console) Zertifikate, um die aktuellen Zertifikate anzuzeigen.

ImportantWichtig
Führen Sie nicht certmgr.msc aus, um das Snap-In zu öffnen. Dadurch wird standardmäßig die Version Aktueller Benutzer der Zertifikatspeicher geöffnet. Bei diesem Verfahren müssen die Zertifikate jedoch in den Speichern für das Computerkonto gespeichert werden.

So öffnen Sie das MMC-Snap-In Zertifikate

  1. Klicken Sie auf Start, klicken Sie auf Ausführen, und geben Sie dann im Feld Ausführen Folgendes ein: mmc

  2. Klicken Sie unter Konsole1 – [Konsolenstamm] auf Datei, und klicken Sie dann auf Snap-In hinzufügen/entfernen.

  3. Wählen Sie unter Snap-Ins hinzufügen bzw. entfernen in der Liste Verfügbare Snap-Ins den Eintrag Zertifikate aus, und klicken Sie dann auf Hinzufügen.

  4. Wählen Sie unter Zertifikat-Snap-In die Option Computerkonto aus, und klicken Sie dann auf Weiter.

  5. Wählen Sie im Dialogfeld Computer auswählen die Option Lokaler Computer: (Computer, auf dem diese Konsole ausgeführt wird), und klicken Sie anschließend auf Fertig stellen.

  6. Klicken Sie auf OK, um die Seite Snap-Ins hinzufügen bzw. entfernen zu schließen.

    Das Zertifikat-Snap-In wird an der Konsole angezeigt.

Sie können das Zertifikat nun erstellen.

noteHinweis
Sie können das vorherige Eingabeaufforderungsfenster x86 Free Build Environment nicht verwenden, da es nicht mit den Administratorrechten ausgeführt wurde, die für das Tool MakeCert erforderlich sind. Wenn Sie MakeCert ohne Administratorrechte ausführen, tritt ein Fehler mit dem Code 0x5 (Zugriff verweigert) auf.

So erstellen Sie ein digitales Zertifikat mithilfe des Tools MakeCert

  1. Öffnen Sie ein Eingabeaufforderungsfenster x86 Free Build Environment mit Administratorrechten, indem Sie mit der rechten Maustaste im Startmenü auf x86 Free Build Environment klicken und dann Als Administrator ausführen auswählen.

  2. Geben Sie an der Eingabeaufforderung x86 Free Build Environment den folgenden Befehl in einer einzelnen Zeile ein (er wird hier zur Klarheit und aufgrund von Leerzeichenbeschränkungen in mehreren Zeilen angezeigt):

    makecert -r -n "CN=MyCompany - for test use only"
             -ss MyCompanyCertStore 
             -sr LocalMachine
    

    Die Bedeutung der einzelnen Parameter lautet folgendermaßen:

    • -r

      Gibt an, dass das Zertifikat "selbstsigniert" ist und nicht von einer Zertifizierungsstelle signiert wird. Es wird auch als Stammzertifikat bezeichnet.

    • -n "CN= MyCompany - for test use only "

      Gibt den Namen an, der diesem neuen Zertifikat zugeordnet ist. Es wird empfohlen, dass Sie einen Zertifikatnamen verwenden, der das Zertifikat und den Zweck klar identifiziert.

    • -ss MyCompanyCertStore

      Gibt den Namen des Zertifikatspeichers an, in dem das neue Zertifikat gespeichert wird.

    • -sr LocalMachine

      Gibt an, dass sich der mithilfe der Option -ss erstellte Zertifikatspeicher im Speicher pro Computer befindet und nicht wie standardmäßig im Speicher pro Benutzer.

    Vom Befehl wird die Meldung "Succeeded" zurückgegeben, wenn der Speicher und das Zertifikat erstellt wurden.

  3. Überprüfen Sie, ob das neue Zertifikat ordnungsgemäß erstellt wurde. Öffnen Sie im MMC-Snap-In Zertifikate, das Sie zuvor geöffnet haben, den Knoten Zertifikate (Lokaler Computer), dann MyCompanyCertStore und dann Zertifikate.

  4. Doppelklicken Sie im rechten Bereich auf MyCompany - for test use only.

    Das Dialogfeld Zertifikat, das das neue Zertifikat enthält, wird angezeigt.

    b6875d9a-21ab-4d83-838f-c3cb5ece2ffc
  5. Klicken Sie auf OK, um die Seite Zertifikat zu schließen.

Schritt 2: Hinzufügen des Zertifikats zum Speicher "Vertrauenswürdige Stammzertifizierungsstellen"

Dieser Schritt ist für lokal erstellte Zertifikate (z. B. mit MakeCert erstellte Zertifikate) erforderlich, die nicht direkt mit einem vertrauenswürdigen Stammzertifizierungsstellen-Zertifikat überprüfbar sind.

Standardmäßig werden neue Zertifikate als nicht vertrauenswürdig gekennzeichnet, da das Zertifikat von Windows nicht mit einem der vertrauenswürdigen Zertifikate im Speicher Vertrauenswürdige Stammzertifizierungsstellen pro Computer überprüft werden kann. Unter Windows müssen alle Zertifikate mit einem Zertifikat in diesem Speicher übeprüft werden, das als gültig betrachtet wird.

Dieser Schritt ist für im Handel erhältliche Zertifikate, die von einer Drittanbieter-Zertifizierungsstelle für Sie erstellt wurden, nicht erforderlich, da das Stammzertifikat für die Zertifizierungsstelle bereits im Speicher Vertrauenswürdige Stammzertifizierungsstellen pro Computer vorhanden ist.

noteHinweis
Zertifikate, die pro Benutzer im Speicher Vertrauenswürdige Stammzertifizierungsstellen gespeichert sind, überprüfen keine Signatur von Gerätetreiberpaketen.

So fügen Sie das Testzertifikat dem Zertifikatspeicher "Vertrauenswürdige Stammzertifizierungsstellen" hinzu

  1. Klicken Sie im Zertifikat-Snap-In mit der rechten Maustaste auf MyCompany - for test use only, und klicken Sie dann auf Kopieren.

  2. Klicken Sie mit der rechten Mausstate auf Vertrauenswürdige Stammzertifizierungsstellen, und klicken Sie dann auf Einfügen.

  3. Öffnen Sie Vertrauenswürdige Stammzertifizierungsstellen und Zertifikate, und doppelklicken Sie dann auf das Zertifikat.

  4. Bestätigen Sie, dass die Meldung "Nicht vertrauenswürdig" nicht mehr angezeigt werden soll, und klicken Sie dann auf OK, um das Zertifikat zu schließen.

Schritt 3: Hinzufügen des Zertifikats zum Speicher "Vertrauenswürdige Herausgeber" pro Computer

Wenn Sie das neue Zertifikat verwenden möchten, um zu bestätigen, dass die Signatur von Gerätetreibern gültig ist, muss es auch im Speicher Vertrauenswürdige Herausgeber pro Computer installiert sein.

noteHinweis
Zertifikate, die pro Benutzer im Speicher Vertrauenswürdige Herausgeber gespeichert sind, können die Signatur von Gerätetreiberpaketen nicht überprüfen.

So fügen Sie das Testzertifikat dem Zertifikatspeicher "Vertrauenswürdige Herausgeber" hinzu

  1. Klicken Sie im Zertifikat-Snap-In mit der rechten Maustaste auf das Zertifikat, und klicken Sie dann auf Kopieren.

  2. Klicken Sie mit der rechten Maustaste auf Vertrauenswürdige Herausgeber, und klicken Sie dann auf Einfügen.

  3. Öffnen Sie Vertrauenswürdige Herausgeber und Zertifikate, und bestätigen Sie dann, dass sich eine Kopie des Zertifikats im Ordner befindet.

  4. Klicken Sie auf OK, um das Zertifikat zu schließen.

Schritt 4: Signieren des Gerätetreiberpakets mit dem Zertifikat

Wenn Sie das Beispielgerät und den Beispieltreiber "Toaster" verwenden – oder wenn Ihre Organisation eine Richtlinie implementieren möchte, bei der alle Gerätetreiber mit einem eigenen Zertifikat der Organisation signiert werden müssen –, befolgen Sie diese Schritte, um die vorhandene Signatur durch Ihre eigene zu ersetzen.

noteHinweis
Wenn Sie ein Treiberpaket verwenden, das bereits vom Hersteller signiert wurde, verfügt das Treiberpaket bereits über eine verwendbare Katalogdatei, auf die von der INF-Datei verwiesen wird. In diesem Fall können Sie die ersten beiden Schritte unten überspringen und bei Signieren der Katalogdatei mit SignTool beginnen.

Zum Signieren des Gerätetreibers müssen Sie die folgenden Aufgaben ausführen:

  1. Vorbereiten der INF-Datei für das Treiberpaket

  2. Erstellen einer Katalogdatei für das Treiberpaket

  3. Signieren der Katalogdatei mit SignTool

Vorbereiten der INF-Datei für das Treiberpaket

Mit der INF-Datei wird die Installation des Treiberpakets gesteuert. Die digitale Signatur für ein Gerätetreiberpaket befindet sich in einer Katalogdatei mit der Dateinamenerweiterung CAT (*.cat) Die zum Installieren des Treiberpakets verwendete INF-Datei muss einen Verweis auf die CAT-Datei enthalten.

Außerdem müssen Sie für den in dieser Anleitung verwendeten Beispielgerätetreiber "Toaster" auch den Zeitstempel und die Versionsnummer des Gerätetreibers ändern.

Bei einem Co-Installationsprogramm handelt es sich um vom Gerätetreiberhersteller bereitgestellten Code bereitgestellt, der während der Treiberpaketinstallation aufgerufen werden kann. Dadurch wird das Installationsprogramm bei den während des Installationsvorgangs ausführbaren Aufgaben flexibler. Beim Beispielgerätetreiber "Toaster" werden vom Co-Installationsprogramm optionale Programme angezeigt, die der Benutzer installieren kann. Sie benötigen das Co-Installationsprogramm von "Toaster" für diese Szenarien nicht. Daher können Sie sie in diesem Verfahren aus der INF-Datei löschen.

noteHinweis
Wenn das Treiberpaket bereits vom Hersteller signiert wurde, enthält die INF-Datei bereits einen Verweis auf eine gültige Katalogdatei, und Sie können dieses Verfahren überspringen.

So bereiten Sie die INF-Datei für das Treiberpaket vor

  1. Wechseln Sie an der Eingabeaufforderung x86 Free Build Environment mit Administratorrechten zu dem Ordner, der das Treiberpaket enthält. Geben Sie den folgenden Befehl ein:

    cd c:\toaster\device
    
  2. Geben Sie dann diesen Befehl ein:

    Notepad toastpkg.inf
    

    Editor wird geöffnet, und die INF-Datei wird angezeigt.

  3. Suchen Sie den Abschnitt [Version]. Die ursprüngliche Datei enthält folgende Zeilen:

    CatalogFile.NTx86 = tostx86.cat
    CatalogFile.NTIA64 = tostia64.cat
    CatalogFile.NTAMD64 = tstamd64.cat
    
  4. Löschen Sie diese drei Zeilen, und ersetzen Sie sie durch die folgende einzelne Zeile:

    CatalogFile=toaster.cat
    
  5. Suchen Sie im Abschnitt [Version] die Zeile, die mit DriverVer= beginnt. Ersetzen Sie das Datum und die Versionsnummer, sodass die Zeile der folgenden entspricht:

    DriverVer=05/01/2009,9.9.9.9
    
  6. Suchen Sie im Abschnitt [Toaster_Device.NT.CoInstallers] die folgenden drei Zeilen, und löschen Sie sie:

    [Toaster_Device.NT.CoInstallers]
    AddReg=CoInstaller_AddReg
    CopyFiles=CoInstaller_CopyFiles
    
  7. Speichern Sie die Änderungen, und schließen Sie Editor.

Erstellen einer Katalogdatei für das Treiberpaket

Führen Sie nun das Tool Inf2Cat aus, um eine unsignierte Katalogdatei für das Beispieltreiberpaket "Toaster" zu erstellen. Von Inf2Cat wird die INF-Datei für das Treiberpaket analysiert, und es werden dann eindeutige Hashes für alle Dateien generiert, auf die in der INF-Datei verwiesen wird. Der Empfänger des Pakets verwendet die Hashes, um zu bestätigen, dass die empfangenen Dateien genau mit den signierten übereinstimmen.

noteHinweis
In früheren Versionen des WDK wurde ein Tool mit dem Namen Signability verwendet. Dieses Tool ist veraltet und wird durch Inf2Cat ersetzt.

Wenn das Treiberpaket, das Sie verwenden, vom Hersteller signiert wurde, ist bereits eine Katalogdatei vorhanden, und sie müssen keine neue erstellen. Überspringen Sie dieses Verfahren, und wechseln Sie zum nächsten Verfahren Signieren der Katalogdatei mit SignTool, um die Signatur des Herstellers durch Ihre eigene zu ersetzen.

noteHinweis
Das Tool Inf2Cat muss an einer Eingabeaufforderung mit Administratorrechten ausgeführt werden.

So erstellen Sie eine Katalogdatei für das Treiberpaket

  1. Geben Sie an der Eingabeaufforderung x86 Free Build Environment mit Administratorrechten den folgenden Befehl ein:

    inf2cat /driver:c:\toaster\device /os:7_x86

    Die Bedeutung der einzelnen Parameter lautet folgendermaßen:

    • /driver: c:\toaster\device

      Gibt den Ort der INF-Datei für das Treiberpaket an. Sie müssen den vollständigen Ordnerpfad angeben. Der aktuelle Ordner kann hier nicht mit dem Zeichen "." dargestellt werden.

    • /os: 7_x86

      Identifiziert die 32-Bit-Version von Windows 7 als Betriebssystem. Führen Sie den Befehl inf2cat /? aus, um eine vollständige Liste der unterstützten Betriebssysteme und ihrer Codes anzuzeigen.

  2. Sehen Sie sich die Ausgabe des Tools Inf2Cat an.

    Signability test complete
    ......................
    Errors:
    None
    
    Warnings:
    None
    
    Catalog generation complete.
    C:\toaster\device\toaster.cat
    
  3. Überprüfen Sie die fertig gestellte CAT-Datei. Geben Sie an der Eingabeaufforderung Folgendes ein:

    start toaster.cat
    

    Das Dialogfeld Sicherheitskatalog wird angezeigt. Es gibt an, dass der Katalog nicht digital signiert wurde. Da die CAT-Datei nicht signiert wurde, ist die Schaltfläche Signatur anzeigen deaktiviert.

    bbd98259-0372-4dc9-9636-2fb37fc9026b
  4. Klicken Sie auf die Registerkarte Sicherheitskatalog. Der Abschnitt Katalogeinträge enthält drei Einträge: den für die INF-Datei, für die SYS-Datei und für die DLL-Datei des Treiberpakets. Klicken Sie auf jeden Eintrag, und beachten Sie im Abschnitt Eintragsdetails, dass jede Datei im Paket über einen Eintrag mit einem "Fingerabdruck" (dem Hash) verfügt, der zum Bestätigen der Integrität der Datei verwendet werden kann.

  5. Klicken Sie auf OK, um das Dialogfeld Sicherheitskatalog zu schließen.

Signieren der Katalogdatei mit SignTool

Da Sie nun über eine Katalogdatei verfügen, können Sie sie mithilfe des Programms SignTool signieren.

Verwenden Sie dieses Verfahren unabhängig davon, ob Sie den Beispielgerätetreiber "Toaster" verwenden oder nicht.

ImportantWichtig
Beim Signieren eines Treiberpakets müssen Sie die Signatur mit einem Zeitstempel versehen. Mit dem Zeitstempel wird angegeben, wann die Signatur erstellt wurde. Wenn ein Zertifikat abläuft oder aus Sicherheitsgründen gesperrt wird, sind nur die Signaturen gültig, die vor dem Ablauf oder der Sperrung erstellt wurden. Wenn kein Zeitstempel in die Signatur eingeschlossen ist, kann von Windows nicht bestimmt werden, ob das Paket vor oder nach dem Ablauf oder der Sperrung signiert wurde, und die Signatur wird abgelehnt.

So signieren Sie eine Katalogdatei mit SignTool

  1. Geben Sie an der Eingabeaufforderung x86 Free Build Environment mit Administratorrechten den folgenden Befehl in einer Zeile ein. Er wird hier zur Klarheit und aufgrund von Leerzeichenbeschränkungen in mehreren Zeilen angezeigt:

    SignTool sign /s MyCompanyCertStore /n “MyCompany – for test use only”
             /t http://timestamp.verisign.com/scripts/timestamp.dll
             toaster.cat
    

    Die Bedeutung der einzelnen Parameter lautet folgendermaßen:

    • /s MyCompanyCertStore

      Gibt den Namen des Zertifikatspeichers an, in dem von SignTool nach dem durch den Parameter /n angegebenen Zertifikat gesucht wird.

    • /n “ MyCompany – for test use only

      Gibt den Namen des Zertifikats an, das zum Signieren des Pakets verwendet wird. Sie müssen so viele Zeichen des Namens einschließen, dass er von SignTool von den anderen Namen im Speicher unterschieden werden kann. Wenn der Name Leerzeichen enthält, müssen Sie den Namen in doppelte Anführungszeichen einschließen.

    • /t Pfad zum Zeitstempeldienst

      Gibt den Pfad zu einem Zeitstempeldienst einer zugelassenen Zertifizierungsstelle an. Wenn Sie das Zertifikat von einem kommerziellen Hersteller erworben haben, sollte er Ihnen einen entsprechenden Pfad zu seinem Dienst bereitstellen.

    • toaster.cat

      Gibt den Pfad und den Dateinamen der zu signierenden Katalogdatei an.

    Der Abschluss wird von SignTool mit der folgenden Meldung angegeben:

    Successfully signed and timestamped: C:\toaster\device\toaster.cat 
    
  2. Wenn Sie die signierte Katalogdatei anzeigen und überprüfen möchten, geben Sie an der Eingabeaufforderung Folgendes ein:

    start toaster.cat
    
  3. Stellen Sie sicher, dass in der Kopfzeile der Eigenschaftenseite Sicherheitskatalog nun der Status "gültig" für den Sicherheitskatalog angegeben und die Schaltfläche Signatur anzeigen aktiviert ist.

  4. Klicken Sie auf Signatur anzeigen, und bestätigen Sie dann die Details der Signatur, die Sie dem Paket hinzugefügt haben. Es wurden keine anderen Details der Katalogdatei geändert.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2014 Microsoft