我试图掌握.NET dlls/程序集的正式签名。
具体来说:
- 何时以及如何使用私钥
- 创建/控制私钥的最佳实践
- 需要签名的模块类型/最佳实践
我试图掌握.NET dlls/程序集的正式签名。
具体来说:
请参阅使用Strong Name Signatures的非常好的文章来进行签名。
如果我们谈论程序集的强名称,那么应该使用签名来防止第三方“欺骗”您的代码。强名称是程序集的一部分,因此具有相同名称和不同签名的另一个程序集是不同的程序集。这还可以防止程序集被修改并重新签名(无私钥)。
为了有用,私钥必须保持私密。这通常通过delayed signing和仔细管理私钥访问来实现。
您还可以使用Authenticode(对您的强名称程序集进行签名),这可以增加有关程序集实际来源的信心。
System
程序集与Microsoft的公钥匹配。并不是一种安全形式.............signtool.exe
或Visual Studio签署程序集。* When and how to use private keys
* Best practices for creation/control of private keys
你需要创建并使用一个密钥对(file.SNK文件)。只需要创建一次(为您的公司/部门),并妥善保管。
* What sort of modules need to be signed/ best practice for going about it
你需要签署进入GAC的库。但最好的做法是签署您发送的所有程序集。
当此签名的可靠性非常重要时,您可以使用“部分签名”和在发货前进行最终签名。这意味着不是每个开发人员都需要访问(真实/完整的)密钥对。