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

Цифровая подпись — это электронный аналог печати разработчика на установочном файле. Она подтверждает две вещи: программа действительно выпущена заявленной компанией, а файл не был изменён после подписания. Проверить подпись в Windows можно за минуту без сторонних программ — через свойства файла, а для массовой проверки или автоматизации подойдут PowerShell и встроенная утилита sigverif. Ниже разобраны все рабочие способы, разбор деталей сертификата и признаки того, что подпись поддельная или отсутствует не случайно.

Зачем проверять подпись перед запуском программы

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

При этом важно понимать ограничения проверки:

  • Подпись подтверждает издателя и целостность файла, но не его безопасность. Легитимные компании тоже выпускали заражённые сборки, а подписанный инсталлятор может тянуть нежелательное дополнительное ПО.
  • Отсутствие подписи не всегда означает вирус. Небольшие разработчики и open-source проекты нередко распространяют программы без подписи, потому что сертификат кодовой подписи стоит денег и требует организационных усилий.
  • Наличие подписи от известного бренда стоит перепроверять. Сертификаты крадут, а путь издателя в сертификате легко подделать визуально похожим написанием.

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

Быстрая проверка через свойства файла

Это основной способ для большинства ситуаций. Он работает во всех актуальных версиях Windows и не требует прав администратора.

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

Ключевая контрольная точка — именно статус подписи. Если вместо «подпись действительна» вы видите предупреждение, файл либо изменён после подписания, либо цепочка доверия нарушена. Такой файл запускать не стоит, пока причина не выяснена.

Что означают предупреждения о подписи

Сообщение Что оно означает Насколько это опасно
Эта цифровая подпись действительна Файл не изменялся, сертификат действующий, цепочка доверия полная Нормальное состояние
У этой цифровой подписи нет отметки времени Файл подписан, но без метки времени; после истечения срока сертификата подпись формально перестаёт быть действительной Средняя: если срок действия сертификата ещё не вышел, файл скорее всего оригинальный
Цифровая подпись недействительна Файл изменён после подписания либо подпись повреждена Высокая: типичный признак модифицированного или заражённого файла
Не удалось проверить цепочку сертификации Windows не может достроить цепочку до доверенного корневого центра: проблемы с корневыми сертификатами, датой на компьютере или перехват трафика От низкой до высокой: сначала проверьте системную дату, затем источник файла
Сертификат отозван Издатель сам отозвал сертификат (например, при его компрометации) или центр сертификации сделал это принудительно Высокая: файлы, подписанные после отзыва, проверять бессмысленно

Отдельно про дату: если системные часы сбиты на годы вперёд или назад, Windows начнёт считать действующие сертификаты просроченными. Прежде чем делать выводы о «сломанной» подписи, убедитесь, что дата и время на компьютере корректны.

Проверка через PowerShell

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

Один файл

Откройте PowerShell и выполните команду, подставив свой путь:

Get-AuthenticodeSignature «C:\Program Files\Example\program.exe» | Format-List

В выводе смотрите поле Status:

  • Valid — подпись действительна;
  • NotSigned — файл не подписан;
  • HashMismatch — содержимое файла не совпадает с подписью, то есть файл изменён;
  • UnknownError или другие статусы — цепочка доверия, отзыв или техническая проблема; детали видны в поле StatusMessage.

Все исполняемые файлы в папке

Чтобы быстро оценить всю папку, например каталог со скачанными программами:

Get-ChildItem «C:\Downloads» -Filter *.exe | Get-AuthenticodeSignature | Select-Object Path, Status, @{n=’Signer’;e={$_.SignerCertificate.Subject}}

Команда выведет таблицу: путь к файлу, статус подписи и имя издателя. Так за секунды видно, какие файлы из партии не подписаны или подписаны кем-то неожиданным.

Проверка драйверов

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

Get-AuthenticodeSignature -FilePath «C:\Windows\System32\drivers\example.sys» покажет базовую картину, но надёжнее использовать signtool verify /kp /v example.sys из комплекта Windows SDK, если он установлен. Для быстрой бытовой проверки обычно достаточно первого варианта.

Массовая проверка системных файлов утилитой sigverif

В Windows встроена утилита File Signature Verification (sigverif), которая сканирует систему и находит неподписанные файлы. Она полезна, когда вы подозреваете, что среди системных компонентов появился посторонний файл.

  1. Нажмите Win+R, введите sigverif и подтвердите запуск.
  2. Нажмите «Начать». Сканирование может занять несколько минут.
  3. По завершении откройте журнал кнопкой «Дополнительно» → «Просмотреть журнал»: в нём перечислены все неподписанные файлы с путями и датами.

