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

Что такое подписание подписи и сильные имена в .net?

Я видел во многих статьях, что написано, что Задержка подписания и сильное имя сборки предотвращают ее приветствие.

Что это значит?

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

Кто-то, пожалуйста, уточните мои сомнения.

4b9b3361

Ответ 1

В MSDN имеется много информации об этом; например: Сильное именование и Задержка подписания

Подводя итог основной идее:

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

Это помогает избежать двух общих источников потенциальных уязвимостей безопасности в ваших программах:

  • Злоумышленник заменяет сборку в вашей программе другой сборкой с тем же именем, но содержит вредоносный код и убеждает вашу программу загружать и выполнять ее.
  • Злоумышленник заменяет сборку в вашей программе другой версией той же сборки, но с известными ошибками, которые с тех пор были исправлены.

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

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

Подписание списания - это метод подписи сборок за пределами процесса сборки. Идея здесь заключается в том, что у вашей компании могут быть политики, которые не позволяют использовать сильные ключи ключей во время сборки (возможно, они остаются в автономном режиме или защищены за паролем.) Записанная с задержкой компоновка отмечена пустой сильной стороной, name key: он в основном резервирует место для ключа, который будет добавлен позже, авторизованным пользователем. В то же время включен частичный ключ с сильным именем - достаточно информации для других сборок, чтобы сделать сильную ссылку, но недостаточно для обнаружения изменений или модификаций.