2015-06-03 21 views
8

Abbiamo appena passato da un SHA-1 a un certificato di firma del codice SHA-2. (Come informazioni di base, firmiamo file .exe e .xap su Windows con signtool.exe, usando i certificati di firma del codice COMODO.) Lo facciamo usando un timestamp certificato, per assicurarci che Windows continui a fidarsi della firma del codice dopo il certificato di firma del codice scade.Se/come evitare la data/ora firmata SHA-1 durante la firma del codice?

Ora ho notato che il certificato di data/ora è ancora un certificato SHA-1, quando si utilizza http://timestamp.comodoca.com/authenticode. (Dettagli: È df946a5 ... con Oggetto 'CN = COMODO Time Stamping Signer, O = COMODO CA limitato, L = Salford, S = Greater Manchester, C = GB'.)

(Su Windows si vede quel certificato prendendo un .exe firmato, quindi nella sua finestra di dialogo Proprietà Explorer andare alla scheda Firme digitali, selezionare la firma e fare clic su Dettagli, quindi nella finestra di dialogo Dettagli firma digitale fare clic sulla controfirma e fare clic su Dettagli, quindi nella seconda firma digitale La finestra di dialogo Dettagli fa clic su Visualizza certificato.Il certificato è un certificato SHA-1 se il suo 'Algoritmo firma hash' è 'sha1'.)

Questo sarà un problema? In altre parole, dopo che il nostro attuale certificato di firma del codice è scaduto, e dopo che Microsoft Windows considera SHA-1 come un algoritmo rotto (che è al più tardi nel 2020), le firme attuali saranno ancora attendibili? O Windows dirà, "Il timestamp rientra nell'intervallo di validità del certificato di firma del codice, ma il timestamp è stato firmato con un certificato SHA-1, quindi non mi fiderò del timestamp, e quindi non mi fiderò di questa firma"?

C'è un altro servizio che possiamo/dovremmo usare? (Non Verisign di http://timestamp.verisign.com/scripts/timstamp.dll, dal momento che anche ancora utilizzano un tempo di SHA-1 stamping certificato, cioè 6.543.992 ....)

+0

Provato a chiedere supporto comodo? – MrTux

+0

Aggiungere il flag/td SHA256 quando si chiama SignTool.exe, come descritto di seguito. Funziona con il server di timestamping Comodo. –

risposta

1

Aggiornamento: Sembra che tu stai bene fino 1/1/2017.

Probabilmente, ma grazie all'articolo this, ho scoperto come ottenere un certificato di timestamp SHA-256. Ho trovato solo un server timestamp in grado di farlo: http://timestamp.globalsign.com/?signature=sha2

Anche il flag signtool/td è importante (e scarsamente documentato).

firma in questo modo:

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

risultati in un eseguibile con un certificato del segno di codice e il certificato timestamp con SHA-256 algoritmo di firma hash.

+1

Il flag/td è fondamentale. Funziona anche con il server Timestamping di Comodo. –

+1

Sembra che Comodo abbia finalmente aggiustato il loro server. http://netez.com/bbs/viewtopic.php?t=11065#p69307 –

1

È possibile utilizzare il certificato SHA-2 per il codice a doppio segno in modo che venga convalidato con XPsp3 e Vista (che non comprendono SHA-2) e sistemi operativi successivi (Win 7, 8, 10).

È una procedura in due passaggi che prima firma con SHA-1, quindi aggiunge una firma SHA-256. Sebbene non sia esplicito, la prima esecuzione di signtool ha come impostazione predefinita la firma SHA-1. Nella seconda esecuzione, si richiede l'algoritmo digest sha256 con l'opzione/fd. I server di tempo in questo esempio sono di Comodo.

signtool sign /f cert.pfx /p your_cert_password /t "http://timestamp.comodoca.com" /v file_to_sign.exe 

signtool sign /f cert.pfx /p your_cert_pass /fd sha256 /tr "http://timestamp.comodoca.com/?td=sha256" /td sha 256 /as /v file_to_sign.exe 

È necessario utilizzare una versione di signtool che supporta la doppia firma (l'opzione/come). Credo che sia Windows SDK versione 8.1 o successiva.

Al termine, controllare le proprietà di sicurezza dell'eseguibile e si dovrebbero vedere sia le firme SHA-1 che SHA-256 (in sistemi operativi successivi) ma solo la firma SHA-1 in XP/VISTA.

Si noti che altri server di tempo hanno opzioni diverse per specificare l'algoritmo del digest. La CA di emissione dovrebbe essere in grado di fornire gli URL appropriati.