Файл .snk используется для применения строгого имени к сборке .NET а>. такое сильное имя состоит из
простое текстовое имя, номер версии и информация о культуре (если предоставлена), а также открытый ключ и цифровая подпись.
SNK содержит уникальную пару ключей - закрытый и открытый ключи, которые можно использовать для обеспечения уникального строгого имени для сборки. Когда сборка имеет строгое имя, хеш создается из содержимого сборки, и хеш шифруется с помощью закрытого ключа. Затем этот подписанный хэш помещается в сборку вместе с открытым ключом из .snk.
Позже, когда кому-то потребуется проверить целостность сборки со строгим именем, они построят хэш содержимого сборки и используют открытый ключ из сборки для расшифровки хеша, который пришел со сборкой. - если два хэша совпадают, проверка сборки проходит.
Важно иметь возможность проверять сборки таким образом, чтобы гарантировать, что никто не заменит сборку вредоносной, которая нарушит работу всего приложения. Вот почему сборкам со строгими именами не доверяют так же, как сборкам со строгими именами, поэтому их нельзя поместить в GAC. Кроме того, существует цепочка доверия - вы не можете сгенерировать сборку со строгим именем, которая ссылается на сборки со строгим именем.
Статья Секреты строгого именования (из архива Wayback Machine). Отлично объясняет эти концепции более подробно. С картинками.
person
Blair Conrad
schedule
25.09.2008