Как программно получить информацию о компании, используемую для цифровой подписи сборки в .NET? - PullRequest
2 голосов
/ 15 апреля 2010

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

Таким образом, более надежным средством будет проверка информации об организации, встроенной в подписанную сборку (которая отображается в диалоговом окне UAC), по моей общеизвестной организационной строке, поскольку она будет оставаться такой же.

Кто-нибудь знает, как получить эту информацию из сборки с цифровой подписью?

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Разве не достаточно просто проверить, что сборка имеет строгое имя с использованием вашего ключа? Authenticode в основном приносит пользу конечному пользователю, который может определить, кто вы такой, каким вы себя называете (благодаря усилиям сертифицирующего органа). На мой взгляд, в вашей ситуации нет никакой дополнительной безопасности в сертификате аутентификации по сравнению с простым строгим именем.

Я предполагаю, что строгое имя гораздо проще проверить, и вам не придется беспокоиться о смене ключа.

0 голосов
/ 15 апреля 2010

Предполагая, что сборка подписана с использованием технологии Authenticode и сертификатов X.509 (а не только со строгим именем), вам необходим код считывателя Authenticode (или компонент), чтобы извлечь сертификат и проверить его. После этого вы найдете название организации в одном из полей записи SubjectName или SubjectRDN сертификата.

Мы предлагаем Класс чтения Authenticode и класс манипуляции сертификатами в пакете PKIBlackbox.

...