2015-06-03 21 views
8

Wir haben gerade von einem SHA-1 zu einem SHA-2 Code Signing-Zertifikat gewechselt. (Als Hintergrundinformationen signieren wir EXE- und .XAP-Dateien unter Windows mit signtool.exe unter Verwendung von COMODO-Codesignaturzertifikaten.) Wir verwenden dazu einen zertifizierten Zeitstempel, um sicherzustellen, dass Windows der Codesignatur nach dem Codesignaturzertifikat weiterhin vertraut läuft ab.Ob/wie SHA-1 signierte Zeitstempel beim Codesignieren vermieden werden können?

Jetzt habe ich festgestellt, dass das Zeitstempel-Zertifikat ist immer noch ein SHA-1-Zertifikat, wenn Sie http://timestamp.comodoca.com/authenticode verwenden. (Details: Es ist df946a5 ... mit Betreff 'CN = COMODO Zeitstempel Signierer, O = COMODO CA begrenzt, L = Salford, S = Greater Manchester, C = GB')

(Unter Windows kann man sehen Dieses Zertifikat durch Aufnahme einer signierten EXE-Datei, dann im Dialogfeld Eigenschaften von Explorer auf die Registerkarte Digitale Signaturen, Auswahl der Signatur und Klicken Details, dann im Dialogfeld Digitale Signatur Details auf die Gegensignatur klicken und Details, dann in der zweiten digitalen Signatur Details: Klicken Sie auf View Certificate Das Zertifikat ist ein SHA-1-Zertifikat, wenn sein Signatur-Hash-Algorithmus 'sha1' ist.)

Wird dies ein Problem sein? Mit anderen Worten, nachdem unser aktuelles Codesignaturzertifikat abgelaufen ist und nachdem Microsoft Windows SHA-1 als einen fehlerhaften Algorithmus (der spätestens 2020 ist) behandelt, werden unsere aktuellen Signaturen immer noch vertrauenswürdig sein? Oder wird Windows sagen: "Der Zeitstempel befindet sich im Gültigkeitsbereich des Codesignaturzertifikats, aber der Zeitstempel wurde mit einem SHA-1-Zertifikat signiert, daher vertraue ich dem Zeitstempel nicht und daher vertraue ich dieser Signatur nicht"?

Gibt es einen anderen Dienst, den wir verwenden können/sollten? (Nicht Verisign http://timestamp.verisign.com/scripts/timstamp.dll, da sie auch noch einen SHA-1 Zertifikat-Stanzen verwenden, nämlich 6.543.992 ....)

+0

Haben Sie versucht, comodo support zu fragen? – MrTux

+0

Fügen Sie das Flag/td SHA256 hinzu, wenn Sie SignTool.exe wie unten beschrieben aufrufen. Dies funktioniert mit dem Comodo Timestamping Server. –

Antwort

1

Update: Sieht aus wie Sie, bis 1/1/2017 ok sind.

Möglicherweise, aber dank this Artikel, ich entdeckte, wie man ein SHA-256 Zeitstempel-Zertifikat erhalten. Ich habe nur einen Zeitstempelserver gefunden, der es tun kann: http://timestamp.globalsign.com/?signature=sha2

Die signtool/td Flagge ist auch wichtig (und schlecht dokumentiert).

Signieren wie folgt aus:

signtool sign /fd SHA256 /tr http://timestamp.globalsign.com/?signature=sha2 /td SHA256 /a filename.exe

Ergebnisse in ein ausführbares Codezeichen mit einem Zertifikat und Zeitstempel-Zertifikat mit SHA-256 Signatur-Hash-Algorithmus.

+1

Das Flag/td ist kritisch. Es funktioniert auch mit dem Timestamping-Server von Comodo. –

+1

Sieht so aus, als ob Comodo endlich ihren Server repariert hat. http://netez.com/bbs/viewtopic.php?t=11065#p69307 –

1

Sie können Ihr SHA-2-Zertifikat verwenden, um Code doppelt zu signieren, so dass er unter XPsp3 und Vista (die SHA-2 nicht verstehen) sowie späteren Betriebssystemen (Win 7, 8, 10) validiert.

Es ist ein zweistufiger Prozess, der zuerst mit SHA-1 signiert und dann eine SHA-256-Signatur anfügt. Obwohl es nicht explizit ist, wird bei der ersten Ausführung von signtool die SHA-1-Signatur verwendet. Im zweiten Lauf fordern Sie den Algorithmus sha256 digest mit der Option/fd an. Die Zeitserver in diesem Beispiel sind Comodos.

Sie müssen eine Version von signtool verwenden, die duales Signieren unterstützt (die Option/as). Ich glaube, das ist Windows SDK Version 8.1 oder höher.

Wenn Sie dies getan haben, überprüfen Sie die Sicherheitseigenschaften der ausführbaren Datei, und Sie sollten sowohl SHA-1 und SHA-256-Signaturen (unter späteren Betriebssystemen) sehen, aber nur die SHA-1-Signatur unter XP/VISTA.

Beachten Sie, dass andere Zeitserver unterschiedliche Optionen zum Festlegen des Digest-Algorithmus haben. Ihre ausstellende Zertifizierungsstelle sollte in der Lage sein, die entsprechenden URLs anzugeben.