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

Цифровая подпись — это электронный аналог печати разработчика на файле. Она подтверждает две вещи: кто именно выпустил программу и не был ли файл изменён после подписания. Проверить подпись в Windows можно за минуту без сторонних программ: откройте свойства файла, вкладку «Цифровые подписи» (в Windows 11 — «Общие» → «Безопасность») и посмотрите, кто подписал файл и действителен ли сертификат. Если подписи нет вообще или она помечена как недействительная — это серьёзный повод не запускать файл.

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

Зачем проверять подпись и что она реально гарантирует

Подпись работает так: разработчик получает сертификат у удостоверяющего центра, специальной утилитой вычисляет хеш файла (его «отпечаток») и шифрует его своим ключом. Windows при проверке расшифровывает этот отпечаток открытым ключом из сертификата, заново считает хеш файла и сравнивает значения. Совпало — файл не менялся с момента подписания. Не совпало или сертификат недействителен — система предупредит.

Из этого следуют важные ограничения, о которых часто забывают:

  • Подпись подтверждает издателя, но не его добросовестность. Злоумышленник тоже может купить сертификат и подписать вредоносную программу своим именем. Поэтому важно смотреть, кому выдан сертификат, а не просто наличие подписи.
  • Подпись не гарантирует отсутствие уязвимостей или нежелательного поведения: реклама, сбор телеметрии и агрессивные установщики могут быть легально подписаны.
  • Если подпись стоит на установщике, это не значит, что все компоненты внутри тоже подписаны тем же издателем.

Тем не менее для типичного пользователя проверка подписи остаётся самым быстрым фильтром: большинство массовых угроз распространяется через неподписанные или подделанные файлы, а легитимные крупные разработчики подписывают дистрибутивы почти всегда.

Способ 1. Свойства файла — самый быстрый вариант

Подходит для любой версии Windows и не требует ничего устанавливать.

  1. Найдите файл программы (обычно .exe, .msi или .dll).
  2. Щёлкните по нему правой кнопкой мыши и выберите «Свойства».
  3. Откройте вкладку «Цифровые подписи». В Windows 11 путь может отличаться: список подписей иногда показывается прямо на вкладке «Общие» рядом со строкой безопасности.
  4. Выберите подпись в списке и нажмите «Сведения».

В окне сведений вы увидите имя издателя, дату подписания и статус проверки. Обратите внимание на три вещи:

  • Имя подписавшего. Оно должно соответствовать известному вам разработчику. Если файл называется «photo-editor-setup.exe», а подписан он малоизвестной компанией с другим названием — это само по себе подозрительно.
  • Статус сертификата. Формулировка «Этот сертификат действителен» — норма. Предупреждение о том, что сертификат отозван или истёк, требует внимания.
  • Отметка «файл изменён после подписания». Это худший сценарий: целостность нарушена, файл трогать нельзя.

Если вкладки «Цифровые подписи» нет вовсе — файл не подписан. Это не всегда признак вируса: небольшие open-source проекты часто распространяют сборки без подписи, потому что сертификаты стоят денег. Но именно в этом случае нужно дополнительно сверить файл другими способами, о которых ниже.

Способ 2. PowerShell — подробная информация о сертификате

Когда нужно увидеть больше деталей — срок действия, цепочку доверия, назначение сертификата — удобнее командная строка PowerShell.

  1. Откройте PowerShell (можно без прав администратора).
  2. Выполните команду, подставив свой путь:

    Get-AuthenticodeSignature «C:\Downloads\program.exe» | Format-List

  3. Посмотрите поле Status.

Основные значения поля Status и их смысл:

Статус Что означает Что делать
Valid Подпись корректна, сертификат действителен, файл не изменён Файл цел; оцените, доверяете ли издателю
HashMismatch Файл изменён после подписания Не запускать; скачать заново из официального источника
NotSigned Подписи нет Искать альтернативный источник или проверять хеш вручную
UnknownError Windows не смогла проверить цепочку сертификатов Возможна проблема с корневыми сертификатами системы; обновите Windows и повторите
NotTrusted Сертификат отозван или не входит в доверенные Не запускать до выяснения причин

Дополнительно можно посмотреть объект целиком: команда (Get-AuthenticodeSignature «C:\path\file.exe»).SignerCertificate покажет издателя, срок действия и серийный номер сертификата. Сравните срок действия с датой подписания: если программа подписана давно, а сертификат уже истёк, это нормально при наличии отметки времени — Windows учитывает её при проверке.

Способ 3. signtool — проверка для продвинутых случаев

Утилита signtool входит в состав Windows SDK и позволяет проверить подпись глубже, включая вложенные подписи и отметку времени. Команда выглядит так: signtool verify /pa /v «C:\path\file.exe». Ключ /pa включает проверку по политике Authenticode (как это делает Windows), /v выводит подробный отчёт.

