19

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

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

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

问题:如果已经使用了 Authenticode 签名,那么其他强命名程序集是否有任何价值?

4

1 回答 1

17

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

于 2010-12-17T10:55:01.523 回答