Benötigen in Windows 8 Fremdanbieter-Treiberdateien eine Signatur?
Ich arbeite für ein Unternehmen, das verkauft USB-Geräte und Treiber für Sie.
In Windows 7, können Sie installieren und verwenden Sie unsigned INF-Treiberdateien für die USB-Geräte, solange Sie nicht hinzufügen, beliebigen code im kernel. Unser Unternehmen verwendet generische Treiber von Microsoft bereitgestellt (usbser.sys
und winusb.sys
), so dass wir nie benötigt, unterzeichnen Sie unsere Treiber-Pakete.
Basiert auf einem Bericht von einem unserer Kunden und von einem anderen Stack-Überlauf Frage Was sich geändert hat in der Treiber-Signatur-Anforderungen für Windows 8? und der Arduino forumes klingt ähnlich wie die Windows 8 Consumer Preview strengere Unterzeichnung Anforderungen, die erfordern, dass alle Drittanbieter INF-Dateien, unterzeichnet zu bekommen. Die Fehlermeldung die Menschen immer, wenn Sie versuchen, Treiber zu installieren, funktionierte auf Windows 7:
Den third-party-INF enthält keine digitale Signatur-Informationen.
Was ist die offizielle Antwort von Microsoft, bestätigt, dass die Signaturen immer noch erforderlich, die in der finalen version von Windows 8? Ein Satz oder zwei von MSDN.com wäre ausreichend, aber ich kann nichts finden.
Ich bin erwägen den Kauf ein Signaturzertifikat, aber bevor ich bezahlen $200 ich will sicher sein, dass ich wirklich brauchen, in der langen Begriff. Es ist möglich, dass das neue signing-Anforderung ist nur in der consumer preview und nicht in der realen version?
InformationsquelleAutor der Frage David Grayson | 2012-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zur Antwort auf meine eigene Frage: ja, die Finale version von Windows 8 erfordert alle INF-Dateien zu unterzeichnen, aber Sie nicht benötigen, um Ihre Treiber auf den WHQL. Ich schrieb über diese Anforderung und vieles mehr in meinem Artikel Praktische Windows-Code und Treiber Signieren.
InformationsquelleAutor der Antwort David Grayson
Nicht nur, dass es erfordern Unterzeichnung des INF-Dateien, es erfordert auch Sie zu unterzeichnet werden, die von der WHQL Zertifikat, nicht die gleiche, die Sie verwenden, um embedded-Zeichen .sys-Dateien und dergleichen. Mit meinem Code Signing-Zertifikat auf die INF-Datei hat überhaupt nicht funktioniert. (Die gleichen Probleme, wie wenn Links ohne Vorzeichen.)
EDIT:
Dies ist, was Microsoft will, dass Sie denken. Sie sagte, dass bestimmte Klassen von Treiber MÜSSEN WHQL-signiert sind, da Sie sonst nicht funktionieren, und dass Authenticode signieren funktioniert nur für diejenigen, die nicht über ein WHQL-Prozess.
Es stellt sich heraus KÖNNEN Sie die Authenticode signieren-Treiber-Pakete, außer Sie haben zu kümmern, und melden Sie, wie Sie kernel-code, was bedeutet, dass immer die richtige cross-Zertifikat für Ihre CA (aus Cross-Zertifikate für Kernel-Mode Code Signinggibt es Tonnen von Ihnen, darunter StartCom, die ich habe (Klasse 2, 60 US-Dollar für zwei Jahre, aber Sie kann nicht Zeitstempel). Liefern diese cross-Zertifikat (nicht das gleiche wie Ihre CA ' s self-signed-Zertifikat oder Ihre Vermittler-Zertifikat. Es ist nur verfügbar, auf die MSDN-Seite) zu SignTool über die
/ac
wechseln.Dann verwenden Sie SignTool überprüfen Sie mit der
/kp
wechseln, um zu sehen, wenn Sie Kreuz unterzeichnet Sie richtig. SignTool überprüfung mit ohne Schalter ERFORDERT, dass die .cat-Dateien sind WHQL-signiert sind, während die/pa
wechseln, die scheint OK zu sein, bevor, jetzt ist Sie zu lasch, und gilt nur für non-driver signing (wie EXE-Dateien, ClickOnceetc.).Wenn Sie nicht wollen, zu erwerben, um Ihre eigenen kernel-level-Signaturzertifikat (das ist jetzt einfacher als vorher, ehrlich gesagt, vorher war es begrenzt auf VeriSign ' s super teuer, und GlobalSign 200 US-Dollar-a-Jahre diejenigen, die ich denke, Microsoft sah, dass nicht viele Leute geschrieben haben, kernel-level-exploits für x64-Systeme), können Sie eine self-signed root-CAhaben Sie Ihre Treiber-installer installieren es in der LocalMachine "Vertrauenswürdige Stammzertifizierungsstellen" speichern (siehe
certmgr.exe
), und installieren Sie dann die .der cat-Datei, die signiert wurde. Natürlich, denn dies ist nicht ein kernel-level-code-Zertifikat, Sie MÜSSEN nur .sys-Dateien, die bereits über eine eingebettete kernel-level-code-Zertifikat von jemand anderem (was bedeutet, können Sie nur ändern .inf-Dateien in den Treiber-Paketen). Scheinbar gibt es eine Sicherheitslücke, die es ermöglicht selbst signierte Zertifikate zu Unterschreiben .cat-Dateien (falls Sie Ihre eigene CA, dann unterzeichnet ein Zertifikat, unterschrieben Ihre .cat-Dateien mit, dass es nicht funktionieren so).Sich für eine suite, das für jeden INF-Paket macht es, siehe libwdi, und wie sich Ihre selbst-signierte Zertifikate auf cat-Dateien erlauben die installation auf Windows 8.
EDIT2:
Entfernt CERTUM "open source" - Entwickler-Zertifikat erwähnen, da es keine cross-Zertifizierung durch Microsoft (die, Die Sie bekommen ist nicht das Certum TRUSTED NETWORK ein, dass Microsoft die cross-Zertifizierung).
InformationsquelleAutor der Antwort rajkosto