Насколько важна цифровая подпись для наших исполняемых файлов?

Производим систему управления контентом. Это система на основе базы данных, используемая только предприятиями и организациями и никогда не загружаемая из Интернета. То есть это не то программное обеспечение, на которое кто-то может наткнуться и задаться вопросом, что это такое и безопасно ли его запускать. За 20 с лишним лет наша система продается, ее исполняемые файлы ни разу не подписывались цифровой подписью. Не пора ли нам начать их подписывать?

Для начала я могу выделить несколько плюсов и минусов:

  • Pro: при использовании сертификатов Verisign можно использовать отчет об ошибках Windows.
  • Pro: когда Windows Vista и Windows 7 показывают одно из этих раздражающих сообщений UAC, отображаются подписанные приложения. немного приятнее
  • Против: сертификаты стоят денег. Не много, но если они бесполезны, это слишком
  • Против: подписание связано с некоторыми накладными расходами на обслуживание, насколько я не знаю.

person eran    schedule 22.02.2010    source источник


Ответы (3)


С технической стороны вы уже указали плюсы / минусы.

С точки зрения бизнеса это зависит от ваших пользователей. Возможно, если вы продаете B2B, это не имеет значения, как если бы вы продавали B2C или менее опытным пользователям, которые больше оценили бы более приятное сообщение UAC.

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

Я бы предпочел потратить эти усилия на улучшение чего-то другого.

person user97863    schedule 22.02.2010

Pro: при использовании сертификатов Verisign можно использовать отчеты об ошибках Windows.

На самом деле, для использования отчетов об ошибках Windows вам нужен сертификат подписи Verisign или другой принятый код, но сертификат нужен только для доступа к системе WinQual. Сам исполняемый файл не обязательно должен быть подписан, сообщение об ошибках также отлично работает и с неподписанными exes.

Против: подписание связано с некоторыми накладными расходами на обслуживание, насколько я не знаю. Хотел бы здесь от вас ...

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

Плюс: когда Vista / 7 показывает одно из этих надоедливых сообщений UAC, подписанные приложения выглядят немного лучше.

Что касается подсказки UAC - действительно ли вашему приложению нужны повышенные права или права администратора для запуска? Лучший способ избежать этого запроса - вообще не требовать никаких повышенных привилегий.

person Suma    schedule 22.02.2010
comment
Вы правы насчет сообщений UAC - после некоторой доработки наше приложение теперь работает с правами пользователя, поэтому эти сообщения не должны появляться в любом случае. Но если это делают другие (например, брандмауэр), они, вероятно, будут лучше, если приложение будет подписано. - person eran; 22.02.2010
comment
Сообщения брандмауэра и другие подобные вещи можно обрабатывать с помощью настройки (при условии, что вы используете настройку). Запуск установки с повышенными привилегиями обычно считается разумным, а запуск приложения - нет. - person Suma; 22.02.2010

Подписание связано с некоторыми накладными расходами на обслуживание, насколько я не знаю.

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

person Community    schedule 22.02.2010
comment
Вы имеете в виду подписанный с использованием того же сертификата или подписанный любым сертификатом? Первое невозможно (невозможно подписать kernel32.dll), но и второе тоже кажется проблемой. Можем ли мы подписать неподписанный сторонний исполняемый файл, если он развернут с нашим приложением? - person eran; 22.02.2010