Windows 10 x64 installiert keine signierten Gerätetreiber, obwohl alles in Ordnung ist

956
Erik

Ich habe derzeit Probleme mit der Signatur von Windows 10-Gerätetreibern. Mein Unternehmen hat einige Treiber für Windows 10 x86 und x64 entwickelt, die ich mit einem SHA1-Zertifikat zu signieren versuche. Ich weiß, dass SHA1 nicht die beste Option ist, aber dennoch funktionieren sollte, soweit ich die technische Dokumentation von Microsoft verstehe.

Das eigentliche Problem ist, dass die Treiber korrekt installiert werden, und selbst wenn ich sie mithilfe der Prüfoption von signtool überprüfe, scheinen sie in Ordnung zu sein. Windows 10 gibt außerdem an, dass die Installation der INF-Datei einwandfrei ist. Ich habe alle signierbaren Dateien im Treiberpaket signiert, einschließlich CAT-Dateien, DLLs, SYS-Dateien usw.

Der Punkt, an dem die Treiber tatsächlich nicht funktionieren, befindet sich im Geräte-Manager von Windows 10. Dort bekomme ich ein Ausrufezeichen mit der folgenden Beschreibung:

"Code 52 - Windows kann die digitale Signatur nicht überprüfen ..."

Der Workflow, den ich benutze, ist genau wie folgt, natürlich mit anderen tatsächlichen Daten, aber der Rest ist derselbe.

"C:\Program Files (x86)\Windows Kits\10\bin\x86\stampinf.exe" -f "P:\MyDriver\mydriver.inf" -d 08/11/2017 -v 1.0.0.1  "C:\Program Files (x86)\Windows Kits\10\bin\x86\Inf2Cat.exe" /driver:"P:\MyDriver" /os:10_X86,10_X64,7_X86,7_X64,8_X86,8_X64,XP_X86,XP_X64  "C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /f  "C:\Users\me\Documents\MyCert\MyCert.pfx" /p myVerySecretPassw0rd /d "My Drivers" /du "http://www.myveryverycompaniesurl.com" /t "http://timestamp.verisign.com/scripts/timestamp.dll" /v /ph "P:\MyDrivers\*.*" 

Dies ist, was "signtool verify" über die so erstellten Treiberdateien berichtet:

Verifying: P:\MyDrivers\OneOfMyDLLs.dll  Signature Index: 0 (Primary Signature) Hash of file (sha1): *************************************************  Signing Certificate Chain: Issued to: COMODO RSA Certification Authority  Issued by: COMODO RSA Certification Authority  Expires: Tue Jan 19 01:59:59 2038  SHA1 hash: *************************************************   Issued to: COMODO RSA Code Signing CA  Issued by: COMODO RSA Certification Authority  Expires: Tue May 09 01:59:59 2028  SHA1 hash: *************************************************   Issued to: My Company  Issued by: COMODO RSA Code Signing CA  Expires: Tue Sep 18 01:59:59 2018  SHA1 hash: ************************************************* 

Für mich sieht alles in Ordnung aus, bis zu dem Punkt, an dem es um den Geräte-Manager geht. Dies hat einige Probleme mit einer der Signaturen oder generell mit der Art der Signatur der Dateien, aber es gibt mir nicht wirklich einen Hinweis, was los ist falsch. Edit: Wenn Microsoft der Meinung ist, dass SHA-1 nicht ausreichend ist, warum wird keine Fehlermeldung angezeigt, die diese Tatsache angibt?

0
Das Problem ist das SHA1-Zertifikat. Windows vertraut SHA1-Zertifikaten nicht mehr für digitale Signaturen wie signierte Treiber und signierte Anwendungen. Dies ist eine gut dokumentierte Tatsache Ramhound vor 7 Jahren 0
Vielen Dank für die Antwort. Können Sie auf eine Quelle für diese dokumentierte Tatsache verweisen? Ich würde gerne darüber lesen. Eine weitere Frage ist, warum Windows die Treiber installiert, dann aber im Geräte-Manager fehlschlägt. Während der Installation und Überprüfung heißt es, dass alles in Ordnung ist, was verwirrend ist Erik vor 7 Jahren 0
Ich konnte es Ihnen nicht sagen, als ich die Ankündigung las, dass Windows SHA1-Zertifikaten nicht mehr vertrauen würde, nur dass die Ankündigung darauf hinwies, dass es geschehen würde, und basierend auf dem, was Sie beschreiben, scheint es bereits geschehen zu sein. Ich werde weitermachen und aufräumen, was ich finden kann. Ramhound vor 7 Jahren 1

