Divya B Nair Ответов: 1

Как проверить исполняемый файл по цифровому сертификату


Привет,

У меня есть.Чистый исполняемый файл, который я подписал цифровой подписью с помощью сертификата, сгенерированного через makecert.exe и подписано с помощью signtool. Как проверить, что exe-файл не был подделан или он все еще использует сертификат, подписанный мной цифровой подписью.

Например, ситуация, когда любой желающий может заменить exe - файл, который имеет цифровую подпись другим сертификатом и помещен в Доверенные корневые центры.

Из различных интернет источников я читал что приведенный ниже код просто проверит действителен ли сертификат

X509Certificate signer = X509Certificate.CreateFromSignedFile(executablePath);
X509Certificate2 certificate = new X509Certificate2(signer);
var certificateChain = new X509Chain
{
    ChainPolicy = {
        RevocationFlag = X509RevocationFlag.EntireChain,
        RevocationMode = X509RevocationMode.Online,
        UrlRetrievalTimeout = new TimeSpan(0, 1, 0),
        VerificationFlags = X509VerificationFlags.NoFlag
    }
};

var chainIsValid = certificateChain.Build(certificate);
if (chainIsValid)
{}

И предлагается использовать WinVerifyTrust. Мой вопрос заключается в том, что WinVerifyTrust также проверит сертификат, если тот же exe-файл подписан другим сертификатом, развернутым в доверенных корневых центрах. Как я могу связать exe-файл с моим сертификатом? Или как WinVerifyTrust может быть полезен в этой ситуации, как упоминалось везде? Пожалуйста, помогите!!

Спасибо

Что я уже пробовал:

Я уже пробовал использовать X509Certificate и WinVerifyTrust(). Но у меня не так много знаний связанных с WinVerifyTrust()

1 Ответов

Рейтинг:
1

Divya B Nair

Я хочу проверить действительность подписи против моего exe-файла в C#.Net.

Maciej Los

Так что используйте этот инструмент!