Подтвердить что ты не робот

Рекомендации по подписке .NET-сборок?

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

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

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

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

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