2011-01-17 2 views
8

У меня есть приложение для Windows C++. Я подписываю наш установщик и мой исполняемый файл, но в настоящее время я не подписываю свои DLL (такие как zlib1.dll). Не стоит даже подписывать их, но может ли кто-нибудь объяснить, в чем польза? Например, будет ли моя программа отличаться от программного обеспечения AV или брандмауэра, если все его зависимости будут подписаны? Получат ли пользователи разные предупреждения?Должен ли я подписывать свои DLL-файлы?

+0

Почему бы не подписать их? Вы уже заплатили за сертификат - так что потребуется всего несколько секунд во время сборки, чтобы подписать их. Зачем пропускать его? – Tim

+1

Тим, я, вероятно, все равно сделаю это, мне в основном просто интересно, что это за эффект. – twk

ответ

6

Ваша программа не будет отличаться от AV или брандмауэра. Они проведут проверку подписей на ваш исполняемый файл, который вы уже подписали. Подписание ваших библиотек имеет смысл, когда вы сами проверяете эти подписи перед их загрузкой. Это обеспечивает целостность всех DLL во время выполнения. Рекомендуемой безопасной практикой является подписание всех исполняемых файлов, которые вы отправляете, и проверки их подписей во время выполнения. Если ваши dll будут использоваться другими продуктами, тогда вы должны подписать их, поскольку эти продукты захотят проверить их подлинность и целостность.

+5

Как насчет неявной ссылки? Есть ли способ проверить подпись в этом параметре или необходимо преобразовать все нагрузки DLL в явное соединение (т. Е. Вызовы LoadLibraryEx)? –

+1

Большой вопрос, Брент. Мне бы хотелось узнать ответ. – twk

+1

Я не думаю, что можно проверить подписи для неявно связанных DLL, поскольку DLL будет загружаться до того, как ваш код начнет работать. Однако я знаю один продукт, который явно загружает DLL, с которым он неявно ссылается, только для проверки подписи , – 341008

Смежные вопросы