Подпись кода: какие типы файлов я должен подписывать и почему? - PullRequest
4 голосов
/ 12 февраля 2010

У меня новый сертификат для подписи кода, и мне интересно, какие файлы я должен подписать.

Очевидно, что установочный MSI-пакет и все .exe-файлы, которые запускаются с повышенными правами, должны быть подписаны, чтобы избежать предупреждений «неизвестного издателя», но я должен подписать другие исполняемые файлы, например .exe, который не требует повышения прав, .dll или .oxc?

Кажется, что сами Microsoft справляются с этим непоследовательно:

  • В Office 2007 все исполняемые файлы назначены
  • В Visual Studio 2008 все .exe и многие .dll подписаны, однако есть также много неподписанных библиотек DLL (очевидно, сборок со строгими именами, возможно, они считают достаточными строгие имена)
  • В Windows (7) ни исполняемые файлы, ни библиотеки не подписаны (даже исполняемые файлы, для которых требуется UAC, например mmc.exe!)

1 Ответ

3 голосов
/ 12 февраля 2010

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

Есть только несколько причин, по которым я бы подумал о подписании всего.

  1. Это может иметь какое-то преимущество с лечением антивирусных поставщиков ваши файлы как более надежные, поэтому меньше поддержки / установки хлопот.
  2. Он помечает файл как более надежный для обычного пользователя, например, когда я очищаю систему, зараженную вирусом, с помощью автозапуска от MS, я стремлюсь искать дрянные вещи, которые не имеют подписи, они показывают милю.
  3. Вы хотите выглядеть более профессионально.

Я не знаю, какие накладные расходы возникают при проверке подписи, поэтому старые системы могут работать медленнее. Кроме того, если ваш сертификат принадлежит поставщику дешевых сертификатов, то корневой CA может быть не включен в более старые платформы (XP pre SP2 и т. Д.).

О, да, я бы делал это только как часть сборки (интеграция в MSBuild или сервер сборки), так как это может быть утомительным.

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

Немного бессмысленно, но я думаю, что нет правильного ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...