Løs Java signatur problemer forårsaget af udløbet tidsstempling certifikat

Software udviklet ved hjælp af Java og underskrevet med et code signing certifikat skal underskrives igen, hvis koden er underskrevet af tidsstemplingservice leveret af timestamp.comodoca.com ved et certifikat udstedt før 4. marts 2019. Tidsstemplingcertifikatet udløber den 9. juli , 2019.

Årsag

Selvom signaturen, der anvendes via et kodesigneringscertifikat som er valid, skal signering, for at en digital signatur kan betragtes som gyldig, ske mens kodesigneringscertifikatet er gyldigt. Dette gør det nødvendigt at vide, hvornår signaturen blev anvendt.

En metode til at sikre, at signaturen blev gennemført med et gyldigt kodesigneringscertifikat, er kun at acceptere kode som er signeret med certifikater som stadig er gyldige på tidspunktet hvor signaturen kontrolleres. Problemet med denne tilgang er, at man ville være nød til at resignere og redistribuere koden en gang om året, selv om selve koden ikke har ændret sig. I forbindelse med understøttelse af langtids validering (LTV) er det nemmere at signere en bestemt version af din software ved hjælp af tidsstempling. Dette beviser, at den digitale signatur var gyldig på tidspunktet for signeringen.

Certifikatet for timestamp.comodoca.com tidsstemplingtjenesten er ved at udløbe. Det betyder (visse) Java-programmer bør re-signeres ved hjælp af den nye tidsstempeltjeneste på timestamp.sectigo.com. Dette skyldes, at Java kontrollerer gyldighed på både kodesignerings og tidsstemplingcertifikatet og anser programmet for usigneret eller ugyldigt, hvis kode signerings eller tidsstemplingscertifikatet er udløbet.

Konsekvenser

Problemet har indflydelse på alle Java-baserede applikationer, der er underskrevet med et Sectigo (Comodo) kodesigneringscertifikat, der allerede er udløbet eller udløber inden den 9. juli 2019, og der indeholder en tidsstempel fra timestamp.comodoca.com. Brugere og processer, der bruger applikationen, kan opleve problemer som følge heraf. Når tidsstemplingscertifikatet er udløbet, kan Java-applikationer ikke længere antage, at tidsstemplet blev lavet, da certifikatet var gyldigt. Som følge heraf kan det ikke længere bekræftes, at den oprindelige signatur blev oprettet, før kodesignaturcertifikatet er udløbet.

Hvis du vil kontrollere, om dine signerede JAR filer påvirkes, kan du bruge følgende kommando:

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

Følgende tilfælde kræver en resignering:

Applikationen skal straks resigneres, når kontrollen af JAR filen udgiver følgende tekst. Dette kræver et kodesigneringscertifikat, der stadig er gyldigt:

 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).

Signer programmet igen, inden det nuværende kodesignaturcertifikat udløber, hvis resultatet 'jar verify' indeholder teksten herunder:

 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øsning

For at garantere langsigtet validering for et signeret Java-program, skal du signere programmet igen med TSA-tjenesten, der kan nås via http://timestamp.sectigo.com. Alle nye tidsstempler er gyldige i mere end ti år fra signeringstidspunktet.

Yderligere oplysninger

Yderligere oplysninger kan findes i Sectigo knowledgebase

SSLCheck

SSLCheck kontrollerer, om dit certifikat er korrekt installeret på din server og om der potentielt er problemer.

point up