Stavo leggendo What happens when a code signing certificate expires - Stack Overflow e mi chiedevo una risposta più solida. La risposta fornita era più sulla configurazione della propria CA. Anche con la tua CA, dovrai comunque gestire i certificati di codice in scadenza.Come posso evitare di dover ripetere il mio codice ogni 1 o 2 anni?
Se il codice è stato firmato senza utilizzare un servizio di timestamp, dopo la scadenza del certificato il codice non sarà più affidabile e, a seconda delle impostazioni di sicurezza, potrebbe non essere possibile eseguirlo. Dovrai ri-firmare tutto il tuo codice con un nuovo certificato, o con un certificato rinnovato, ogni 1 o 2 anni.
Il timestamp affidabile (digitale) consente alla firma digitale di essere valida anche dopo la scadenza del certificato stesso. Dovresti re-firmare il codice con il nuovo certificato solo se hai apportato delle modifiche.
Tutto ciò sembra corretto? In tal caso, ho bisogno di raccomandazioni su quale servizio di timestamp utilizzare, preferibilmente da qualcuno che ne ha effettivamente usato uno. Mi piacerebbe anche sapere se ci sono soluzioni in-house, simili ad essere la tua CA.
In questo momento si applica agli script di PowerShell, ma alla fine avrò lo stesso problema con un altro codice.
Aggiornamento: Esempio di come firmare uno script PS con un timestamp (si può fare uno script per questo):
Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1"
-cert gci cert:\CurrentUser\My -codesigning
| where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
-IncludeChain All
-TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
Poi, per vedere il certificato e TimeStamper Certificato Signer, si può fare questo:
Get-AuthenticodeSignature MyFile.ps1 | fl *
ti dà il soggetto (CN, OU, ecc), Emittente, Prima/Dopo Date e impronte digitali sia per il cert e cert del TimeStamper. Riceverai anche un messaggio che indica lo stato della firma.
+1: idea generale: utilizzare un provider attendibile a livello globale. –
Con Verisign e Thawte hai anche il timestamp? Senza il timestamping, alcuni sistemi non si lamentano del fatto che il certificato sia scaduto e non eseguono il codice? – Bratch
@Bratch: Sì, è necessario utilizzare il proprio server timestamp. Non abbiamo mai pubblicato senza di esso quindi non posso commentare applicazioni non datate. –