.NET:强命名与Authenti codeNET、Authenti、code

2023-09-03 03:20:56 作者:最美不过遇见你

在看过有关强名称在.NET here,例如,我有以下问题:

Having read about strong names in .NET here, for example, I have the following question:

我们有一个 Authenti code与我们签订所有的EXE,DLL和MSI文件 code签名证书。的那个的好处是,视窗知道微星来自可信源,并且还每个文件的真实性可以根据需要进行验证。

We have an Authenticode code signing certificate with which we sign all our EXE, DLL and MSI files. The benefit of that is that Windows knows the MSI comes from a trusted source, and also that the authenticity of each file can be verified if required.

我们目前不使用 .NET强名称。我已阅读,强命名的文件基本上意味着它是数字与自签名证书签名。我对这个问题的看法是,由受信任的证书颁发机构签署Authenti code证书是远远超过自签名证书的真实性没有人反正可以验证,因为他们缺乏的根证书更有价值(我们不打​​算分发到最终用户,是我们!?)。

We currently do not use .NET strong names. I have read that strong-naming a file essentially means that it is digitally signed with a self-signed certificate. My opinion on this is that an Authenticode certificate signed by a trusted certificate authority is much more valuable than a self-signed certificate whose authenticity nobody can verify anyway because they lack the root certificate (and we are not going to distribute that to end users, are we!?).

问:是否有任何价值的此外的强命名程序集是否已被使用Authenti code签署

Question: Is there any value in additionally strong-naming assemblies if Authenticode signing is already used?

推荐答案

答案将取决于为什么你已经创建了一个强大的名字 - 预期用途的强名称是创建的组件的唯一标识。例如,如果你需要把你的程序集GAC再强的名字是必须的。然而强名称是不是真的意味着核实发布者的真实性 - Authenti code达到这一目的。看到这篇文章:http://blogs.msdn.com/b/shawnfa/archive/2005/12/13/authenti$c$c-and-assemblies.aspx

The answer will depend upon why you have created a strong name - the intended use of strong name is to create a unique identity for the assembly. For example, if you need to push your assembly in GAC then strong name is must. However strong name is not really meant for verifying the authenticity of publisher - Authenticode serve that purpose. See this article: http://blogs.msdn.com/b/shawnfa/archive/2005/12/13/authenticode-and-assemblies.aspx