.NET 4.0后期绑定:确保程序集的真实性?

时间:2010-09-22 13:10:00

标签: c# .net late-binding

我必须开发一个支持插件的.NET C#应用程序。我在互联网上发现了很多信息,但似乎并不那么难。

我只有一个规范,即模块的程序集必须在程序集级别上进行验证。当后期绑定发生并且程序集加载时,宿主应用程序必须绝对确定:

  1. 大会没有改变。
  2. 大会确实供应了 由公司。
  3. 我读到可以使用密钥对程序集进行签名,但据我所知,这只能证明程序集没有更改。

    为了确保大会的真实性,必须采取哪些措施?

    非常感谢任何帮助。

2 个答案:

答案 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证书验证的功能。