Этот способ нужен редко: например, когда вы разбираете инсталлятор с несколькими подписями или хотите убедиться, что отметка времени присутствует. Для повседневных задач достаточно свойств файла и PowerShell.

Что делать с результатом проверки

Подпись действительна и принадлежит ожидаемому издателю

Файл цел, и ответственность за его содержимое несёт конкретная компания. Дальнейший риск связан уже не с подделкой, а с доверием к самому издателю. Если компания вам незнакома, потратьте пару минут: найдите официальный сайт разработчика, убедитесь, что название в сертификате совпадает с ним, и почитайте независимые отзывы о программе.

Подпись есть, но файл изменён после подписания

Такое случается по двум причинам. Безобидная: некоторые разработчики пересобирают или «доклеивают» данные к файлу после подписания (например, добавляют метаданные). Опасная: файл был модифицирован злоумышленником — внедрён вредоносный код. Различить их дистанционно сложно, поэтому безопасное правило одно: удалите файл и скачайте его заново из официального источника. Если новая копия снова окажется «изменённой после подписания», напишите разработчику — возможно, это особенность его процесса сборки.

Подпись отсутствует

Отсутствие подписи само по себе не приговор. Действуйте так:

  1. Убедитесь, что скачали файл с официального сайта проекта, а не с зеркала или файлообменника.
  2. Если проект публикует контрольные суммы (SHA-256), сверьте хеш своего файла с опубликованным. В PowerShell это делается командой Get-FileHash «C:\path\file.exe» -Algorithm SHA256.
  3. Прогоните файл через онлайн-сервисы анализа вроде VirusTotal: они проверят файл десятками антивирусных движков и покажут, подписан ли он.
  4. Запускайте неподписанную программу сначала в ограниченной среде: без прав администратора, желательно на виртуальной машине, если файл получен из сомнительного источника.

Сертификат отозван или истёк

Отзыв сертификата означает, что удостоверяющий центр аннулировал его — например, из-за компрометации ключа. Запускать такой файл рискованно: теоретически он мог быть подписан скомпрометированным ключом. Истёкший сертификат без отметки времени тоже проблема: невозможно установить, когда именно файл был подписан. В обоих случаях ищите более свежую версию программы у разработчика.

Типичные ошибки при проверке подписи

  • Доверять любому наличию подписи. Сертификат может принадлежать неизвестному издателю или даже мошеннической компании. Читайте имя подписавшего, а не только галочку «подписано».
  • Проверять ярлык вместо файла. Ярлык (.lnk) не содержит подписи программы. Проверяйте сам исполняемый файл, обычно лежащий в Program Files или папке установки.
  • Игнорировать предупреждение SmartScreen. Если Windows блокирует запуск малоизвестного файла, это дополнительный сигнал, а не досадная помеха. Не отключайте защиту ради одного запуска, пока не проверили файл иначе.
  • Сверять хеш с суммой с того же сайта, откуда скачали файл. Если сайт скомпрометирован, там будет и заражённый файл, и «правильная» сумма для него. Ориентируйтесь на суммы из репозитория исходного кода или независимых источников.
  • Считать подписанный установщик гарантией чистоты всех компонентов. Крупные пакеты содержат десятки библиотек; подпись главного исполняемого файла не покрывает их автоматически.

Частые вопросы

Почему у известной бесплатной программы нет подписи?

Кодовые сертификаты стоят заметных денег и требуют юридического оформления, поэтому одиночные разработчики и небольшие open-source проекты нередко распространяют сборки без подписи. В таком случае опирайтесь на контрольные суммы, репутацию репозитория (например, официальные каналы проекта) и результаты антивирусной проверки.

Что значит «подписано от имени» одной компании, а программа другой?

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

Можно ли подделать цифровую подпись?

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

Нужно ли проверять подпись каждого файла большой программы?

Для быстрой оценки достаточно проверить основной исполняемый файл и установщик. Глубокий аудит всех компонентов имеет смысл только при расследовании инцидента или работе с критичной инфраструктурой.

Что запомнить

Главный принцип: подпись отвечает на вопрос «цел ли файл и кто за него отвечает», но не на вопрос «безопасна ли программа». Начинайте с вкладки «Цифровые подписи» в свойствах файла: действительная подпись узнаваемого издателя — хороший знак, изменённый после подписания файл — однозначный стоп-сигнал, отсутствие подписи — повод перепроверить источник и хеш. Если файл пришёл не с официального сайта, не полагайтесь ни на один из признаков по отдельности: сверьте сумму SHA-256, прогоните файл через многодвижковый онлайн-сканер и запускайте без прав администратора, пока не убедитесь в его происхождении.

PEFile.ru