Le fichier .snk est utilisé pour appliquer une stratégie de gestion de l'environnement. nom fort à un assemblage .NET . un nom aussi fort consiste en
un simple nom textuel, un numéro de version, et des informations sur la culture (si fournies), ainsi qu'une clé publique et une signature numérique.
Le SNK contient une paire de clés unique - une clé privée et une clé publique qui peuvent être utilisées pour s'assurer que vous avez un nom fort unique pour l'assemblage. Lorsque l'assemblage est fortement nommé, un "hash" est construit à partir du contenu de l'assemblage, et le hash est crypté avec la clé privée. Ensuite, ce hachage signé est placé dans l'assembly avec la clé publique du .snk.
Plus tard, lorsque quelqu'un doit vérifier l'intégrité de l'assemblage fortement nommé, ils construire un hachage du contenu de l'assemblage, et utiliser la clé publique de l'assemblage pour déchiffrer le hachage fourni avec l'assemblage - si les deux hachages correspondent, la vérification de l'assemblage passe.
Il est important de pouvoir vérifier les assemblages de cette manière afin de s'assurer que personne ne remplace un assemblage par un assemblage malveillant qui renverserait l'ensemble de l'application. C'est pourquoi les assemblages sans nom de tronc ne sont pas fiables de la même manière que les assemblages avec un nom fort, et ne peuvent donc pas être placés dans le GAC. De plus, il y a une chaîne de confiance - vous ne pouvez pas générer un assemblage fortement nommé qui fait référence à des assemblages non fortement nommés.
L'article " Les secrets d'un nom fort ". Fait un excellent travail pour expliquer ces concepts plus en détail. Avec des photos.