.NET:强命名与Authenticode

时间:2010-12-17 10:37:00

标签: .net security assemblies strongname authenticode

例如,在阅读了.NET here中的强名称之后,我有以下问题:

我们有一个 Authenticode 代码签名证书,我们用它来签署所有EXE,DLL和MSI文件。这样做的好处是,Windows知道MSI来自可靠的来源,并且如果需要,还可以验证每个文件的真实性。

我们目前不使用 .NET强名称。我已经读过,强命名文件本质上意味着它使用自签名证书进行数字签名。我对此的看法是,由受信任的证书颁发机构签名的Authenticode证书比自签名证书更有价值,该证书的真实性无论如何都无法验证,因为它们缺少根证书(我们不打算将其分发给最终用户,是我们!?)。

问题如果已经使用了Authenticode签名,另外强命名程序集中是否有任何值?

1 个答案:

答案 0 :(得分:13)

答案将取决于您创建强名称的原因 - 强名称的预期用途是为程序集创建唯一标识。例如,如果您需要在GAC中推送程序集,则必须使用强名称。然而,强名称并不意味着验证发布者的真实性 - Authenticode服务于此目的。请参阅此文章:http://blogs.msdn.com/b/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx