我是否需要为开源项目保护我的强名称密钥文件?

Dan*_*fer 14 c# open-source gac assembly-signing

我正在创建一个入门工具包,它将已编译的程序集从开源项目安装到GAC中,以便更容易地引用模板中的程序集.由于他们将加入GAC,因此需要签署.

我是否需要密码保护并保护密钥文件,或者是否可以将其保持打开并将文件包含在源代码管理中?

Nol*_*rin 10

强名称签名有几个目的(虽然不是为了防止篡改程序的实际保护,这是常见的误解) - 在您的情况下使用强密钥来唯一地识别(和验证)特定程序集的特定版本,这是GAC要求.防止其他程序集欺骗的另一种用法在这种情况下似乎没有必要(如果我错了,请纠正我).出于这个原因,我认为将密钥保持打开(不受密码保护)并将文件包含在源代码管理中是完全可以接受的.据我所见,你不会通过密码保护密钥来阻止任何你不想要的东西.(但是,如果您可以提供有关安全上下文的更多详细信息,我可能需要修改该视图.)

另外,请参阅此MSDN文章,以深入讨论如何正确使用强名称签名.