У меня есть приложение для Windows C++. Я подписываю наш установщик и мой исполняемый файл, но в настоящее время я не подписываю свои DLL (такие как zlib1.dll). Не стоит даже подписывать их, но может ли кто-нибудь объяснить, в чем польза? Например, будет ли моя программа отличаться от программного обеспечения AV или брандмауэра, если все его зависимости будут подписаны? Получат ли пользователи разные предупреждения?Должен ли я подписывать свои DLL-файлы?
ответ
Ваша программа не будет отличаться от AV или брандмауэра. Они проведут проверку подписей на ваш исполняемый файл, который вы уже подписали. Подписание ваших библиотек имеет смысл, когда вы сами проверяете эти подписи перед их загрузкой. Это обеспечивает целостность всех DLL во время выполнения. Рекомендуемой безопасной практикой является подписание всех исполняемых файлов, которые вы отправляете, и проверки их подписей во время выполнения. Если ваши dll будут использоваться другими продуктами, тогда вы должны подписать их, поскольку эти продукты захотят проверить их подлинность и целостность.
Как насчет неявной ссылки? Есть ли способ проверить подпись в этом параметре или необходимо преобразовать все нагрузки DLL в явное соединение (т. Е. Вызовы LoadLibraryEx)? –
Большой вопрос, Брент. Мне бы хотелось узнать ответ. – twk
Я не думаю, что можно проверить подписи для неявно связанных DLL, поскольку DLL будет загружаться до того, как ваш код начнет работать. Однако я знаю один продукт, который явно загружает DLL, с которым он неявно ссылается, только для проверки подписи , – 341008
- 1. Должен ли я документировать свои личные методы?
- 2. Должен ли я тестировать свои контроллеры (MVC)?
- 3. Должен ли я проставлять свои угловые директивы?
- 4. Должен ли я подписывать расширение Chrome или плагин NPAPI?
- 5. Как я могу подписывать свои приложения в кордове 6
- 6. Нужно ли мне подписывать свои сборки для приложения asp.net mvc?
- 7. Где я должен поместить свои тесты JUnit?
- 8. Где я должен определять свои данные?
- 9. Как я должен организовывать свои издевательства?
- 10. Могу ли я подписывать файлы классов Java
- 11. Cherrypy: Где я должен хранить свои шаблоны
- 12. Где я должен выполнять свои функции?
- 13. PHP: где я должен помещать свои включенные?
- 14. Как я должен заказать свои div?
- 15. Должен ли я использовать свои собственные typedefs в вызовах библиотеки?
- 16. Должен ли я выполнять свои обещания по JavaScript?
- 17. Должен ли я писать свои собственные Исключения? - Java
- 18. Должен ли я помещать свои узлы XML в элементы контейнера?
- 19. Должен ли я отключить свои значения массива PHP?
- 20. Должен ли я начать распространять свои системы, когда Wine готов?
- 21. Должен ли я разрешать пользователям сохранять свои пароли?
- 22. Должен ли я создавать свои свойства ivars в iOS?
- 23. Должен ли я компилировать свои Android-приложения против последнего SDK?
- 24. Должен ли я включать auto_increment в свои индексы?
- 25. Должен ли я закрывать свои проблемы на заброшенных проектах GitHub?
- 26. Должен ли я вводить вещи в свои сущности?
- 27. Должен ли я защищать свои куки от инъекций?
- 28. Должен ли я рассматривать свои собственные одиночные атрибуты как частные?
- 29. Должен ли я вводить услуги в свои MVC-представления?
- 30. Должен ли я хранить свои заводы как свойство на Global_asax?
Почему бы не подписать их? Вы уже заплатили за сертификат - так что потребуется всего несколько секунд во время сборки, чтобы подписать их. Зачем пропускать его? – Tim
Тим, я, вероятно, все равно сделаю это, мне в основном просто интересно, что это за эффект. – twk