Ich entwickle ein Produkt, das einen MSP430-Mikrocontroller mit einem eingebauten USB-Modul verwendet. Ich habe eine PID von Texas Instruments erhalten und deren Tools zum Generieren der Deskriptoren sowie eine INF-Datei zum Installieren der Treibersoftware verwendet. Das offensichtliche Problem ist, dass aufgrund des benutzerdefinierten Charakters dieser Dateien beim Einstecken des USB-Kabels ein Popup (unter Windows 7) angezeigt wird, das den Benutzer warnt, dass der Treiber nicht signiert ist. Ich glaube, unter Windows 8 und Windows 10 wird es einfach blockiert und dem Benutzer überhaupt nicht angezeigt.
Da es sich um ein Produkt mit vollem Funktionsumfang handelt, das von meinem Unternehmen herausgebracht werden soll, benötigen wir ein Treiberzertifikat (ich glaube in Form einer .cat-Datei?), Das wir dem Kunden zur Verfügung stellen können, damit er das Gerät installieren kann Treibersoftware ohne Problem.
Ich habe einiges in der Microsoft-Dokumentation durchgearbeitet (insbesondere in diesem Dokument ), um herauszufinden, was erforderlich ist, um einen Treiber zu signieren, aber leider ist dies im Moment über meinem Kopf.
Folgendes verstehe ich soweit:
- Ich muss meinen Treiber (INF-Datei?) Bei einer von Microsoft autorisierten Zertifizierungsstelle (CA) einreichen. Es gibt eine Reihe von diesen da draußen, also müsste ich eine finden, die Treiber signiert.
- Nach der Auswahl einer Zertifizierungsstelle muss ich in der Regel eine jährliche Gebühr zahlen (in der Regel für 1, 2 oder 3 Jahre). Alle Treiber, die ich während dieser Zeit generiere, werden auch nach Ablauf des Dienstes dauerhaft signiert. Wenn ich den Treiber ändern oder einen neuen Treiber erstellen möchte, nachdem der Dienst abgelaufen ist, muss ich den Dienst für weitere 1, 2 oder 3 Jahre kaufen.
- Nach Zahlung der Gebühr erstellt die Zertifizierungsstelle eine CAT-Datei, die ein Zertifikat darstellt, das sicherstellt, dass der von mir angegebene Treiber nicht geändert wird. In diesem Fall stimmt die Datei nicht mehr mit der CAT-Datei überein, und während der Installation wird ein Fehler angezeigt
Ist das richtig? Wo finde ich eine Liste der Zertifizierungsstellen, die diese Zertifizierung für mich durchführen können, wenn ich das Risiko habe, nach Empfehlungen für bestimmte Zertifizierungsstellen zu suchen (ich denke nicht)? Noch besser wären deren Websites und / oder Preise für unterschiedliche Servicedauern. Hat jemand hier direkte Erfahrung damit, einen Treiber für ein USB-Mikrocontroller-basiertes Produkt zu bekommen, das von einer Zertifizierungsstelle signiert wurde? Ich habe bereits in den MSDN-Foren gepostet, aber es scheint dort ziemlich tot zu sein. Es sind zwei Tage vergangen, und mein Thread hat nur eine Handvoll Aufrufe.
Antworten:
Eigentlich ist es nicht so schlimm. Ich habe dies einige Male bei der Arbeit getan und eine .INF / .CAT-Datei für eine USB-CDC-ACM-zu-I 2 C-Schnittstelle auf PIC24FJ64GB002-Basis von Microchip geschrieben und signiert .
Stellen Sie eine Beziehung zu einer Zertifizierungsstelle her. Sie müssen ihnen einige grundlegende Informationen zur Verfügung stellen, die sie validieren. Wenn Sie sich für Extended Validation (EV) entscheiden, werden sie viel mehr verlangen, aber Sie sollten nicht so weit gehen müssen. Thawte, Digicert und Comodo sind einige Beispiele für Zertifizierungsstellen.
Erwerben Sie ein Authenticode-Codesignaturzertifikat von der Zertifizierungsstelle. Dies ist, was Sie benötigen, um die .CAT-Datei zu signieren, die Ihrer .INF-Datei zugeordnet ist. Für diese Signaturstufe benötigen Sie kein Kernelmodus-Zertifikat.
Installieren Sie das Zertifikat (versteht sich von selbst)
Laden Sie das Windows SDK-Framework und das Windows Driver Kit herunter , um die erforderlichen Microsoft-Tools (Katalogerstellung und -signierung) zu erhalten.
Packen und unterschreiben Sie die Treiber:
Ab diesem Zeitpunkt können Sie eine Art Treiberinstallationsprogramm erstellen oder dpinst aus dem SDK verwenden, um eine grundlegende Automatisierung der Installation durchzuführen .
BEARBEITEN: Notizen aus verschiedenen Kommentaren unten:
Weitere Erweiterung Ihrer Fragen:
quelle