Question

Qu'est-ce qu'un fichier .snk? Je sais que cela signifie Clé fortement désignée , mais toutes les explications sur sa nature et son fonctionnement me dérangent.

Existe-t-il une explication simple sur l'utilisation et le fonctionnement d'une clé fortement nommée?

Était-ce utile?

La solution

Le fichier .snk est utilisé pour appliquer un nom fort à un assembly .NET. . un tel nom fort se compose de

  

un nom de texte simple, un numéro de version,   et informations sur la culture (si   fourni) & # 8212; plus une clé publique et un   signature numérique.

Le SNK contient une paire de clés unique - une clé privée et publique qui peut être utilisée pour garantir que vous avez un nom fort unique pour l'assembly. Lorsque l'assemblage porte un nom fort, un "hash" est construit à partir du contenu de l'assembly et le hachage est crypté avec la clé privée. Ensuite, cette table de hachage signée est placée dans l’assemblage avec la clé publique du fichier .snk.

Plus tard, lorsque quelqu'un doit vérifier l'intégrité de l'assembly portant un nom fort, il crée un hachage du contenu de l'assembly et utilise la clé publique de l'assembly pour déchiffrer le hachage fourni. avec l'assemblage - si les deux hachages concordent, la vérification de l'assemblage est validée.

Il est important de pouvoir vérifier les assemblages de cette manière pour s'assurer que personne ne les remplace par un ensemble malveillant qui renverserait l'ensemble de l'application. C'est pourquoi les assemblys sans nom fort ne sont pas approuvés de la même manière que les assemblys avec nom fort, ils ne peuvent donc pas être placés dans le GAC. En outre, il existe une chaîne de confiance: vous ne pouvez pas générer un assemblage portant un nom fort qui référence des assemblys non nommés.

L'article " Les secrets de la forte dénomination ". Fait un excellent travail d’explication plus détaillée de ces concepts. Avec des images.

Autres conseils

  

Dans un monde the.Net, le fichier SNK est utilisé pour signer les fichiers binaires compilés.   Cela permet que quelques choses se produisent:

  1. Vous pouvez enregistrer l'ensemble dans le (Global Assembly Cache) du GAC. En gros, vous pouvez le référencer à plusieurs endroits sur le même ordinateur sans avoir à conserver plusieurs copies).
  2. Vous pouvez utiliser vos fichiers binaires à partir d'autres fichiers binaires également signés (il s'agit d'un comportement étrangement viral en ce qui concerne les assemblys signés).
  3. Votre assemblage ne peut pas (facilement) être modifié par des tierces parties qui n'ont pas accès au fichier SNK, ce qui offre au moins une petite sécurité.

Je ne connais pas bien le fonctionnement du serveur BizTalk . Je ne pense donc pas pouvoir éclaircir les objectifs spécifiques qu'ils servent dans cet environnement.

J'espère que cela vous a été utile.

Le fichier .snk est utilisé pour signer les assemblys afin de pouvoir les ajouter au Global Assembly Cache (GAC).

Le fichier .snk contient les jetons publics et privés de votre clé. Lorsque vous souhaitez signer certaines données (ou binaires) avec cette clé, une somme de contrôle est calculée sur les données, qui sont ensuite chiffrées avec le jeton privé. La somme de contrôle chiffrée est ensuite ajoutée aux données. Toute personne peut utiliser le jeton public de votre clé pour déchiffrer la somme de contrôle et la comparer à la somme de contrôle calculée pour vérifier que les données signées n'ont pas été falsifiées.

Pour en savoir plus sur la cryptographie à clé publique, rendez-vous à l'adresse http://fr.wikipedia.org/. wiki / Public-key_cryptography .

Un fichier .snk est une version persistante de votre " Clé " produite par l'utilitaire sn dans l'ensemble d'utilitaires d'infrastructure. Vous utilisez ensuite ce fichier pour "signer numériquement" vos assemblages. Il s’agit d’une combinaison de clé privée-publique en deux parties. La partie publique de la clé est publiée à la connaissance de tous. La partie privée n’est connue que de vous, développeur du composant / application, et doit être conservée de cette manière.

Lorsque vous signez votre assemblage, il utilise la clé privée et une valeur de hachage pour votre assemblage afin de créer une signature numérique intégrée dans votre assemblage. Par la suite, quiconque charge votre assemblage passe par une étape de vérification. La clé publique est utilisée pour valider si l'assemblage vient vraiment de vous. Vous avez simplement besoin de la clé publique pour cela (qui est également intégrée dans un formulaire à jeton dans le manifeste de l'assembly). Si l'assemblage a été altéré, la valeur de hachage serait différente et la charge de l'assemblage serait abandonnée. Ceci est un mécanisme de sécurité.

Un fichier .snk est utilisé pour empêcher toute autre personne de glisser un assemblage à la place du vôtre. Il fournit une paire de clés de cryptage / décryptage.

Lorsqu'un fichier .snk est utilisé pour signer un assembly, une valeur de hashcode est calculée à partir du fichier d'assembly et cryptée à l'aide de la clé privée. Ce crypté " digérer " est ensuite ajouté à l’assemblage avec la clé publique du fichier .snk.

Ensuite, lorsque quelqu'un reçoit votre assembly, il peut également calculer cette valeur de hashcode. Ils utilisent la clé publique pour déchiffrer celle que vous avez calculée et comparer les valeurs calculées. Si l'assemblage a été modifié, ces valeurs seront différentes et l'utilisateur de l'assemblage saura que l'assemblage dont vous disposez n'est pas celui que vous avez fourni.

Dans le contexte de BizTalk Server, quiconque construit des assemblys personnalisés utilisés par votre solution BizTalk devra utiliser un fichier .snk pour signer l'assembly afin que le serveur BizTalk puisse le charger dans le GAC et l'utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top