Подпись программного обеспечения windows

Подписание пакета приложения с помощью SignTool Sign an app package using SignTool

SignTool — это средство командной строки, используемое для цифровой подписи пакета приложения или пакета приложений с помощью сертификата. SignTool is a command line tool used to digitally sign an app package or bundle with a certificate. Сертификат может быть создан пользователем (для тестирования) или выдан компанией (для распространения). The certificate can either be created by the user (for testing purposes) or issued by a company (for distribution). Подписывание пакета приложения дает пользователю средство проверки отсутствия изменений в данных приложения после его подписи, при этом также подтверждается подлинность пользователя или компании, подписавшего пакет. Signing an app package provides the user with verification that the app’s data has not been modified after it was signed while also confirming the identity of the user or company that signed it. SignTool может подписать зашифрованные и незашифрованные пакеты приложения и пакеты приложений. SignTool can sign encrypted or unencrypted app packages and bundles.

Если для разработки приложения использовали Visual Studio, рекомендуется применять мастер Visual Studio для создания и подписывания пакета приложения. If you used Visual Studio to develop your app, it’s recommended that you use the Visual Studio wizard to create and sign your app package. Дополнительные сведения см. в статьях Упаковка приложения UWP с помощью Visual Studio и упаковка классического приложения из исходного кода с помощью Visual Studio. For more information, see Package a UWP app with Visual Studio and Package a desktop app from source code using Visual Studio.

Дополнительные сведения о подписи кода и сертификатах в целом см. в разделе Знакомство с процессом подписания кода. For more information about code signing and certificates in general, see Introduction to Code Signing.

Предварительные условия Prerequisites

Упакованное приложение A packaged app
Подробнее о ручном создании пакета приложения, создания пакета приложения с помощью средства MakeAppx.exe. To learn more about manually creating an app package, see Create an app package with the MakeAppx.exe tool.

Действительный сертификат подписи A valid signing certificate
Дополнительные сведения о создании или импорте действительного сертификата подписи см. в разделе Создание или импорт сертификата для подписания пакета. For more information about creating or importing a valid signing certificate, see Create or import a certificate for package signing.

SignTool.exe SignTool.exe
В зависимости от пути установки пакета SDK SignTool может находиться в следующих расположениях на компьютере с Windows 10: Based on your installation path of the SDK, this is where SignTool is on your Windows 10 PC:

  • x86: C:\Program Files (x86) \Windows Kits\10\bin \ \x86\SignTool.exe x86: C:\Program Files (x86)\Windows Kits\10\bin\ \x86\SignTool.exe
  • x64: C:\Program Files (x86) \Windows Kits\10\bin \ \x64\SignTool.exe x64: C:\Program Files (x86)\Windows Kits\10\bin\ \x64\SignTool.exe

Применение SignTool Using SignTool

SignTool может использоваться для подписывания файлов, проверки подписей и меток времени, удаления подписей и другого. SignTool can be used to sign files, verify signatures or timestamps, remove signatures, and more. Так как нас интересует подписывание пакета приложения, мы рассмотрим команду sign. For the purpose of signing an app package, we will focus on the sign command. Подробные сведения об инструменте SignTool см. на справочной странице SignTool. For full information on SignTool, see the SignTool reference page.

Читайте также:  Удаление файлов по имени linux

Определение хэш-алгоритма Determine the hash algorithm

При использовании SignTool для подписи пакета приложения или пакета приложений, хэш-алгоритм, применяемый в SignTool, должен совпадать с алгоритмом, использованном для упаковки приложения. When using SignTool to sign your app package or bundle, the hash algorithm used in SignTool must be the same algorithm you used to package your app. Например, если вы применили MakeAppx.exe для создания пакета приложения с параметрами по умолчанию, то необходимо выбрать SHA256 в SignTool, поскольку это алгоритм, по умолчанию используемый в MakeAppx.exe. For example, if you used MakeAppx.exe to create your app package with the default settings, you must specify SHA256 when using SignTool since that’s the default algorithm used by MakeAppx.exe.

Чтобы узнать, какой алгоритм хэширования применялся при упаковке приложения, извлеките содержимое пакета и изучите файл AppxBlockMap.xml. To find out which hash algorithm was used while packaging your app, extract the contents of the app package and inspect the AppxBlockMap.xml file. Инструкции по распаковке/извлечению пакета приложения см. в разделе Извлечение файлов из пакета приложения или пакета приложений. To learn how to unpack/extract an app package, see Extract files from a package or bundle. Хэш-метод указан в элементе BlockMap и имеет следующий формат: The hash method is in the BlockMap element and has this format:

В этой таблице показан каждое значение HashMethod и соответствующий хэш-алгоритм: This table shows each HashMethod value and its corresponding hash algorithm:

