SHA-2 Code Signing-Fragen

1324
Vlastimil

Zuallererst ist dies meine erste Erfahrung mit Code Signing .

Ich habe 3 Jahre lang Standard Code Signing von Certum gekauft .

Es basiert auf SHA-2 :

Gesichert durch die SHA-2- Funktion

Sie sind alle normale ausführbare Dateien von Windows . für Endbenutzer, sowohl tragbare als auch Installationsprogramme.

Fragen:

  1. Unter Berücksichtigung der Tatsache, dass das Zertifikat am 10. 10. 2016 ausgestellt wurde, dh, beeinflusst dies nach dem 1. 1. 2016 irgendwie das Verhalten der Signatur? Ich frage dies im Namen der Lektüre über die Abwertung von SHA-1, zB:

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

  2. Soll ich auch einen Zeitstempel haben? Wofür ist das gut? Gibt es irgendwelche Nachteile von Zeitstempeln? Ich habe das gefunden, was die Dinge nicht wirklich klar macht:

    Zeitstempel sollten verwendet werden, wenn die Signatur (zum Nachweis der Authentizität des Urhebers oder des Urhebers) langfristig verwendet werden soll, dh länger als ein oder mehrere Tage. ( Quelle )

  3. Angenommen, ich würde die Unterstützung für XP und Vista aufgeben. Funktioniert die SHA-2- Codesignatur unter Windows 7 ordnungsgemäß? Ich habe auf DigiCert gelesen, dass die Unterstützung von SHA-2 Code Signing unter Windows 7 teilweise ist:

    Detaillierte Betriebssystemkompatibilität: Windows 7 Partial ( Source )

  4. Es gibt ein Chaos um das Cross-Signing von SHA-2 (insbesondere SHA-256) und SHA-1 . Angenommen, ich unterstütze, wie gesagt, WinXP und Vista nicht mehr. Benötige ich das?

4

1 Antwort auf die Frage

7
grawity

Unter Berücksichtigung der Tatsache, dass das Zertifikat am 10. 10. 2016 ausgestellt wurde, dh, beeinflusst dies nach dem 1. 1. 2016 irgendwie das Verhalten der Signatur? Ich frage dies im Namen der Lektüre über die Abwertung von SHA-1, zB:

Nein, das geht nicht.

Soll ich auch einen Zeitstempel haben? Wofür ist das gut? Gibt es irgendwelche Nachteile von Zeitstempeln?

Zeitstempel sind ein Beweis für einen Dritten, dass die Signatur tatsächlich zu einem bestimmten Zeitpunkt erstellt wurde und nicht nur das Ergebnis des Zurückziehens der Uhr Ihres Computers war.

In erster Linie werden Zeitstempel verwendet, um nachzuweisen, dass die Signatur vor Ablauf des Zertifikats oder vor dem Widerruf des Zertifikats vorgenommen wurde.

Wenn beispielsweise der private Signaturschlüssel einer Person ausläuft und sie ihr Zertifikat widerrufen, bedeutet dies normalerweise, dass alle Signaturen (früher und zukünftig) ungültig werden. Signaturen mit Zeitstempel können jedoch gültig bleiben, da bekannt ist, dass sie vor dem Widerruf gemacht wurden.

Die SHA-1-Ablehnung in Windows Authenticode scheint auch mit einem Zeitstempel zu arbeiten, so dass alte Programme, die mit SHA-1 signiert wurden, immer noch als korrekt signiert angezeigt werden, während nach dem Abbruch von "Backdating" keine neuen Signaturen mehr Personen zugelassen werden.

Da es viele freie & öffentliche Zeitstempelbehörden gibt, gibt es keinen Grund, dies nicht zu tun.

Angenommen, ich würde die Unterstützung für XP und Vista aufgeben. Funktioniert die SHA-2-Codesignatur unter Windows 7 ordnungsgemäß?

Es gibt ein Chaos um das Cross-Signing von SHA-2 (insbesondere SHA-256) und SHA-1. Angenommen, ich unterstütze, wie gesagt, WinXP und Vista nicht mehr. Benötige ich das?

Beachten Sie zunächst, dass SHA-1 / SHA-2 an mehreren Stellen beteiligt ist. Sie wird separat verwendet, wenn die ausstellende Zertifizierungsstelle Ihr Zertifikat signiert und wenn Sie die eigentliche ausführbare Datei signieren (und selbst wenn die Zeitstempelbehörde Ihre Unterschrift gegenzeichnet .). Mit anderen Worten, es gibt eine Reihe von Signaturen, und jeder einzelne hat seinen eigenen Hash.

Es ist auch möglich, dass Signaturen auf Zertifikaten durch einen anderen Code als Signaturen für ausführbare Dateien überprüft werden, und einer kann SHA-2 unterstützen, der andere jedoch noch nicht.

Die tatsächliche Situation ist also, dass Windows XP SP3 vollständig mit SHA-2 signierte Zertifikate unterstützt. Es werden lediglich keine mit SHA-2 signierten ausführbaren Dateien unterstützt . Dies ist in KB 968730 erwähnt, auch dieser TechNet-Beitrag .

In Authenticode ist es jedoch möglich, mehrere Signaturen zur gleichen ausführbaren Datei hinzuzufügen ( Dual-Signing oder Nested Signing), sodass Sie für ältere Systeme eine SHA-1-basierte Signatur und für neuere eine SHA-2-basierte Signatur verwenden können.

Mit osslsigncodekönnen Sie zuerst eine SHA-1-Signatur erstellen -h sha1und dann erneut ausführen -nest -h sha256, um eine SHA-2 -Signatur hinzuzufügen. Dasselbe funktioniert mit signtool sign /as /fd sha256 /td sha256(Signatur anhängen). Die nächtlichen PuTTY-Builds sind beispielsweise doppelt signiert und funktionieren mit allen Windows-Versionen, obwohl ein mit SHA-256 signiertes Zertifikat verwendet wird.

(Ich zähle nicht XP SP2 und älter, da gut.)

Für den Fall, dass ich einen Zeitstempel haben möchte und nur mit sha256, wäre dies der Fall, wenn ich das Zertifikat in mein lokales Repository importiert habe: `signtool sign / fd SHA256 / a / tr http://time.certum.pl" exe "`? Vlastimil vor 7 Jahren 0
Der andere Vorteil des Zeitstempels besteht darin, dass die signierte Überprüfung auch nach Ablauf des Zertifikats weiterhin erfolgreich ist. Wenn Sie also jetzt einen Zeitstempel haben, wird Ihre App noch in 4 Jahren ausgeführt Matthew Steeples vor 7 Jahren 1