Condividi tramite


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

Strumenti di .NET Framework

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.