Рекомендации по подписанию .СЕТЕВЫЕ сборки?

StackOverflow https://stackoverflow.com/questions/35373

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть решение, состоящее из пяти проектов, каждый из которых компилируется в отдельные сборки.Прямо сейчас я подписываю их кодом, но я почти уверен, что делаю это неправильно.Какова здесь наилучшая практика?

  • Подпишите каждый из них другим ключом;убедитесь, что пароли разные
  • Подпишите каждый из них другим ключом;используйте тот же пароль, если хотите
  • Подпишите каждый из них одним и тем же ключом
  • Что- то совершенно другое

По сути, я не совсем уверен, что с ними делает "подписание" или каковы здесь наилучшие практики, поэтому было бы неплохо провести более общее обсуждение.Все, что я действительно знаю, это то, что FxCop наорал на меня, и это было легко исправить, установив флажок "Подписать эту сборку" и сгенерировав файл .pfx с помощью Visual Studio (2008).

Это было полезно?

Решение

Если ваша единственная цель - помешать FXCOP кричать на вас, то вы нашли лучшую практику.

Лучшая практика для подписания ваших собраний - это то, что полностью зависит от ваших целей и потребностей. Нам понадобится больше информации, например, ваше предполагаемое развертывание:

  • Для личного использования
  • Для использования на корпоративном сетевом ПК в качестве клиентского приложения
  • Запуск на веб -сервере
  • Запуск на SQL Server
  • Загружено через Интернет
  • Продается на компакт -диске в термоусадочной обертке
  • Загружен прямо в кибернетический мозг
  • И т. д.

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

ОБНОВЛЯТЬ: Как это приносит пользу вашим конечным пользователям при развертывании в Интернете, если вы получили Сертификат подписания программного обеспечения из авторитета сертификата. Полем Затем, когда они загружают ваши собрания, они могут проверить, что они пришли Domenic's Software Emporium, и они не были изменены или повреждены по пути. Вы также захотите подписать установщик, когда он будет загружен. Это предотвращает предупреждение о том, что некоторые браузеры показывают, что он был получен из неизвестного источника.

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

Другие советы

Наиболее очевидное различие между подписанными и неподписанными сборками заключается в приложении ClickOnce.Если вы не подпишете его, то при первом запуске вашего приложения пользователи получат страшное диалоговое окно с предупреждением "Неизвестный издатель".Если вы подписали его с сертификат от доверенного центра, затем они видят диалог, который менее страшен.Насколько я знаю, подписание с помощью сертификата, который вы создаете самостоятельно, не влияет на предупреждение "Неизвестный издатель". Мгновенный SSL от Comodo содержит примеры диалоговых окон.

Есть некоторые более тонкие различия.Вы должны подписать сборку, прежде чем ее можно будет установить в глобальный кэш сборок (GAC), где она может совместно использоваться несколькими приложениями.Подписание является неотъемлемой частью безопасности доступа к коду (CAS), но я не нашел никого, кто мог бы заставить CAS работать.Я почти уверен, что и GAC, и CAS прекрасно работают с сертификатами, которые вы создаете сами.

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

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

Важно сохранить секрет вашего файла PFX, поскольку он содержит закрытый ключ.

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

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

На самом деле вы получите новый сертификат, но с той же информацией.

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

Подписание используется для уникальной идентификации сборки. Более подробная информация в Как: подписать сборку (Visual Studio).

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top