SignTool.exe (strumento per la firma)
SignTool.exe è uno strumento della riga di comando che consente di eseguire alcune operazioni sui file: apporre una firma digitale, verificare le firme già presenti e aggiungere un time stamp.
Questo strumento viene installato automaticamente con Visual Studio e con Windows SDK. Per eseguire lo strumento, si consiglia di utilizzare il prompt dei comandi di Visual Studio o il prompt dei comandi di Windows SDK (shell di CMD). Queste utilità consentono di eseguire facilmente lo strumento, senza dover passare alla cartella di installazione. Per ulteriori informazioni, vedere Prompt dei comandi di Visual Studio e Windows SDK.
Se si dispone di Visual Studio installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic su Visual Studio, fare clic su Visual Studio Tools e quindi su Visual Studio Command Prompt.
In alternativa
Se si dispone di Windows SDK installato sul computer: nella barra delle applicazioni, fare clic su Start, fare clic su All Programs, fare clic sulla cartella di Windows SDK e quindi su Command Prompt (o CMD Shell).
Al prompt dei comandi digitare quanto segue:
signtool [command] [options] [file_name | ...]
Parametri
Argomento |
Oggetto di descrizione |
---|---|
command |
Uno dei quattro comandi (catdb, sign, Timestamp, oppure Verify) che specifica l'operazione da eseguire su un file. Per una descrizione di ogni comando, vedere la tabella successiva. |
options |
Opzione che modifica un comando. Oltre a /q e le opzioni globali di /v, ciascun comando supporta un set univoco di opzioni. |
file_name |
Il percorso di un file da firmare. |
SignTool.exe supporta i comandi seguenti: Ogni comando è utilizzato con il set distinto di opzioni elencate nelle rispettive sezioni.
Comando |
Oggetto di descrizione |
---|---|
catdb |
Aggiunge o rimuove un file catalogo da un database dei cataloghi. I database del catalogo vengono utilizzati per la ricerca automatica di file catalogo e sono identificati dal GUID. Per un elenco delle opzioni supportate dal comando catdb, vedere Opzioni di comando catdb |
sign |
Firma digitalmente i file. Le firme digitali impediscono l'alterazione dei file e consentono agli utenti di verificare il firmatario in base a un certificato di firma. Per un elenco delle opzioni supportate dal comando sign, vedere opzioni del comando Sign |
Timestamp |
Aggiunge il timestamp ai file. Per un elenco delle opzioni supportate dal comando TimeStamp, vedere Opzioni di comando timestamp |
Verify |
Verifica la firma digitale dei file determinando se il certificato di firma è stato emesso da un'autorità trusted, se è stato revocato e, facoltativamente, se è valido per criteri specifici. Per un elenco delle opzioni supportate dal comando Verify, vedere Opzioni di verifica del comando |
Le opzioni riportate di seguito si applicano a tutti i comandi di SignTool.exe.
Opzione Global |
Oggetto di descrizione |
---|---|
/q |
Non viene prodotto alcun output per indicare la corretta esecuzione e un output minimo per indicare che l'esecuzione non è riuscita. |
/v |
Output dettagliato per indicare la corretta esecuzione, l'esecuzione non riuscita e messaggi di avviso. |
Opzioni di comando catdb
Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando catdb.
Opzione Catdb |
Oggetto di descrizione |
---|---|
/d |
Specifica che il database dei cataloghi predefinito viene aggiornato. Se non si utilizza né l'opzione /d né l'opzione /g, il database dei driver e dei componenti del sistema viene aggiornato. |
/g GUID |
Specifica che il database dei cataloghi identificato dal GUID viene aggiornato. |
/r |
Rimuovi i cataloghi specificati dal database dei cataloghi. Se questa opzione non è specificata, il catalogo specificato viene aggiunto al database dei cataloghi. |
/u |
Specifica che un nome univoco viene generato automaticamente per i file catalogo aggiunti. Se necessario, i file catalogo vengono rinominati per evitare conflitti con i nomi dei file catalogo esistenti. Se questa opzione non è specificata, i cataloghi esistenti che hanno lo stesso nome del catalogo aggiunto vengono sovrascritti. |
opzioni del comando Sign
Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando sign.
Opzioni del comando Sign |
Oggetto di descrizione |
---|---|
/a |
Seleziona automaticamente il miglior certificato di firma. Sign Tool eseguirà la ricerca di tutti i certificati validi che soddisfano tutte le condizioni specificate e selezionerà quello valido per il tempo massimo. Se questa opzione non è presente, è prevista la presenza di un solo certificato di firma valido. |
/ac file |
Aggiunge un altro certificato dal file al blocco firma. |
/c NomeModelloCert |
Specifica un'estensione Microsoft, Certificate Template Name, per il certificato di firma. |
/csp NomeCSP |
Specifica il provider del servizio di crittografia (CSP) che contiene il contenitore di chiavi private. |
/d Desc |
Specifica una descrizione del contenuto firmato. |
/du URL |
Specifica un URL (Uniform Resource Locator) per la descrizione estesa del contenuto firmato. |
/f SignCertFile |
Specifica il certificato di firma in un file. Se il file è nel formato PFX (Personal Information Exchange) ed è protetto da una password, utilizzare l'opzione /p per specificare la password. Se il file non contiene chiavi private, utilizzare le opzioni /csp e /k per specificare la CSP e il nome del contenitore della chiave privata. |
/fd |
Specifica l'algoritmo di classificazione del file da utilizzare per creare le firme del file. L'impostazione predefinita è SHA1. |
/i Nomeautoritàemittente |
Specifica il nome dell'emittente del certificato di firma. Questo valore può essere una sottostringa dell'intero nome dell'emittente. |
/kc NomeContenitoreChiavePrivata |
Specifica il nome del contenitore di chiavi private. |
/n NomeOggetto |
Specifica il nome del soggetto del certificato di firma. Questo valore può essere una sottostringa dell'intero nome del soggetto. |
/nph |
Se supportato, sopprime hash delle pagine per i file eseguibili. L'impostazione predefinita è determinata dalla variabile di ambiente SIGNTOOL_PAGE_HASHES e dalla versione di wintrust.dll. |
/p Password |
Specifica la password da utilizzare all'apertura di un file PFX. (Utilizzare l'opzione /f per specificare un file PFX). |
/ph |
Se supportato, genera hash delle pagine per i file eseguibili. |
/r RootSubjectName |
Specifica il nome del soggetto del certificato radice cui deve essere concatenato il certificato di firma. Questo valore può essere una sottostringa dell'intero nome del soggetto del certificato radice. |
/s NomeArchivio |
Specifica l'archivio da aprire durante la ricerca del certificato. Se questa opzione non è specificata, viene aperto l'archivio My. |
/sha1 Hash |
Specifica l'hash SHA1 del certificato di firma. |
/sm |
Specifica che viene utilizzato un archivio della macchina anziché un archivio utente. |
/t URL |
Specifica l'URL del server del time stamp. Se questa opzione (o /tr) non è presente, al file firmato non verrà aggiunto il time stamp. Se l'aggiunta del time stamp non viene eseguita correttamente, viene generato un avviso. Non è possibile utilizzare questa opzione con l'opzione /tr. |
/td alg |
Utilizzato con l'opzione /tr per richiedere un algoritmo digest utilizzato dal server di timestamp RFC 3161. |
/tr URL |
Specifica l'URL del server del time stamp RCF 3161. Se questa opzione (o /t) non è presente, al file firmato non verrà aggiunto il time stamp. Se l'aggiunta del time stamp non viene eseguita correttamente, viene generato un avviso. Non è possibile utilizzare questa opzione con l'opzione /t. |
/u Utilizzo |
Specifica l'utilizzo chiavi avanzato (EKU) che deve essere presente nel certificato di firma. Il valore di utilizzo può essere specificato tramite OID o stringa. L'utilizzo predefinito è "Firma codice" (1.3.6.1.5.5.7.3.3). |
/uw |
Specifica l'utilizzo della verifica dei componenti di sistema Windows" (1.3.6.1.4.1.311.10.3.6). |
Opzioni di comando timestamp
Nella tabella seguente vengono illustrate le opzioni utilizzabili con il comando TimeStamp.
Opzione timestamp |
Oggetto di descrizione |
---|---|
/t URL |
Specifica l'URL del server del time stamp. È necessario che il file a cui viene aggiunto il time stamp sia stato precedentemente firmato. L'opzione /t o /tr è obbligatoria. |
/td alg |
Richiede un algoritmo digest utilizzato dal server di timestamp RFC 3161. /td viene utilizzato insieme all'opzione /tr. |
/tr URL |
Specifica l'URL del server del time stamp RCF 3161. È necessario che il file a cui viene aggiunto il time stamp sia stato precedentemente firmato. L'opzione /tr o /t è obbligatoria. |
Opzioni di verifica del comando
Opzione di verifica |
Oggetto di descrizione |
---|---|
/a |
Specifica che tutti i metodi possono essere utilizzati per verificare il file. Innanzitutto, viene effettuata una ricerca nei database dei cataloghi per determinare se il file è firmato in un catalogo. Se non risulta firmato in alcun catalogo, viene effettuato un tentativo di verificare la firma incorporata del file. Questa opzione è consigliata durante la verifica di file che all'interno di un catalogo possono risultare firmati o non firmati, Gli esempi di questi file includono i file o i driver di Windows. |
/ad |
Trova il catalogo utilizzando il database dei cataloghi predefinito. |
/as |
Trova il catalogo utilizzando il database dei cataloghi (driver) dei componenti del sistema. |
/ag CatDBGUID |
Trova il catalogo nel database dei cataloghi identificato dal CatDBGUID. |
/c CatFile |
Specifica il file catalogo in base al nome. |
/d |
Specifica che Sign Tool deve visualizzare la descrizione e la descrizione URL. |
/kp |
Specifica che la verifica deve essere eseguita con i criteri di firma del driver in modalità kernel. |
/o Versione |
Verifica il file in base alla versione del sistema operativo. La versione ha la seguente forma: PlatformID:VerMajor.VerMinor.BuildNumber |
/pa |
Specifica che devono essere utilizzati i criteri di verifica Authenticode predefiniti. Se l'opzione /pa non è specificata, vengono utilizzati i criteri di verifica dei driver di Windows. Non è possibile utilizzare questa opzione con le opzioni catdb. |
/pg GUIDCriteri |
Specifica i criteri di verifica del GUID. Il PolicyGUID corrisponde all'ActionID dei criteri di verifica. Non è possibile utilizzare questa opzione con le opzioni catdb. |
/ph |
Specifica che Sign Tool deve visualizzare e verificare i valori hash della pagina. |
/r RootSubjectName |
Specifica il nome del soggetto del certificato radice cui deve essere concatenato il certificato di firma. Questo valore può essere una sottostringa dell'intero nome del soggetto del certificato radice. |
/tw |
Specifica che, se la firma non contiene un time stamp, deve essere generato un avviso. |
Valore restituito
Sign Tool restituisce uno dei seguenti codici di uscita quando termina.
Codice di uscita |
Oggetto di descrizione |
---|---|
0 |
Esecuzione completata correttamente. |
1 |
Esecuzione non riuscita. |
2 |
Esecuzione completata con avvisi. |
Esempi
Mediante il seguente comando viene aggiunto il file di catalogo MyCatalogFileName.cat al database del driver e di un componente di sistema. L'opzione /v genera un nome univoco, se necessario, per impedire la sostituzione di un file di catalogo esistente denominato MyCatalogFileName.cat.
signtool catdb /v /u MyCatalogFileName.cat
Nel comando seguente viene automaticamente apposta la firma a un file utilizzando il certificato migliore.
signtool sign /a MyFile.exe
Il comando seguente consente di apporre una firma digitale a un file utilizzando un certificato archiviato in un file PFX protetto da password.
signtool sign /f MyCert.pfx /p MyPassword MyFile.exe
Il seguente comando consente di apporre una firma digitale e un timestamp a un file. Il certificato utilizzato per firmare il file è memorizzato in un file PFX.
signtool sign /f MyCert.pfx /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe
Il comando seguente consente di firmare un file utilizzando un certificato contenuto nell'archivio My con nome oggetto My Company Certificate.
signtool sign /n "My Company Certificate" MyFile.exe
Il comando seguente consente di firmare un controllo ActiveX e fornisce le informazioni visualizzate da Internet Explorer quando viene richiesto all'utente di installare il controllo.
Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html MyControl.exe
Il seguente comando consente di apporre un timestamp a un file a cui è già stata apposta una firma digitale.
signtool timestamp /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe
Il comando seguente consente di verificare che un file sia stato firmato.
signtool verify MyFile.exe
Il seguente comando verifica un file di sistema che può essere firmato in un catalogo.
signtool verify /a SystemFile.dll
Il seguente comando verifica un file di sistema firmato in un catalogo denominato MyCatalog.cat.
signtool verify /c MyCatalog.cat SystemFile.dll
Vedere anche
Riferimenti
Prompt dei comandi di Visual Studio e Windows SDK
Altre risorse
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Aprile 2011 |
Sono state aggiunte informazioni sull'utilizzo di Visual Studio e dei prompt dei comandi di Windows SDK. |
Miglioramento delle informazioni. |
Maggio 2010 |
Riorganizzati; comandi e opzioni aggiornati. |
Commenti e suggerimenti dei clienti. |