【问题标题】:.NET 4.0 Late Binding: Ensure Assembly Authenticity?.NET 4.0 后期绑定:确保程序集真实性?
【发布时间】:2010-09-22 13:10:00
【问题描述】:

我必须开发一个支持插件的 .NET C# 应用程序。网上找了很多资料,好像没那么难。

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

  1. 大会没有改变。
  2. 确实提供了组件 由公司提供。

我读到可以使用密钥对程序集进行签名,但据我了解,这只能证明程序集没有更改。

必须做什么才能确定大会的真实性?

任何帮助将不胜感激。

【问题讨论】:

标签: c# .net late-binding


【解决方案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 博客的链接相同的技术,所以它可能仍然存在。

【讨论】:

  • 强名称并不能确保签名者的真实性(与authenticode不同)。
【解决方案2】:

程序集的开发者需要使用 Authenticode 技术和从批准的证书颁发机构 (CA) 之一获得的 X.509 证书对程序集进行签名。然后您的主机需要验证签名并验证正在加载的程序集签名中的证书。

作为选项之一,我们的产品SecureBlackbox 提供执行 Authenticode 签名和验证以及完整 X.509 证书验证的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 2013-03-22
    • 2017-02-16
    • 2010-11-08
    相关资源
    最近更新 更多