Интерпретировать результаты нужно спокойно: часть записей окажется легитимными файлами от производителей оборудования, которые не проходят через стандартную сертификацию Microsoft. Ищите в списке незнакомые пути вне Program Files и System32, свежие даты появления и названия, не связанные с установленным оборудованием.

Как читать сертификат: на что смотреть внутри

Сам факт наличия подписи мало что даёт, если не посмотреть, кто её поставил. В окне сертификата (кнопка «Просмотр сертификата») проверьте четыре вещи.

  • Поле «Кому выдан» (Subject). Здесь должно стоять реальное юридическое название компании, а не просто имя продукта. Подделки часто используют написание, визуально похожее на бренд: лишний дефис, другую доменную зону, переставленные слова.
  • Поле «Кем выдан» (Issuer). Это центр сертификации. Крупные публичные центры (DigiCert, Sectigo, GlobalSign и подобные) проводят проверку организации перед выдачей сертификата. Подпись, «выданная» самим разработчиком самому себе, ничего не гарантирует.
  • Срок действия. Сертификат должен быть действующим на момент подписания файла. Метка времени (timestamp) позволяет подписи оставаться действительной и после истечения срока сертификата — её отсутствие уже само по себе минус.
  • Тип сертификата. Обычная подпись (OV) подтверждает существование организации. Расширенная проверка (EV) дороже и строже: в Windows SmartScreen такие файлы реже получают предупреждение «неизвестный издатель». Это не показатель безопасности содержимого, но косвенный сигнал серьёзности издателя.

Дополнительная проверка, доступная любому пользователю: сравните домен в сведениях об издателе с официальным сайтом разработчика. Если сертификат ссылается на example-software-download.net, а официальный сайт компании — example.com, перед вами подделка.

Почему SmartScreen и антивирус ругаются даже на подписанные файлы

Частая ситуация: файл подписан, статус «действительна», но SmartScreen всё равно предупреждает о запуске. Причины разные, и они не всегда означают проблему.

  • Мало репутации. SmartScreen опирается на статистику скачиваний. Новый файл от небольшого разработчика просто ещё никому не знаком — предупреждение снимается выбором «Выполнить в любом случае», если вы уверены в источнике.
  • Нет подписи EV-сертификатом. Файлы с обычной подписью набирают репутацию медленнее.
  • Файл действительно подозрителен. Антивирус может среагировать на поведение установщика независимо от подписи. Если срабатывание устойчивое, а источник файла сомнительный, лучше не рисковать.

Обратная ситуация тоже встречается: Windows молча запускает неподписанный файл, если он скачан не из интернета или предупреждения отключены. Отсутствие предупреждения — не признак безопасности, поэтому привычка проверять подпись вручную остаётся полезной.

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

  • Проверять копию, а не оригинал. Если архив распакован повторно или файл пересохранён, проверяйте именно тот экземпляр, который собираетесь запускать.
  • Игнорировать сбитую дату системы. Из-за неё действительные подписи выглядят просроченными, и пользователь делает ложный вывод о подделке.
  • Считать подпись гарантией чистоты. Подпись подтверждает авторство и неизменность, но не отсутствие нежелательного ПО внутри пакета.
  • Доверять имени издателя без сверки. Название в сертификате нужно сверить с официальным сайтом разработчика, а не принимать «на глаз».
  • Запускать файл с недействительной подписью «просто попробовать». Статус HashMismatch означает, что содержимое отличается от того, что подписывал издатель. Даже если причина — повреждение при скачивании, безопаснее скачать файл заново с официального источника.

Сценарии: как действовать в зависимости от результата

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

Что делать дальше

Главный принцип: подпись отвечает на вопрос «кто и когда подписал этот файл», а не «безопасно ли его запускать». Поэтому рабочий порядок такой: скачать программу только с официального сайта разработчика → открыть свойства файла и убедиться, что подпись действительна → сверить имя издателя с официальным названием компании → при сомнениях проверить хеш, если разработчик его публикует. Для пакетной проверки используйте PowerShell, для аудита системы — sigverif.

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

Материал носит информационный характер и описывает общие принципы проверки подписей в Windows. Конкретные решения о запуске программ принимайте с учётом источника файла, репутации издателя и рекомендаций специалистов по информационной безопасности, если речь идёт о корпоративной среде или критичных данных.

PEFile.ru