Beheben Sie Probleme mit der Java-Codesignatur, die durch ein abgelaufenes Zeitstempel-Zertifikate verursacht werden

Software, die mit Java-Code entwickelt und mit einem Code Signing Zertifikat signiert wurde, sollte erneut signiert werden, falls der Code von dem timestamp.comodoca.com bereitgestellten Zeitstempeldienst mit einem vor dem 4. März 2019 ausgestellten Zertifikat signiert wurde. Das Zeitstempelzertifikat läuft am 9. Juli ab 2019.

Ursache

Obwohl die Signatur, die über das Code Signing Zertifikat selbst angewendet wird, nicht abläuft, muss die Signatur erfolgen solange das Code Signing Zertifikat gültig ist, damit eine digitale Signatur als gültig betrachtet wird. Dies macht es erforderlich zu wissen, wann die Signatur angewendet wurde.

Eine Methode, um sicherzustellen, daß die Signatur mit einem gültigen Code Signing Zertifikat abgeschlossen wurde, besteht darin, nur Code zu akzeptieren, der mit Zertifikaten signiert ist, die zum Zeitpunkt der Signaturüberprüfung noch gültig sind. Das Problem bei diesem Ansatz ist, daß der Code einmal im Jahr neu signiert und neu verteilt werden muss, auch wenn sich der Code selbst nicht geändert hat. Für die Unterstützung der Langzeitvalidierung (LTV) ist es einfacher, eine bestimmte Version Ihrer Software mithilfe eines Zeitstempels zu signieren. Dies belegt, daß die digitale Signatur zum Zeitpunkt der Signierung gültig war.

Das timestamp.comodoca.com Zeitstempeldienstzertifikat läuft in Kürze ab. Dies bedeutet, daß (bestimmte) Java-Anwendungen mit dem neuen Zeitstempeldienst unter timestamp.sectigo.com neu signiert werden müssen. Dies liegt daran, daß Java die Gültigkeit sowohl der Codesignatur als auch des Zeitstempelzertifikats überprüft und das Programm als nicht signiert oder ungültig betrachtet, wenn die Codesignatur oder das Zeitstempelzertifikat abgelaufen ist.

Auswirkung

Das Problem betrifft alle Java-basierten Anwendungen, die mit einem Sectigo (Comodo) Code Signing Zertifikat signiert sind, das bereits abgelaufen ist oder am 9. Juli 2019 abläuft und einen Zeitstempel von timestamp.comodoca.com enthält. Benutzer und Prozesse, die die Anwendung verwenden, können dadurch Probleme bekommen. Nach Ablauf des Zeitstempel-Zertifikats können Java-Anwendungen nicht mehr davon ausgehen, daß der Zeitstempel erstellt wurde, da das Zertifikat gültig war. Infolgedessen kann nicht mehr bestätigt werden, daß die Originalsignatur vor Ablauf des Code Signing Zertifikats erstellt wurde.

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob Ihre signierten JAR-Dateien betroffen sind:

 C:\>"\Program Files\Java\jdk-12.0.1\bin\jarsigner.exe" -verify signed_file.jar

In folgenden Fällen muss neu signiert werden:

Die Anwendung muss sofort neu signiert werden, wenn die Überprüfung der JAR-Datei folgenden Text ergibt. Dies erfordert ein Code Signing Zertifikat, welches noch gültig ist:

 The timestamp will expire within one year on 2019-07-09. However, the JAR will be valid until the signer certificate expires on 2019-07-09 (or earlier).

Signieren Sie das Programm erneut, bevor das aktuelle Code Signing Zertifikat abläuft, wenn das Ergebnis vom 'jar verify' den folgenden Text enthält:

 The timestamp will expire within one year on 2019-07-09. However, the JAR will be valid until the signer certificate expires on 2019-07-10 (or later).

Lösung

Um eine langfristige Validierung für ein signiertes Java-Programm zu gewährleisten, müssen Sie das Programm erneut mit dem TSA-Service unter http://timestamp.sectigo.com signieren. Alle neuen Zeitstempel sind ab dem Datum der Signierung mehr als zehn Jahre gültig.

Weitere Informationen

Weitere Informationen finden Sie in der Sectigo Knowledgebase

SSLCheck

SSLCheck überprüft, ob Ihr Zertifikat ordnungsgemäß auf Ihrem Server installiert ist und ob es potenzielle Probleme gibt.

point up