14

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

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

4

2 回答 2

10

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

此外,请参阅这篇 MSDN 文章,详细了解如何正确使用强名称签名。

于 2009-05-08T13:16:12.300 回答
2

我想说在源代码控制中包含一个“开发”密钥,以使构建更容易,并避免强迫人们花时间创建和使用自己的密钥。源代码控制中的密钥在安全方面毫无意义,因为任何人都可以使用它签名。如果人们想要签署他们构建的开源项目,他们可以替换他们可以以任何他们喜欢的方式管理的密钥。

您还可以提供用于下载的构建,并使用安全密钥(您不给任何人)签名,但是对于想要使用这些二进制文件的人来说,他们需要信任您。你值得信赖吗?:)

于 2009-05-08T13:16:40.927 回答