Soft-Personal
Проверка цифровой подписи EXE/MSI в Windows
Коротко
Два быстрых пути: через Свойства файла → «Цифровые подписи» и через PowerShell командой Get-AuthenticodeSignature. Понимаем, кому подписан файл и доверять ли.
Связанные материалы:
Проверка хеша (SHA-256) •
VirusTotal: как читать результаты •
GPG: проверка PGP-подписи •
Чек-лист безопасной установки •
Проверка хеша (SHA-256) •
VirusTotal: как читать результаты •
GPG: проверка PGP-подписи •
Чек-лист безопасной установки •
Что понадобится
- Windows 10/11 — проверка доступна «из коробки» (вкладка «Цифровые подписи»).
Нужно проверять подпись именно в корне программы, так как если будете проверять Ярлыки на рабочем столе, подпись не покажет. Указан наглядный пример с подписью. - PowerShell — для подробной проверки (
Get-AuthenticodeSignature
). - Опционально: Windows SDK (
signtool.exe
) и Sysinternals SigCheck.
Возможности
- Определить издателя (Publisher) и статус подписи (действительна/повреждена/истекла).
- Проверить цепочку сертификатов до корневого центра и наличие отметки времени (timestamp).
- Понять, стоит ли запускать установщик или искать официальный источник.
Быстрый старт
- Через Проводник: ПКМ по EXE/MSI → Свойства → вкладка Цифровые подписи → выберите подпись → Сведения → Просмотр сертификата. Проверьте «Кем выдан», «Кому выдан», период действия.
- Через PowerShell:
Get-AuthenticodeSignature "C:\Путь\к\файлу.exe"
Оцените SignerCertificate.Subject, TimeStamperCertificate, Status (Valid/NotTrusted/HashMismatch/UnknownError).
- Через signtool (опционально):
signtool verify /pa "C:\Путь\к\файлу.exe" signtool verify /pa /v "C:\Путь\к\файлу.exe"
Что смотреть в сертификате
- Издатель (Subject): совпадает с брендом/доменом офсайта?
- Цепочка сертификатов: корневой центр доверенный, нет ли «Untrusted/Unknown»?
- Отметка времени: корректный timestamp — подпись валидна на момент подписания.
- Алгоритм: SHA-256 (а не устаревший SHA-1).
- Дата выпуска vs релиз-ноты: разумно коррелируют.

Статусы подписи — что значит и что делать
Статус | Что значит | Действия |
---|---|---|
Valid |
Подпись корректна, цепочка и (обычно) timestamp в порядке. | Сверьте издателя с офсайтом, при желании проверьте хеш. |
NotSigned |
Файл не подписан. | Качать только с офсайта, дополнительно проверить хеш и VirusTotal. |
NotTrusted |
Нет доверия к цепочке (корень/промежуточные). | Проверьте обновления корневых сертификатов Windows; сравните с официальной сборкой. |
HashMismatch |
Подпись не сходится с содержимым. | Не запускать. Снова скачать с офсайта и сверить SHA-256. |
Expired / нет timestamp |
Сертификат истёк и нет метки времени. | Лучше взять свежий дистрибутив с актуальной подписью. |
PowerShell: массовая проверка в папке
# Проверить подпись всех EXE/MSI в папке и показать краткий отчёт
Get-ChildItem -Path "C:\Downloads" -Include *.exe,*.msi -File |
ForEach-Object {
$sig = Get-AuthenticodeSignature $_.FullName
[PSCustomObject]@{
File = $_.Name
Status = $sig.Status
Publisher = $sig.SignerCertificate.Subject
Timestamp = $sig.TimeStamperCertificate.Subject
}
} | Format-Table -Auto
Signtool: мини-шпаргалка
signtool verify /pa "C:\Path\file.exe"
signtool verify /pa /v "C:\Path\file.exe"
signtool verify /kp "C:\Path\driver.sys"
Для обычных приложений используйте /pa
; для драйверов — /kp
.
Sysinternals SigCheck
SigCheck (portable): показывает подпись и репутацию файла.
sigcheck64.exe -q -m "C:\Path\file.exe"
sigcheck64.exe -i "C:\Path\file.exe"
Безопасность
Важно: цифровая подпись подтверждает автора и целостность, но не «полезность» софта.
Решение принимается в комплексе: официальный источник → подпись → хеш → VirusTotal → SmartScreen/Defender.
Решение принимается в комплексе: официальный источник → подпись → хеш → VirusTotal → SmartScreen/Defender.