SignTool.exe (outil Sign Tool)
L'outil Signature est un utilitaire en ligne de commande qui signe numériquement les fichiers, vérifie les signatures dans les fichiers et horodate les fichiers.
Cet outil est installé automatiquement avec Visual Studio et avec le Kit de développement logiciel Windows. Pour exécuter l'outil, nous vous recommandons d'utiliser l'invite de commandes Visual Studio ou l'invite de commandes du Kit de développement logiciel (l'interpréteur de commandes CMD). Ces utilitaires vous permettent d'exécuter l'outil facilement, sans naviguer jusqu'au dossier d'installation. Pour plus d'informations, consultez Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows.
Si Visual Studio est installé sur votre ordinateur : dans la barre des tâches, cliquez sur le bouton Start, All Programs, Visual Studio, sur Visual Studio Tools, puis sur Visual Studio Command Prompt.
ou
Si vous avez le Kit de développement logiciel Windows installé sur votre ordinateur : Dans la barre des tâches, cliquez sur Start, All Programs, le dossier correspondant au Kit de développement logiciel, puis sur Command Prompt (ou CMD Shell).
À l'invite de commandes, tapez ce qui suit :
signtool [command] [options] [file_name | ...]
Paramètres
Argument |
Description |
---|---|
command |
L'une des quatre commandes (catdb, sign, Timestamp ou Verify) qui spécifie une opération à exécuter sur un fichier. Pour obtenir une description de chaque commande, consultez le tableau suivant. |
options |
Une option qui modifie une commande. En plus de /q et des options globales de /v, chaque commande prend en charge un seul ensemble d'options. |
file_name |
Le chemin d'accès à un fichier à signer. |
Les commandes suivantes sont prises en charge par l'outil Signature. Chaque commande est utilisée avec un ensemble distinct d'options, qui sont indexées dans leurs sections respectives.
Commande |
Description |
---|---|
catdb |
Ajoute ou supprime un fichier catalogue dans une base de données de catalogue. Les bases de données de catalogue sont utilisées pour la récupération automatique des fichiers catalogue et sont identifiées par un GUID. Pour obtenir la liste des options prises en charge par la commande catdb, consultez Options de commande catdb. |
sign |
Signe numériquement les fichiers. Les signatures numériques protègent les fichiers contre la falsification et permettent aux utilisateurs de vérifier le signataire selon un certificat de signature. Pour obtenir la liste des options prises en charge par la commande sign, consultez Options de la commande sign. |
Timestamp |
Insère un horodatage dans les fichiers. Pour obtenir la liste des options prises en charge par la commande TimeStamp, consultez Options de commande d'horodateur. |
Verify |
Vérifie la signature numérique des fichiers en déterminant si le certificat de signature a été publié par une autorité de confiance, si le certificat de signature a été révoqué et, éventuellement, si le certificat de signature est valide pour une stratégie spécifique. Pour obtenir la liste des options prises en charge par la commande Verify, consultez Vérifiez les options de commande.. |
Les options suivantes s'appliquent à toutes les commandes de l'outil Signature.
Option Global |
Description |
---|---|
/q |
Aucune sortie en cas d'exécution réussie et sortie minime en cas d'exécution non réussie. |
/v |
Sortie commentée en cas d'exécution réussie, d'exécution non réussie et de messages d'avertissement. |
Options de commande catdb
Le tableau suivant répertorie les options qui peuvent être utilisées avec la commande catdb.
Option Catdb |
Description |
---|---|
/d |
Spécifie que la base de données de catalogue par défaut est mise à jour. Si les options /d et /g ne sont pas utilisées, l'outil Signature met à jour le composant système et la base de données des pilotes. |
/g GUID |
Spécifie que la base de données de catalogue identifiée par l'identificateur global unique GUID est mise à jour. |
/r |
Supprime les catalogues spécifiés de la base de données de catalogue. Si cette option n'est pas spécifiée, l'outil Signature ajoute les catalogues spécifiés à la base de données de catalogue. |
/u |
Spécifie qu'un nom unique est généré automatiquement pour les fichiers catalogue ajoutés. Si nécessaire, les fichiers catalogue seront renommés pour empêcher des conflits de nom avec les fichiers catalogue existants. Si cette option n'est pas spécifiée, l'outil Signature remplace tout catalogue existant qui a le même nom que le catalogue ajouté. |
Options de la commande sign
Le tableau suivant répertorie les options qui peuvent être utilisées avec la commande sign.
Options de la commande Sign |
Description |
---|---|
/a |
Sélectionne automatiquement le meilleur certificat de signature. L'outil signe recherche tous les certificats valides qui répondent à toutes les conditions spécifiées et sélectionne celui qui est valide le plus longtemps. Si cette option n'est pas présente, l'outil Signature pense trouver un seul certificat de signature valide. |
/ac file |
Ajoute un certificat supplémentaire du fichier au bloc de signature. |
/c CertTemplateName |
Spécifie le nom du modèle de certificat (une extension Microsoft) pour le certificat de signature. |
/csp CSPName |
Spécifie le fournisseur de services de chiffrement (CSP) qui contient le conteneur de clé privée. |
/d Desc |
Spécifie une description du contenu signé. |
/du URL |
Spécifie une URL pour la description développée du contenu signé. |
/f SignCertFile |
Spécifie le certificat de signature dans un fichier. Si le fichier est au format Échange d'informations personnelles (PFX, Personal Information Exchange) et protégé par un mot de passe, utilisez l'option /p pour spécifier le mot de passe. Si le fichier ne contient aucune clé privée, utilisez les options /csp et /k pour spécifier le fournisseur de services de chiffrement et le nom de contenu de la clé privée. |
/fd |
Spécifie l'algorithme Digest de fichier à utiliser pour créer des signatures de fichier. La valeur par défaut est SHA1. |
/i IssuerName |
Spécifie le nom de l'émetteur du certificat de signature. Cette valeur peut être une sous-chaîne du nom d'émetteur entier. |
/kc PrivKeyContainerName |
Spécifie le nom du conteneur de clé privée. |
/n SubjectName |
Spécifie le nom du sujet du certificat de signature. Cette valeur peut être une sous-chaîne du nom du sujet entier. |
/nph |
En cas de prise en charge, supprime les hachages de page pour les fichiers exécutables. La valeur par défaut est déterminée par la variable d'environnement SIGNTOOL_PAGE_HASHES et par la version wintrust.dll. |
/p MotDePasse |
Spécifie le mot de passe à utiliser lors de l'ouverture d'un fichier PFX. (Utilisez l'option /f pour spécifier un fichier pfx.) |
/ph |
En cas de prise en charge, génère des hachages de page pour les fichiers exécutables. |
/r RootSubjectName |
Spécifie le nom du sujet du certificat racine auquel le certificat de signature doit effectuer un chaînage. Cette valeur peut être une sous-chaîne du nom du sujet entier du certificat racine. |
/s StoreName |
Spécifie le magasin à ouvrir lors de la recherche du certificat. Si cette option n'est pas spécifiée, le magasin My est ouvert. |
/sha1 Hachage |
Spécifie le hachage SHA1 du certificat de signature. |
/sm |
Spécifie qu'un magasin d'ordinateur, au lieu d'un magasin utilisateurs, est utilisé. |
/t URL |
Spécifie l'URL du serveur d'horodatage. Si cette option (ou /tr) n'est pas présente, le fichier signé ne sera pas horodaté. Un avertissement est généré si l'horodatage échoue. Cette option ne peut pas être utilisée avec l'option /tr. |
/td alg |
Utilisé avec l'option /tr pour demander un algorithme Digest utilisé par le serveur de timestamp de la RFC 3161. |
/tr URL |
Spécifie l'URL du serveur d'horodatage RFC 3161. Si cette option (ou /t) n'est pas présente, le fichier signé ne sera pas horodaté. Un avertissement est généré si l'horodatage échoue. Cette option ne peut pas être utilisée avec l'option /t. |
/u Utilisation |
Spécifie l'utilisation améliorée de la clé (EKU, Enhanced Key Usage) qui doit être présente dans le certificat de signature. La valeur d'utilisation peut être spécifiée par un OID ou une chaîne. L'utilisation par défaut est « Signature du code » (1.3.6.1.5.5.7.3.3). |
/uw |
Spécifie l'utilisation "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6). |
Options de commande d'horodateur
Le tableau suivant répertorie les options qui peuvent être utilisées avec la commande TimeStamp.
Option TimeStamp |
Description |
---|---|
/t URL |
Spécifie l'URL du serveur d'horodatage. Le fichier qui est horodaté doit avoir été précédemment signé. L'option /t ou /tr est obligatoire. |
/td alg |
Demande un algorithme Digest utilisé par le serveur d'horodatage de la RFC 3161. /td est utilisé avec l'option /tr. |
/tr URL |
Spécifie l'URL du serveur d'horodatage RFC 3161. Le fichier qui est horodaté doit avoir été précédemment signé. L'option /tr ou /t est obligatoire. |
Vérifiez les options de commande.
Vérifier l'option. |
Description |
---|---|
/a |
Spécifie que toutes les méthodes peuvent être utilisées pour vérifier le fichier. En premier lieu, une recherche est effectuée dans les bases de données de catalogue pour déterminer si le fichier est signé dans un catalogue. Si le fichier n'est signé dans aucun catalogue, l'outil Signature tente de vérifier la signature incorporée du fichier. Cette option est recommandée lors de la vérification de fichiers qui peuvent être ou non signés dans un catalogue. Les exemples de ces fichiers comprennent des fichiers ou des pilotes Windows. |
/ad |
Recherche le catalogue à l'aide de la base de données de catalogue par défaut. |
/as |
Recherche le catalogue à l'aide de la base de données du catalogue du composant système (pilote). |
/ag CatDBGUID |
Recherche le catalogue dans la base de données de catalogue qui est identifiée par CatDBGUID. |
/c CatFile |
Spécifie le fichier catalogue par nom. |
/d |
Spécifie que l'outil signe doit imprimer la description et l'URL de description. |
/kp |
Spécifie que la vérification doit être effectuée avec la stratégie de signature de pilotes en mode noyau. |
/o Version |
Vérifie le fichier par version du système d'exploitation. Version a la forme suivante : PlatformID:VerMajor.VerMinor.BuildNumber |
/pa |
Spécifie que la stratégie de vérification Authenticode par défaut doit être utilisée. Si l'option /pa n'est pas spécifiée, l'outil Signature utilise la stratégie de vérification des pilotes Windows. Cette option ne peut pas être utilisée avec les options catdb. |
/pg PolicyGUID |
Spécifie une stratégie de vérification par GUID. Le PolicyGUID correspond à l'ActionID de la stratégie de vérification. Cette option ne peut pas être utilisée avec les options catdb. |
/ph |
Spécifie que l'outil signe doit imprimer et vérifier les valeurs de hachage sur la page. |
/r RootSubjectName |
Spécifie le nom du sujet du certificat racine auquel le certificat de signature doit effectuer un chaînage. Cette valeur peut être une sous-chaîne du nom du sujet entier du certificat racine. |
/tw |
Spécifie qu'un avertissement est généré si la signature n'est pas horodatée. |
Valeur de retour
L'outil signe retourne l'un des codes de sortie suivants lorsqu'il se termine.
Code de sortie |
Description |
---|---|
0 |
L'exécution a réussi. |
1 |
L'exécution a échoué. |
2 |
L'exécution a été effectuée avec des avertissements. |
Exemples
La commande suivante ajoute le fichier catalogue MyCatalogFileName.cat au composant système et à la base de données de pilotes. L'option /v génère un nom unique si nécessaire pour éviter de remplacer un fichier catalogue existant nommé MyCatalogFileName.cat.
signtool catdb /v /u MyCatalogFileName.cat
La commande suivante signe un fichier automatiquement à l'aide du meilleur certificat.
signtool sign /a MyFile.exe
La commande suivante signe numériquement un fichier à l'aide d'un certificat stocké dans un fichier pfx protégé par un mot de passe.
signtool sign /f MyCert.pfx /p MyPassword MyFile.exe
La commande suivante signe numériquement et insère un horodatage dans le fichier. Le certificat utilisé pour signer le fichier est stocké dans un fichier pfx.
signtool sign /f MyCert.pfx /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe
La commande suivante signe un fichier à l'aide d'un certificat situé dans le magasin My qui a un nom de sujet My Company Certificate.
signtool sign /n "My Company Certificate" MyFile.exe
La commande suivante signe un contrôle ActiveX et fournit des informations qui sont affichées par Internet Explorer lorsque l'utilisateur est invité à installer le contrôle.
Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html MyControl.exe
La commande suivante insère un horodatage à un fichier qui a déjà été signé numériquement.
signtool timestamp /t http://timestamp.verisgn/com/scripts.timstamp.dll MyFile.exe
La commande suivante vérifie qu'un fichier a été signé.
signtool verify MyFile.exe
La commande suivante recherche un fichier système éventuellement signé dans un catalogue.
signtool verify /a SystemFile.dll
La commande suivante recherche un fichier système signé dans un catalogue nommé MyCatalog.cat.
signtool verify /c MyCatalog.cat SystemFile.dll
Voir aussi
Référence
Invites de commandes Visual Studio e t Kit de développement logiciel (SDK) Windows
Autres ressources
Historique des modifications
Date |
Historique |
Motif |
---|---|---|
Avril 2011 |
Informations supplémentaires sur l'utilisation des invites de commandes de Visual Studio et du Kit de développement logiciel (SDK) Windows. |
Améliorations apportées aux informations. |
Mai 2010 |
Réorganisé ; commandes et options mises à jour. |
Commentaires client. |