Значение HashMethod HashMethod value Хэш-алгоритм Hash Algorithm
http://www.w3.org/2001/04/xmlenc#sha256 SHA256 SHA256
http://www.w3.org/2001/04/xmldsig-more#sha384 SHA384 SHA384
http://www.w3.org/2001/04/xmlenc#sha512 SHA512 SHA512

Так как в SignTool по умолчанию применяется алгоритм SHA1 (которого нет в MakeAppx.exe), вам всегда необходимо указывать хэш-алгоритм при использовании SignTool. Since SignTool‘s default algorithm is SHA1 (not available in MakeAppx.exe), you must always specify a hash algorithm when using SignTool.

Подпись пакета приложения Sign the app package

Если у вас есть все необходимые компоненты и вы определили, какой хэш-алгоритм применялся для упаковки приложения, то вы готовы подписать его. Once you have all of the prerequisites and you’ve determined which hash algorithm was used to package your app, you’re ready to sign it.

Общий синтаксис командной строки при подписи пакета с помощью SignTool таков: The general command line syntax for SignTool package signing is:

Сертификат, используемый для подписания приложения, должен быть либо PFX-файлом либо установлен в хранилище сертификатов. The certificate used to sign your app must be either a .pfx file or be installed in a certificate store.

Чтобы подписать пакет приложения с помощью сертификата из PFX-файла, примените следующий синтаксис: To sign your app package with a certificate from a .pfx file, use the following syntax:

Обратите внимание, что параметр /a позволяет SignTool автоматически выбрать наиболее подходящий сертификат. Note that the /a option allows SignTool to choose the best certificate automatically.

Если ваш сертификат не является PFX-файлом, используйте следующий синтаксис: If your certificate is not a .pfx file, use the following syntax:

Кроме того, вы можете указать хэш SHA1 нужного сертификата вместо , с помощью следующего синтаксиса: Alternatively, you can specify the SHA1 hash of the desired certificate instead of using this syntax:

Обратите внимание, что с некоторыми сертификатами пароль не используется. Note that some certificates do not use a password. Если для вашего сертификата не требуется пароль, опустите параметр «/p » в примерах команд. If your certificate does not have a password, omit «/p » from the sample commands.

Подписав пакет приложения с помощью действительного сертификата, вы сможете отправить пакет в Store. Once your app package is signed with a valid certificate, you’re ready to upload your package to the Store. Дополнительные рекомендации по загрузке и отправке приложений в Store см. в разделе Отправка приложений. For more guidance on uploading and submitting apps to the Store, see App submissions.

Как проверить цифровую подпись программы в Windows

Разработчики программного обеспечения и компании могут подписывать программы, которые они разрабатывают или распространяют, которые используются для проверки целостности программы, чтобы гарантировать, что она не была изменена после ее подписания.

В сегодняшней статье я расскажу о нескольких способах проверки цифровых подписей программ на компьютере под управлением Windows.

Проверка цифровой подписи программы в проводнике

Вы можете отображать и проверять подпись любой программы в Windows с помощью проводника.

  1. Кликните правой кнопкой мыши по программе, которую вы хотите проверить, и выберите свойства из контекстного меню.
  2. Выберите вкладку «Цифровые подписи» в окне «Свойства».
  3. Если вы видите подписи, перечисленные на вкладке, вы знаете, что файл был подписан в цифровом виде. Дважды щелкните по одной из подписей, чтобы отобразить дополнительную информацию.

Windows открывает информацию о подписчике и подписи в открывшемся окне. Вы можете нажать «Просмотреть сертификат», чтобы отобразить подпись или щелкнуть вкладку «Дополнительно», чтобы отобразить детали подписи.

Windows показывает вам, если «цифровая подпись в порядке», или нет.

Проверка цифровой подписи программы с помощью SignTool

SignTool — это программа Microsoft, включенная в Windows SDK. Программа не включается при установке Windows на машину или использовании Windows и ее необходимо добавить в систему, установив Windows SDK.

  • Windows 7 SDK
  • Windows 10 SDK

Проверка цифровой подписи программы с помощью

Примечание. При загрузке Windows 10 SDK загрузка имеет размер около 2,5 ГБ. Он установит в систему всевозможные файлы, которые вам не нужны, если вы не разрабатываете программы для Windows.

Установщик устанавливает файл signtool.exe в следующих местах:

  • C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x86 \ signtool.exe
  • C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 \ signtool.exe

Для проверки подписей используйте следующие команды:

  • SignTool проверяет program.exe — по умолчанию для политики драйвера Windows для проверки.
  • SignTool verify / pa program.exe — используйте это, чтобы проверить сертификаты подписи кода.

Проверка цифровой подписи программы в DigiCert Certificate

