SignTool.exe (программа подписывания)SignTool.exe (Sign Tool)

Sign Tool — это программа командной строки, которая присваивает цифровые подписи файлам, проверяет подписи файлов и создает отметки времени для файлов.Sign Tool is a command-line tool that digitally signs files, verifies signatures in files, and time-stamps files.

Эта программа автоматически устанавливается вместе с Visual Studio.This tool is automatically installed with Visual Studio. Чтобы применить этот инструмент, воспользуйтесь командной строкой разработчика для Visual Studio (или командной строкой Visual Studio в Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Дополнительные сведения см. в разделе Командные строки.For more information, see Command Prompts.

В командной строке введите следующее.At the command prompt, type the following:

СинтаксисSyntax

signtool [command] [options] [file_name | ...]  

ПараметрыParameters

АргументArgument ОПИСАНИЕDescription
command Одна из четырех команд (catdb, sign, Timestamp или Verify), указывающая операцию, которую требуется выполнить с файлом.One of four commands (catdb, sign, Timestamp, or Verify) that specifies an operation to perform on a file. Описание каждой из команд дано в следующей таблице.For a description of each command, see the next table.
options Параметр, изменяющий команду.An option that modifies a command. Кроме глобальных параметров /q и /v каждая команда поддерживает уникальный набор параметров.In addition to the global /q and /v options, each command supports a unique set of options.
file_name Путь к подписываемому файлу.The path to a file to sign.

Программа Sign Tool поддерживает следующие команды.The following commands are supported by Sign Tool. Каждая команда используется с отдельными наборами параметров, которые перечислены в соответствующих подразделах.Each command is used with distinct sets of options, which are listed in their respective sections.

КомандаCommand ОПИСАНИЕDescription
catdb Добавляет файл каталога в базу данных каталогов или удаляет его из этой базы данных.Adds a catalog file to, or removes it from, a catalog database. Базы данных каталогов используются для автоматического поиска файлов каталогов и определяются идентификаторами GUID.Catalog databases are used for automatic lookup of catalog files and are identified by GUID. Список параметров, поддерживаемых командой catdb, см. в разделе Параметры команды "catdb".For a list of the options supported by the catdb command, see catdb Command Options.
sign Присваивает цифровые подписи файлам.Digitally signs files. Цифровые подписи обеспечивают защиту файлов от несанкционированного доступа и позволяют пользователям проверять, кем подписан файл, на основе сертификата подписи.Digital signatures protect files from tampering, and enable users to verify the signer based on a signing certificate. Список параметров, поддерживаемых командой sign, см. в разделе Параметры команды "sign".For a list of the options supported by the sign command, see sign Command Options.
Timestamp Присваивает отметки времени для файлов.Time-stamps files. Список параметров, поддерживаемых командой TimeStamp, см. в разделе Параметры команды "TimeStamp".For a list of the options supported by the TimeStamp command, see TimeStamp Command Options.
Verify Проверяет цифровую подпись файлов, определяя, был ли сертификат подписи выдан доверенным центром сертификации, был ли сертификат подписи отозван, и, если требуется, действителен ли сертификат подписи для конкретной политики.Verifies the digital signature of files by determining whether the signing certificate was issued by a trusted authority, whether the signing certificate has been revoked, and, optionally, whether the signing certificate is valid for a specific policy. Список параметров, поддерживаемых командой Verify, см. в разделе Параметры команды "Verify".For a list of the options supported by the Verify command, see Verify Command Options.

Следующие параметры доступны для всех команд программы Sign Tool.The following options apply to all Sign Tool commands.

Глобальный параметрGlobal option ОПИСАНИЕDescription
/q/q Не отображает выходные данные, если команда выполнена успешно, и отображает минимальные выходные данные, если команда завершилась ошибкой.Displays no output if the command runs successfully, and displays minimal output if the command fails.
/v/v Отображает подробные выходные данные независимо от того, выполнена ли команда успешно или с ошибкой, и отображает предупреждения.Displays verbose output regardless of whether the command runs successfully or fails, and displays warning messages.
/debug/debug Отображает отладочную информацию.Displays debugging information.

Параметры команды "catdb"catdb Command Options

В следующей таблице перечислены параметры, которые могут использоваться с командой catdb.The following table lists the options that can be used with the catdb command.

Параметр "catdb"Catdb option ОПИСАНИЕDescription
/d Указывает, что используемая по умолчанию база данных каталогов обновлена.Specifies that the default catalog database is updated. Если не указан ни параметр /d, ни /g, программа Sign Tool обновляет базу данных системных компонентов и драйверов.If neither the /d nor the /g option is used, Sign Tool updates the system component and driver database.
/g GUID/g GUID Указывает, что база данных каталогов, заданная глобальным уникальным идентификатором GUID, обновлена.Specifies that the catalog database identified by the globally unique identifier GUID is updated.
/r Удаляет указанные каталоги из базы данных каталогов.Removes the specified catalogs from the catalog database. Если этот параметр не указан, программа Sign Tool добавляет указанные каталоги в базу данных каталогов.If this option is not specified, Sign Tool adds the specified catalogs to the catalog database.
/u Указывает, что для добавляемых файлов каталогов автоматически создается уникальное имя.Specifies that a unique name is automatically generated for the added catalog files. Пир необходимости, файлы каталогов переименовываются, чтобы предотвратить конфликты имен с существующими файлами каталогов.If necessary, the catalog files are renamed to prevent name conflicts with existing catalog files. Если этот параметр не указан, программа Sign Tool перезаписывает любой существующий каталог, имеющий то же имя, что и добавляемый каталог.If this option is not specified, Sign Tool overwrites any existing catalog that has the same name as the catalog being added.

Параметры команды "sign"sign Command Options

В следующей таблице перечислены параметры, которые могут использоваться с командой sign.The following table lists the options that can be used with the sign command.

Параметр команды "sign"Sign command option ОПИСАНИЕDescription
/a Автоматически выбирает лучший сертификат подписи.Automatically selects the best signing certificate. Программа Sign Tool найдет все действительные сертификаты, которые удовлетворяют всем указанным условиям, и выберет тот, который действителен в течение наиболее длительного периода времени.Sign Tool will find all valid certificates that satisfy all specified conditions and select the one that is valid for the longest time. Если этот параметр не указан, программа Sign Tool находит и использует только один допустимый сертификат подписи.If this option is not present, Sign Tool expects to find only one valid signing certificate.
/ac file/ac file Добавляет дополнительный сертификат из файла file в блок подписи.Adds an additional certificate from file to the signature block.
/as Добавляет эту подпись.Appends this signature. Если основная подпись отсутствует, данная подпись становится основной.If no primary signature is present, this signature is made the primary signature instead.
/c CertTemplateName/c CertTemplateName Указывает имя шаблона сертификата (расширение Microsoft) для сертификата подписи.Specifies the Certificate Template Name (a Microsoft extension) for the signing certificate.
/csp CSPName/csp CSPName Указывается поставщик служб шифрования (CSP), содержащий контейнер закрытого ключа.Specifies the cryptographic service provider (CSP) that contains the private key container.
/d Desc/d Desc Задает описание подписанного содержимого.Specifies a description of the signed content.
/du URL/du URL Задает URL-адрес для расширенного описания подписанного содержимого.Specifies a Uniform Resource Locator (URL) for the expanded description of the signed content.
/f SignCertFile/f SignCertFile Задает сертификат подписи в файле.Specifies the signing certificate in a file. Если формат файла — Personal Information Exchange (PFX), и он защищен паролем, задайте пароль с помощью параметра /p.If the file is in Personal Information Exchange (PFX) format and protected by a password, use the /p option to specify the password. Если файл не содержит закрытых ключей, с помощью параметров /csp и /kc задайте CSP и имя контейнера закрытого ключа.If the file does not contain private keys, use the /csp and /kc options to specify the CSP and private key container name.
/fd Задает алгоритм хэш-кода файла, который будет использоваться при создании подписей файлов.Specifies the file digest algorithm to use for creating file signatures. Значение по умолчанию - SHA1.The default is SHA1.
/i IssuerName/i IssuerName Задает имя поставщика сертификата подписи.Specifies the name of the issuer of the signing certificate. Это значение может быть подстрокой полного имени поставщика.This value can be a substring of the entire issuer name.
/kc PrivKeyContainerName/kc PrivKeyContainerName Задает имя контейнера закрытого ключа.Specifies the private key container name.
/n SubjectName/n SubjectName Задает имя субъекта сертификата подписи.Specifies the name of the subject of the signing certificate. Это значение может быть подстрокой полного имени субъекта.This value can be a substring of the entire subject name.
/nph Если поддерживается, отключает хэши страниц для исполняемых файлов.If supported, suppresses page hashes for executable files. Значение по умолчанию определяется переменной среды SIGNTOOL_PAGE_HASHES и версией файла "wintrust.dll".The default is determined by the SIGNTOOL_PAGE_HASHES environment variable and by the wintrust.dll version. Этот параметр игнорируется для файлов, отличных от PE-файлов.This option is ignored for non-PE files.
/p Password/p Password Задает пароль, который используется при открытии PFX-файла.Specifies the password to use when opening a PFX file. (PFX-файл указывается с помощью параметра /f.)(Use the /f option to specify a PFX file.)
/p7 Path/p7 Path Указывает, что для каждого заданного файла содержимого создается файл PKCS #7.Specifies that a Public Key Cryptography Standards (PKCS) #7 file is produced for each specified content file. Файлы PKCS #7 имеют имена вида путь\имя_файла.p7.PKCS #7 files are named path\filename.p7.
/p7ce Value/p7ce Value Задает параметры для подписанного содержимого PKCS #7.Specifies options for the signed PKCS #7 content. Задайте значение Value как "Embedded", чтобы внедрить подписанное содержимое в файл PKCS #7, или как "DetachedSignedData", чтобы создать подписанную часть данных отсоединенного файла PKCS #7.Set Value to "Embedded" to embed the signed content in the PKCS #7 file, or to "DetachedSignedData" to produce the signed data portion of a detached PKCS #7 file. Если параметр /p7ce не используется, подписанное содержимое встраивается по умолчанию.If the /p7ce option is not used, the signed content is embedded by default.
/p7co <OID>/p7co <OID> Задает идентификатор объекта (OID), определяющий подписанное содержимое PKCS #7.Specifies the object identifier (OID) that identifies the signed PKCS #7 content.
/ph Если поддерживается, генерирует хэши страниц для исполняемых файлов.If supported, generates page hashes for executable files.
/r RootSubjectName/r RootSubjectName Задает имя субъекта корневого сертификата, к которому должна быть протянута цепочка сертификата подписи.Specifies the name of the subject of the root certificate that the signing certificate must chain to. Это значение может быть подстрокой полного имени субъекта корневого сертификата.This value may be a substring of the entire subject name of the root certificate.
/s StoreName/s StoreName Указывает хранилище, которое открывается при поиске сертификата.Specifies the store to open when searching for the certificate. Если этот дополнительный параметр не указан, открывается хранилище My.If this option is not specified, the My store is opened.
/sha1 Hash/sha1 Hash Задает хэш SHA1 сертификата подписи.Specifies the SHA1 hash of the signing certificate. Хэш SHA1 обычно указывается, когда несколько сертификатов удовлетворяют критериям, заданным остальными ключами.The SHA1 hash is commonly specified when multiple certificates satisfy the criteria specified by the remaining switches.
/sm Указывает, что вместо пользовательского хранилища используется хранилище на компьютере.Specifies that a machine store, instead of a user store, is used.
/t URL/t URL Задает URL-адрес сервера отметок времени.Specifies the URL of the time stamp server. Если этот параметр (или параметр /tr) отсутствует, подписанному файлу не присваивается отметка времени.If this option (or /tr) is not present, the signed file will not be time stamped. Если присвоение отметки времени не удалось, выдается предупреждение.A warning is generated if time stamping fails. Данный параметр невозможно использовать одновременно с параметром /tr.This option cannot be used with the /tr option.
/td alg/td alg Используется с параметром /tr, чтобы запросить алгоритм дайджеста, используемый сервером отметок времени RFC 3161.Used with the /tr option to request a digest algorithm used by the RFC 3161 time stamp server.
/tr URL/tr URL Задает URL-адрес сервера отметок времени RFC 3161.Specifies the URL of the RFC 3161 time stamp server. Если этот параметр (или параметр /t) отсутствует, подписанному файлу не присваивается отметка времени.If this option (or /t) is not present, the signed file will not be time stamped. Если присвоение отметки времени не удалось, выдается предупреждение.A warning is generated if time stamping fails. Данный параметр невозможно использовать одновременно с параметром /t.This option cannot be used with the /t option.
/u Usage/u Usage Задает расширенное использование ключа (EKU), которое должно быть представлено в сертификате подписи.Specifies the enhanced key usage (EKU) that must be present in the signing certificate. Значение использования может быть задано идентификатором объекта или строкой.The usage value can be specified by OID or string. По умолчанию используется подписывание кода (1.3.6.1.5.5.7.3.3).The default usage is "Code Signing" (1.3.6.1.5.5.7.3.3).
/uw Задает использование "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6).Specifies usage of "Windows System Component Verification" (1.3.6.1.4.1.311.10.3.6).

Примеры использования см. в разделе Использование средства SignTool для подписания файла.For usage examples, see Using SignTool to Sign a File.

Параметры команды "TimeStamp"TimeStamp Command Options

В следующей таблице перечислены параметры, которые могут использоваться с командой TimeStamp.The following table lists the options that can be used with the TimeStamp command.

Параметр "TimeStamp"TimeStamp option ОПИСАНИЕDescription
/p7 Присваивает файлам PKCS #7 отметки времени.Time stamps PKCS #7 files.
/t URL/t URL Задает URL-адрес сервера отметок времени.Specifies the URL of the time stamp server. Файл, получающий отметку времени, должен быть заранее подписан.The file being time stamped must have previously been signed. Необходимо использовать параметр /t или /tr.Either the /t or the /tr option is required.
/td alg/td alg Запрашивает алгоритм хэш-кода, используемый сервером отметок времени RFC 3161.Requests a digest algorithm used by the RFC 3161 time stamp server. /td используется вместе с параметром /tr./td is used with the /tr option.
/tp index/tp index Присваивает подписи метку времени в index.Time stamps the signature at index.
/tr URL/tr URL Задает URL-адрес сервера отметок времени RFC 3161.Specifies the URL of the RFC 3161 time stamp server. Файл, получающий отметку времени, должен быть заранее подписан.The file being time stamped must have previously been signed. Необходимо использовать параметр /tr или /t.Either the /tr or the /t option is required.

Пример использования см. в разделе Добавление меток времени в ранее подписанные файлы.For a usage example, see Adding Time Stamps to Previously Signed Files.

Параметры команды "Verify"Verify Command Options

Параметр "Verify"Verify option ОПИСАНИЕDescription
/a Указывает, что все методы могут использоваться для проверки файла.Specifies that all methods can be used to verify the file. Сначала выполняется поиск в базах данных каталогов, чтобы определить, подписан ли файл в каталоге.First, the catalog databases are searched to determine whether the file is signed in a catalog. Если файл не подписан ни в одном каталоге, программа Sign Tool пытается проверить встроенную подпись файла.If the file is not signed in any catalog, Sign Tool attempts to verify the file's embedded signature. Этот параметр рекомендуется использовать при проверке файлов, которые могут быть подписаны или не подписаны в каталоге.This option is recommended when verifying files that may or may not be signed in a catalog. К примерам таких фалов относятся файлы или драйверы Windows.Examples of these files include Windows files or drivers.
/ad Выполняет поиск каталога, используя базу данных каталогов по умолчанию.Finds the catalog by using the default catalog database.
/ag CatDBGUID/ag CatDBGUID Выполняет поиск каталога в указанной параметром CatDBGUID базе данных каталогов.Finds the catalog in the catalog database that is identified by the CatDBGUID.
/all Проверяет все подписи в файле, содержащем несколько подписей.Verifies all signatures in a file that includes multiple signatures.
/as Выполняет поиск каталога, используя базу данных каталога системных компонентов (драйверов).Finds the catalog by using the system component (driver) catalog database.
/c CatFile/c CatFile Задает файл каталога по имени.Specifies the catalog file by name.
/d Указывает, что программе Sign Tool следует печатать описание и URL-адрес описания.Specifies that Sign Tool should print the description and the description URL.
/ds Index/ds Index Проверяет подпись в указанной позиции.Verifies the signature at a specified position.
/hash (SHA1|SHA256)/hash (SHA1|SHA256) Задает необязательный алгоритм хэширования, который должен использоваться при поиске файла в каталоге.Specifies an optional hash algorithm to use when searching for a file in a catalog.
/kp Указывает, что проверка должна выполняться с использованием политики подписывания работающего в режиме ядра драйвера.Specifies that verification should be performed with the kernel-mode driver signing policy.
/ms Использует несколько семантик проверки.Uses multiple verification semantics. Это поведение по умолчанию вызова WinVerifyTrust в Windows 8Windows 8 и более поздних версиях.This is the default behavior of a WinVerifyTrust call on Windows 8Windows 8 and above.
/o Version/o Version Проверяет файл в соответствии с версией операционной системы.Verifies the file by operating system version. Версия имеет следующую форму: PlatformID:VerMajor.VerMinor.BuildNumber.Version has the following form: PlatformID:VerMajor.VerMinor.BuildNumber. PlatformID представляет базовое значение элемента перечисления PlatformID.PlatformID represents the underlying value of a PlatformID enumeration member. Внимание! Рекомендуем использовать параметр /o.Important: The use of the /o switch is recommended. Если значение /o не указано, программа SignTool.exe может возвращать непредвиденные результаты.If /o is not specified, SignTool.exe may return unexpected results. Например, если не указан параметр /o, системные каталоги, которые успешно проходят проверку в случае более старой версии операционной системы, могут не пройти проверку в ее новой версии.For example, if you do not include the /o switch, system catalogs that validate correctly on an older operating system may not validate correctly on a newer operating system.
/p7 Проверяет файлы PKCS #7.Verifies PKCS #7 files. Существующие политики не используются для проверки PKCS #7.No existing policies are used for PKCS #7 validation. Подпись проверяется, и для сертификата подписи строится цепочка.The signature is checked and a chain is built for the signing certificate.
/pa Задает обязательное использование политики проверки Authenticode по умолчанию.Specifies that the Default Authenticode Verification Policy should be used. Если параметр /pa не указан, программа Sign Tool использует политику проверки драйверов Windows.If the /pa option is not specified, Sign Tool uses the Windows Driver Verification Policy. Данный параметр невозможно использовать одновременно с параметрами catdb.This option cannot be used with the catdb options.
/pg PolicyGUID/pg PolicyGUID Задает политику проверки по идентификатору GUID.Specifies a verification policy by GUID. Идентификатор PolicyGUID соответствует идентификатору ActionID политики проверки.The PolicyGUID corresponds to the ActionID of the verification policy. Данный параметр невозможно использовать одновременно с параметрами catdb.This option cannot be used with the catdb options.
/ph Указывает, что программа Sign Tool должна печатать и проверять хэш-значения страниц.Specifies that Sign Tool should print and verify page hash values.
/r RootSubjectName/r RootSubjectName Задает имя субъекта корневого сертификата, к которому должна быть протянута цепочка сертификата подписи.Specifies the name of the subject of the root certificate that the signing certificate must chain to. Это значение может быть подстрокой полного имени субъекта корневого сертификата.This value can be a substring of the entire subject name of the root certificate.
/tw Указывает необходимость выдачи предупреждения, если подпись не имеет отметки времени.Specifies that a warning should be generated if the signature is not time stamped.

Примеры использования см. в разделе Использование средства SignTool для проверки подписи файла.For usage examples, see Using SignTool to Verify a File Signature.

Возвращаемое значениеReturn Value

Программа Sign Tool при прерывании возвращает один из следующих кодов выхода.Sign Tool returns one of the following exit codes when it terminates.

Код выходаExit code ОПИСАНИЕDescription
00 Выполнение прошло успешно.Execution was successful.
11 Сбой выполнения.Execution has failed.
22 Выполнение завершено с предупреждениями.Execution has completed with warnings.

ПримерыExamples

Следующая команда добавляет файл каталога "MyCatalogFileName.cat" в базу данных системных компонентов и драйверов.The following command adds the catalog file MyCatalogFileName.cat to the system component and driver database. Параметр /u создает уникальное имя, если это необходимо для предотвращения замены существующего файла каталога с именем MyCatalogFileName.cat.The /u option generates a unique name if necessary to prevent replacing an existing catalog file named MyCatalogFileName.cat.

signtool catdb /v /u MyCatalogFileName.cat  

При выполнении следующей команды файл подписывается автоматически с помощью наиболее подходящего сертификата.The following command signs a file automatically by using the best certificate.

signtool sign /a MyFile.exe  

При выполнении следующей команды файл подписывается цифровой подписью с помощью сертификата, хранящегося в защищенном паролем PFX-файле.The following command digitally signs a file by using a certificate stored in a password-protected PFX file.

signtool sign /f MyCert.pfx /p MyPassword MyFile.exe  

При выполнении следующей команды файл подписывается цифровой подписью, и ему присваивается отметка времени.The following command digitally signs and time-stamps a file. Сертификат, используемый для подписания файла, хранится в PFX-файле.The certificate used to sign the file is stored in a PFX file.

signtool sign /f MyCert.pfx /t http://timestamp.digicert.com MyFile.exe  

При выполнении следующей команды файл подписывается с помощью сертификата, расположенного в хранилище My, с именем субъекта My Company Certificate.The following command signs a file by using a certificate located in the My store that has a subject name of My Company Certificate.

signtool sign /n "My Company Certificate" MyFile.exe  

При выполнении следующей команды подписывается элемент управления ActiveX и предоставляется информация, отображаемая в Internet Explorer, когда пользователю предлагается установить элемент управления.The following command signs an ActiveX control and provides information that is displayed by Internet Explorer when the user is prompted to install the control.

Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html MyControl.exe  

При выполнении следующей команды файлу, у которого уже имеется цифровая подпись, присваивается отметка времени.The following command time-stamps a file that has already been digitally signed.

signtool timestamp /t http://timestamp.digicert.com MyFile.exe  

Следующая команда проверяет наличие подписи у файла.The following command verifies that a file has been signed.

signtool verify MyFile.exe  

Следующая команда проверяет системный файл, который может быть подписан в каталоге.The following command verifies a system file that may be signed in a catalog.

signtool verify /a SystemFile.dll  

Следующая команда проверяет системный файл, подписанный в каталоге с именем MyCatalog.cat.The following command verifies a system file that is signed in a catalog named MyCatalog.cat.

signtool verify /c MyCatalog.cat SystemFile.dll  

См. такжеSee also