2010-08-22 4 views
17

Dans mon organisation, nous utilisons des fichiers snk avec des assemblages de noms forts. Nous générons le snk nous-mêmes.snk vs certificat de signature de code

En outre, nous utilisons une signature de signature de code sur les binaires. Nous obtenons le pfx de Verisign.

  • Quelle est la différence entre ces deux processus?
  • N'est-ce pas un problème que le snk ne soit pas reçu de Verisign aussi?

Répondre

20

Le snk et le pfx sont utilisés à deux fins différentes. Le snk est utilisé pour le nommage fort, qui utilise une paire de clés pour identifier de façon unique un assemblage. Le pfx est pour la signature de code, qui est un processus similaire mais qui est destiné à empêcher la falsification malveillante des assemblys distribués publiquement. En utilisant à la fois sur un ensemble à la fois les noms forts ET le signe.

Vous pouvez générer votre propre fichier SNK aussi longtemps que vous gardez la clé privée sécurisée. Le fichier PFX que vous obtenez de Verisign vous permet de signer l'assemblage à l'aide d'une clé sécurisée par un tiers. C'est une couche de sécurité supplémentaire qui permet aux utilisateurs de votre assembly de savoir qu'il n'a pas été falsifié.

+1

Donc le snk lie juste une paire de clés privée-publique à un assembly, indépendamment de l'identité du propriétaire de la clé, afin de permettre une référence forte? Cela signifie que si je (un utilisateur) fais confiance à l'exe, je peux faire confiance à toutes les références. Et comment est-ce que je ferais confiance à l'exe, est-ce là où la signature du code est en place? Dans ce cas, je devrais seulement signer l'exe et non les autres assemblées parce que je sais qu'ils n'ont pas été falsifiés. Est-ce correct? –

+3

La différence fondamentale est qu'une signature SNK est effectuée par un individu et prend en charge l'ajout d'un assembly au GAC. La signature de code est médiatisée par une tierce partie fiable et cautionnée, comme avec SSL. La clé privée est conservée et la clé publique publiée par Verisign (dans votre cas.) Dans les deux cas, l'assembly est "signé" avec la clé privée et validé avec la clé publique. –

+7

Je dirais que signer avec snk donne l'assurance de ne pas falsifier (en vertu des hash), alors que signer avec pfx donne l'assurance que le code provient d'une source donnée (comme vérifié par Verisign lors de l'achat du certificat). De plus (je peux me tromper ici), je pense que la signature avec pfx rend superflu la signature avec Snk. –

Questions connexes