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

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

Есть ли способ проверить цифровую подпись, чтобы убедиться, что она действительна при запуске exe, чтобы избежать запуска модифицированных версий?

Визуальная студия 2008 виндовс 7


person Lodle    schedule 15.07.2009    source источник


Ответы (2)


Вот пример программы (в ней используется < функция href="http://msdn.microsoft.com/en-us/library/aa388208%28VS.85%29.aspx" rel="noreferrer">WinVerifyTrust), которая проверяет подпись, но я Я не уверен, что это будет работать под Windows 7. Вы должны попробовать.

person Kirill V. Lyadvinsky    schedule 15.07.2009
comment
WinTrustVerify — это то, что нужно сделать. Он скажет вам, что двоичный файл был подписан кодом. Если вам нужно убедиться, что он был подписан с определенным сертификатом (например, вашей компании), вам нужно вызвать CertVerifyCertificateChainPolicy для проверки (возможно, в цикле). - person selbie; 02.08.2009

Учитывая, что у вас уже есть потребность в UAC, не будет ли достаточно установить параметр GPO «Повышать права только для подписанных и проверенных исполняемых файлов» в «Конфигурация компьютера\Настройки Windows\Локальные политики\Параметры безопасности»? Также есть "Использование правил сертификатов для исполняемых файлов Windows для политик ограниченного использования программ" Настройка, которая может быть полезна.

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

person MSalters    schedule 15.07.2009
comment
это будет установлено на компьютерах конечных пользователей, поэтому я не могу установить эту опцию. Меня больше беспокоит коррупция, чем хакеры. - person Lodle; 15.07.2009
comment
Хорошо, из вашего вопроса не ясно, боялись ли вы Мерфи или Макиавелли. - person MSalters; 15.07.2009