Вопрос

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

Есть ли какое-нибудь простое объяснение того, как используется ключ со строгим именем и как он работает?

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

Решение

Файл .snk используется для применения строгое имя для сборки .NET.такое сильное название состоит из

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

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

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

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

Статья "Секреты сильного именования".Отлично справляется с объяснением этих концепций более подробно.С картинками.

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

В a the.Сетевой мир the СНК файл используется для подписи ваших скомпилированных двоичных файлов.Это позволяет произойти нескольким вещам:

  1. Вы можете зарегистрировать Сборку в GAC (Глобальный кэш сборок).В основном для того, чтобы вы могли ссылаться на него из многих мест на одном компьютере без необходимости поддерживать несколько копий).
  2. Вы можете использовать свои двоичные файлы из других двоичных файлов, которые также подписаны (это странный вирусный тип поведения в отношении подписанных сборок).
  3. Ваша сборка не может быть (легко) изменена с помощью третьи лица которые не имеют доступа к файлу SNK, обеспечивающему хотя бы небольшой уровень безопасности.

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

Надеюсь, это было в какой-то степени полезно.

Файл .snk используется для подписи сборок, чтобы иметь возможность добавлять их в Глобальный кэш сборок (GAC).

Файл .snk содержит открытый и закрытый токены для вашего ключа.Когда вы хотите подписать какие-либо данные (или двоичный файл) этим ключом, для этих данных вычисляется контрольная сумма, которая затем шифруется с помощью закрытого токена.Затем зашифрованная контрольная сумма добавляется к данным.Любой желающий может использовать открытый токен из вашего ключа для расшифровки контрольной суммы и сравнить его с контрольной суммой, которую он рассчитал, чтобы убедиться, что подписанные данные не были подделаны.

Вы можете прочитать больше о криптографии с открытым ключом по адресу http://en.wikipedia.org/wiki/Public-key_cryptography.

Файл .snk - это сохраненная версия вашего "Ключа", созданная утилитой sn в наборе утилит framework.Затем вы используете этот файл для "цифровой подписи" ваших сборок.Это ключ, состоящий из 2 частей..комбинация закрытого и открытого ключей.Публичная часть ключа публикуется, т.е.известный всем.Закрытая часть известна только вам, разработчику компонента / приложения, и предназначена для сохранения таким образом.

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

Файл .snk используется для гарантии того, что кто-то другой не сможет вставить свою сборку вместо вашей.Он предоставляет пару ключей шифрования / дешифрования.

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

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

В контексте BizTalk Server тот, кто создает любые пользовательские сборки, используемые вашим решением BizTalk, должен будет использовать файл .snk для подписи сборки, чтобы BizTalk server мог загрузить ее в GAC и использовать.

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