Відповіді:
Файл .snk використовується для застосування сильного імені до збірки .NET . складається з такої сильної назви
просте текстове ім’я, номер версії та інформація про культуру (якщо вона надана) - введіть відкритий ключ та цифровий підпис.
SNK містить унікальну пару ключів - приватний та відкритий ключ, який можна використовувати для того, щоб у вас було унікальне сильне ім’я для складання. Коли збірка має чітке ім'я, з вмісту збірки будується "хеш", а хеш шифрується приватним ключем. Потім цей підписаний хеш поміщається у збірку разом із відкритим ключем від .snk.
Пізніше, коли комусь потрібно перевірити цілісність чітко названої збірки, вони будують хеш вмісту збірки і використовують відкритий ключ від складання, щоб розшифрувати хеш, який прийшов разом із збіркою - якщо два хеші збігаються, перевірка складання проходить.
Важливо вміти перевіряти збірки таким чином, щоб ніхто не міняв збірку на зловмисну, яка підриває всю програму. Ось чому невлаштованим асамблеям не довіряють так само, як сильно названим зборам, тому їх не можна розміщувати в GAC. Крім того, існує ланцюг довіри - ви не можете створити сильно названу збірку, яка посилається на несильно названі збірки.
Стаття " Секрети сильного називання (архівована на машині Wayback) ". Чудово справляється з поясненням цих понять більш детально. З картинками.
У світі .Net файл SNK використовується для підпису ваших складених бінарних файлів. Це дозволяє зробити кілька речей:
Я не знайомий з тим, як працює сервер BizTalk , тому я не думаю, що я можу пролити багато світла на те, якою конкретною метою вони служать у цьому середовищі.
Сподіваюся, це було дещо корисно.
Файл .snk використовується для підписання асамблей, щоб мати змогу додати їх до кеша глобальної асамблеї (GAC).
Файл .snk містить загальнодоступні та приватні маркери для вашого ключа. Коли ви хочете підписати деякі дані (або двійкові) цим ключем, на даних обчислюється контрольна сума, яка потім шифрується приватним маркером. Потім зашифрована контрольна сума додається до даних. Будь-хто може використовувати загальнодоступний маркер із вашого ключа, щоб розшифрувати контрольну суму і порівняти її з контрольною сумою, яку вони розраховували, щоб переконатися, що підписані дані не підроблені.
Докладніше про криптографію відкритого ключа можна прочитати на веб-сайті http://en.wikipedia.org/wiki/Public-key_cryptography .
Файл .snk - це зберігається версія вашого "ключа", вироблена утилітою sn у наборі утиліти Framework. Потім ви використовуєте цей файл для "цифрового підпису" своїх зборів. Це 2-частинний ключ .. комбінація приватно-публічного ключа. Публічна частина ключа публікується, тобто відома всім. Приватна частина відома лише вам, розробнику компонентів / додатків і має намір зберігатись таким чином.
Коли ви підписуєте свою асамблею, вона використовує приватний ключ та хеш-значення для вашої збірки для створення цифрового підпису, який вбудований у вашу збірку. Після цього кожен, хто завантажує вашу збірку, проходить етап перевірки. Відкритий ключ використовується для перевірки, якщо збірка дійсно походить від вас. Вам просто потрібен відкритий ключ для цього (який також вбудований в токенізовану форму в маніфесті збірки). Якщо збірка була підроблена, значення хешу було б іншим, а навантаження на збірку буде перервано. Це механізм безпеки.
Файл .snk використовується для того, щоб хтось інший не міг пропустити власну збірку замість вашого. Він надає пару ключів шифрування / дешифрування.
Коли для підписання збірки використовується .snk-файл, значення хеш-коду обчислюється з файлу складання та шифрується за допомогою приватного ключа. Цей зашифрований "дайджест" потім приєднується до збірки разом із відкритим ключем з файлу .snk.
Потім, коли хтось отримає вашу збірку, він також може обчислити це значення хеш-коду. Вони використовують відкритий ключ, щоб розшифрувати той, який ви обчислили, та порівняти обчислені значення. Якщо збірка взагалі була змінена, ці значення будуть іншими, і користувач збірки буде знати, що у вас збірка не є тією, яку ви надали.
У контексті сервера BizTalk, хто будує будь-які спеціальні збірки, які використовуються вашим рішенням BizTalk, потрібно буде використовувати файл .snk для підписання збірки, щоб сервер BizTalk міг завантажувати його в GAC та використовувати його.