Partager via


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

Outils du .NET Framework

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.