J'essaie d'avoir une compréhension de la signature formelle de DLL / Assemblys. P>
en particulier p>
5 Réponses :
* What sort of modules need to be signed/ best practice for going about it
Habituellement, la signature de code est utile lorsque votre produit est logiciel ou que vous travaillez dans un environnement où chaque logiciel est soumis à un examen minutieux. En signant le logiciel personnalisé de votre bureau, vous pouvez le placer dans une relation de fiducie supérieure que d'autres. P>
Habituellement, vous générez la clé privée, puis lorsque vous allez construire, vous pouvez joindre cette clé privée sur un serveur de construction. Cela empêche les développeurs autour de la société ayant accès à la clé privée. p>
Ce que vous signez est complètement à vous. Je dirais que les modules qui sont latéraux qui ne fonctionnent absolument pas avec un certain environnement de confiance doivent être signés ... Par exemple, des DLL qui accèdent des objets du système de fichiers ou des chaînes de connexion de base de données. Je voudrais juste avoir l'habitude de signer le moins de code, puis de vous accumuler, sinon, vous risquez de tout avoir signé, puis il est supposé que tout dans votre organisation est sûr de fonctionner. Encore une fois, tout dépend de votre niveau de préoccupations de sécurité dans votre organisation. P>
Ne confondez pas Nom fort Signature forte> avec authencitrice Signature forte> p>
Comme décrit ci-dessus par Microsoft (j'ai demandé directement à l'auteur d'un livre à ce sujet) Le nom fort est une forme de versions uniquement, pas d'authentification. Un assemblage est stocké dans le GAC également par nom de forte clé publique pour la fiabilité des purporses (vous publiez une nouvelle version d'une bibliothèque, le précédent ne se écrit pas pour éviter les bugs de régression dans l'ancienne application). p>
Je ne suis pas sûr à 100%, mais les assemblages code> code> correspondent à la clé publique de Microsoft. Pas vraiment une forme de sécurité ............. p>
La signature de l'authentification est utilisée pour effectuer l'authentification du code. Vous avez besoin d'un certificat payé à partir d'une autorité de certification fiable et de signer vos assemblages avec Tout ce qui a été dit ici sur la sécurité, les serveurs de signalisation, etc. s'applique ici. Mais le but est que vous ne spécifiez pas quel type de signature vous souhaitez mettre en code. P> SignTool.exe code> ou Visual Studio. P>
Voir en utilisant Nom forte signatures pour un très bon article sur la signature . p>
Si nous parlons de nommage étroit des assemblages, la signature doit être utilisée pour empêcher une tierce partie de "Poifiler" votre code. Le nom fort fait partie de votre assemblée, un autre assemblage avec le même nom et une signature différente est un assemblage différent. Cela empêche également les assemblages d'être modifiés et re-signés (sans la clé privée). P>
Pour être utile, la clé privée doit rester privée. Ceci est généralement fait via Signature retardée et gestion minutieuse de l'accès des essences privées. p>
Vous pouvez également utiliser authentrice a > (Pour signer vos forts assemblages nommés); Cela peut ajouter de la confiance sur qui l'Assemblée est réellement. P>
Voir aussi Meilleures pratiques pour la signature des assemblages .NET?