我必须开发一个支持插件的.NET C#应用程序。我在互联网上发现了很多信息,但似乎并不那么难。
我只有一个规范,即模块的程序集必须在程序集级别上进行验证。当后期绑定发生并且程序集加载时,宿主应用程序必须绝对确定:
我读到可以使用密钥对程序集进行签名,但据我所知,这只能证明程序集没有更改。
为了确保大会的真实性,必须采取哪些措施?
非常感谢任何帮助。
答案 0 :(得分:1)
就像我在评论中所说的那样,之前已经提到过:Can strong naming an assembly be used to verify the assembly author?
此链接提供了一个示例,说明如何针对一组已知公钥验证公钥:http://blogs.msdn.com/b/shawnfa/archive/2004/06/07/150378.aspx但它有点旧,我不知道从那时起是否有重大更改。
编辑:我看到SO答案表明与上面shawnfa博客链接相同的技术,所以它可能仍然存在。
答案 1 :(得分:0)
程序集的开发人员需要使用Authenticode技术和从批准的证书颁发机构(CA)获得的X.509证书对程序集进行签名。然后,您的主机需要验证签名并验证正在加载的程序集的签名中的证书。
作为其中一个选项,我们的产品SecureBlackbox提供了执行Authenticode签名和验证以及完成X.509证书验证的功能。