\\ Home Page : Articolo : Stampa
Firmare digitalmente setup e patch
Di Marco Tenuti (del 01/07/2016 @ 10:35:48, in Windows, linkato 1120 volte)

Un problema sempre più stringente è il rilascio di patch, installer o piccoli eseguibili sulle ultime versioni di Windows da parte di sviluppatori indipendenti o piccole software house. Quando si scaricano questi file dai siti di distribuzione e si stanno per eseguire sulla macchina Windows - generalmente Windows 7, 8.1 o Windows 10 - compare sempre più spesso l'impossibilità apparente di Windows di farlo partire in quando potenzialmente pericoloso.

Nella fattispecie è Windows SmartScreen a bloccato ed a segnalare la dubbiosità della provenienza con un'indicazione del tipo Autore sconosciuto. Tale indicazione avviene se si prova a lanciare l'eseguibile, appena è stato completato il suo scaricamento dal browser.

Autore sconosciuto in Smartscreen

L'utente ignaro non sa come comportarsi e difficilmente riesce ad intuire che è necessario cliccare sul testo Ulteriori informazioni, per ritrovarsi il dialogo di Smartscreen leggermente modificato e con la comparsa del bottone Esegui comunque.

L'indicazione del testo Autore sconosciuto lascia ulteriormente l'utente nel panico, che rimane pertanto molto diffidente nel cliccare il bottone con cui far partire il setup.

Ad aumentare un altro po' la diffidenza è la richiesta del Controllo Account Utente che segnala il fatto che l'eseguibile pretende di passare alla modalità di amministratore, cosa necessaria per poter collocare o sostituire file eseguibili dentro le installazioni dei programmi o del sistema operativo.

Anche nella richiesta di escalation, ricompare la dubbiosità sulla provenienza, cioè ricompare l'indicazione Autore sconosciuto:

Autore sconosciuto nell'escalation

Per gestire questa problematica e identificare quantomeno il suo autore, un'azione da intraprendere è quella di firmare digitalmente l'esegubile, iniettandoci dentro l'autore e firmando digitalmente l'intero eseguibile con un certificato, in modo che chiunque possa verificare in qualsiasi momento l'integrità del file e che il suo contenuto non sia stato compromesso: la modifica di un solo bit farebbe saltare la verifica dell'intero contenuto rispetto al certificato presente al suo interno.

Per firmare digitalmente un eseguibile, come ad esempio un installer prodotto da Inno Setup, è sufficiente creare un file batch (.BAT) il cui contenuto dovrebbe essere:

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" sign /f certificato_codesigning_installer.pfx /p laTuaPassword /t http://timestamp.verisign.com/scripts/timstamp.dll MySignedSetup.exe

dove

"c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe" è il percorso completo dell'applicazione Microsoft per firmare digitalmente i file (parte del Microsoft SDK o di qualsiasi distribuzione di Microsoft Visual Studio)

certificato_codesigning_installer.pfx è il tuo certificato, che puoi aver generato tu o essere stato generato da un'autorità certificante (Certificate Authority, CA)

laTuaPassowrd è la password associata al tuo certificato e che ti è stata assegnata dalla CA quando ti è stato rilasciato il certificato

MySignedFile.exe è il tuo file di setup che vuoi certificare

Si consiglia di mettere tutti i file sopraddetti in una sola cartella - il file batch, il certificato ed il setup da firmare - e poi basta eseguire il barch. Signtool firmerà il file col certificato e ne controllerà la validità appoggiandosi al server ufficiale.

Puoi usare il server http://timestamp.verisign.com/scripts/timstamp.dll, anche se hai un certificato rilasciato da Comodo.