Вы можете загрузить утилиту Digicert Certificate Utility для Windows, чтобы проверить подписи приложений в операционной системе.

  1. Запустите программу после загрузки. Ее не нужно устанавливать.
  2. Примите условия использования, отображаемые при запуске.
  3. На вкладке «Подписание кода» выберите «проверить подпись» в заголовке.
  4. Выберите программу цифровую подпись которой хотите проверить.
  5. DigiCert проверяет подпись и отображает информацию в дополнительном окне.
    1. Он проверяет, был ли файл подписан, и если подпись подтверждена.
    2. Он проверяет метку времени подписи.

Если вы получите зеленые галочки для обеих проверок, проверка прошла успешно.

Заключение

В то время как большинству пользователей Windows, возможно, нет необходимости проверять подпись программ, это может быть полезно разработчикам, исследователям и продвинутым пользователям Windows.

Цифровые подписи в Windows 7

Цифровая подпись — это электронная метка, которая может добавляться к файлам в целях безопасности. Она позволяет идентифицировать издателя файла (подлинность файла) и определить, не подвергался ли файл изменениям (целостность файла).

Цифровые подписи обычно используются производителями оборудования для подписывания драйверов устройств. Драйвер, имеющий цифровую подпись – это драйвер, который опубликован доверенным издателем и протестирован на предмет совместимости с операционной системой, установленной на компьютере.

Если файл содержит некорректную цифровую подпись (или ее нет совсем), то это может означать, что данный файл опубликован ненадежным издателем или был изменен (например, заражен вирусом). Наличие корректной цифровой подписи не всегда гарантирует отсутствие вредоносного кода, а ее отсутствие не обязательно несет угрозу безопасности системы, но все же следует настороженно относиться к файлам с некорректной или отсутствующей подписью.

Проверка цифровой подписи

В Windows 7 для проверки цифровой подписи есть специальная утилита sigverif.exe. Для ее запуска нужно в поисковой строке меню Пуск набрать sigverif.exe и нажать Ввод

В окне программы жмем Начать и она автоматически проверяет системные файлы на наличие подписей.

Результат проверки сохраняется в текстовый файл sigverif.txt. Хранится он в папке Общие документы, также его можно посмотреть прямо из окна программы, щелкнув по кнопке Дополнительно.

Отключение проверки цифровой подписи

В Windows 7 требования к устанавливаемым драйверам существенно ужесточены, и любой устанавливаемый драйвер должен иметь цифровую подпись, проверенную и сертифицированную Microsoft. Перед загрузкой и установкой драйвера устройства Windows проверит его цифровую подпись, и если драйвер не подписан, выдаст предупреждение

Можно это предупреждение проигнорировать и установить драйвер, однако работать он не будет все равно. При установке неподписанного драйвера в диспетчере устройств данное устройство будет помечено восклицательным знаком и содержать сообщение об ошибке.

Политика проверки цифровой подписи драйверов призвана улучшить надежность и стабильность операционной системы, но иногда возникает необходимость установить неподписанный драйвер. К счастью, в Windows 7 можно отключить проверку цифровой подписи. Для этого есть несколько способов:

Отключить поверку цифровой подписи драйверов при загрузке через загрузочное меню. Для этого при загрузке ОС жмем клавишу F8. Для загрузки без проверки цифровых подписей нужно выбрать пункт «Отключение обязательной проверки подписи драйверов»

Дальше можно загружаться и устанавливать необходимые драйвера. Однако данный режим предназначен исключительно для тестирования и при следующей загрузке в обычном режиме установленный драйвер работать не будет.

Для постоянной загрузки в тестовом режиме можно воспользоваться утилитой командной строки bcdedit. Для этого открываем командную строку с правами администратора

И последовательно вводим 2 команды:

bcdedit -set loadoptions DDISABLED_INTEGRITY_CHECKS

bcdedit -set TESTSIGNING ON

После выполнения каждой команды должно появиться сообщение об успешном выполнении. Теперь можно перезагрузить компьютер и установить необходимые драйвера.

Для отключения тестового режима нужно ввести в командной строке команды:

bcdedit -set loadoptions ENABLE_INTEGRITY_CHECKS

bsdedit -set loadoptions TESTSIGNING ON

Важно: если выдается сообщение о том, что команда неизвестна, то вместо дефиса (-) ключи можно писать через слеш (/).

Ну и наконец можно просто отключить проверку цифровых подписей драйверов через групповую политику. Для запуска оснастки групповой политики вводим в меню Пуск в строке поиска команду gpedit.msc и жмем Ввод. В меню политик идем в Конфигурация пользователя\Административные шаблоны\Система\Установка драйверов и выбираем политику «Цифровая подпись драйверов устройств».

В появившемся окне включаем политику и указываем параметр Пропустить в качестве действия системы при обнаружении неподписанных драйверов.

После перезагрузки политика применится и можно будет загружать и устанавливать любые, в том числе и неподписанные драйвера.

Читайте также:  Sound tune windows 10
Оцените статью