1 Antwort auf die Frage

1
Ramhound

Ich weiß, dass SHA1 nicht die beste Option ist, aber dennoch funktionieren sollte, soweit ich die technische Dokumentation von Microsoft verstehe.

Das Problem ist, dass der aktuelle Build von Windows 10 SHA1-Codesignaturzertifikaten nicht vertraut. Wenn Sie möchten, können Sie dieses Verhalten außer Kraft setzen, indem Sie die gesamte Zertifikatskette für Ihr Zertifikat hinzufügen.

Basierend auf der Ankündigung der wichtigen Änderung - SHA-1 wird von SHA-1 direkt von Comodo verworfen, vertrauen Windows im Januar 2016 nicht mehr auf SHA1-Codesignierungszertifikate.

1. Januar 2016 - Microsoft-Produkte, einschließlich Internet Explorer und Chrome, werden SHA-1-Codesignaturzertifikaten nicht mehr vertrauen

Microsoft per Mai 2017 erklärte:

Heute möchten wir die Verbraucher noch stärker vor dem Risiko warnen, Software herunterzuladen, die mit einem SHA-1-Zertifikat signiert ist. Unser Ziel ist es, eine gemeinsame Erfahrung auf Betriebssystemebene zu entwickeln, die alle Anwendungen verwenden können, um Benutzer vor schwachen Kryptografien wie SHA-1 zu warnen. Langfristig will Microsoft SHA-1 in allen Bereichen in allen Bereichen misstrauen. Microsoft verfolgt die neuesten Untersuchungen zur Durchführbarkeit von SHA-1-Angriffen genau und wird dies zur Ermittlung der vollständigen Abschreibungszeiträume verwenden.

Windows-Durchsetzung von SHA1-Zertifikaten

Eine der Antworten auf die Abschaffung von SHA1-Codesignaturzertifikaten unter Windows lieferte die folgende Tabelle. Die fragliche Antwort hat einige sichere Einschränkungen bei der Verwendung von SHA1-Zertifikaten.

enter image description here

Obwohl es Antworten auf diese Frage gibt, die darauf hindeuten, dass sich die SHA1-Pläne von Microsoft geändert haben, haben sich die Informationen zum Datum vom 1. Januar 2016 nicht wirklich geändert. Wenn Sie ein Zertifikat haben, das im September 2018 abläuft, bedeutet dies, dass es nach dem 1. Januar 2016 unterzeichnet wurde. Am Ende unterstützen Comodo selbst nicht einmal SHA1-Zertifikate mehr. Ramhound vor 7 Jahren 0
Ich habe jetzt zu einem SHA-256-Zertifikat gewechselt und außerdem einen SHA 256-Fingerabdruck und einen Zeitstempel erstellt. Der Fehlercode 52 im Gerätemanager mit den neu signierten Treibern ist jedoch immer noch derselbe, daher handelt es sich nicht mehr um ein SHA-1-Problem. Hast du noch Ideen? Erik vor 7 Jahren 0
Eine andere Sache, die mir in den Sinn kommt: Ist es möglich, dass mein Zertifikat, das eigentlich ein Code-Signing-Zertifikat ist, nicht ausreicht? Was ist der Unterschied zwischen Codesignierung und Treibersignierung? Gibt es unterschiedliche Arten von Zertifikaten? Erik vor 7 Jahren 0
@Erik Ja, sie unterscheiden sich jedoch nur im Validierungsprozess, wenn Sie sie kaufen Ramhound vor 7 Jahren 1