时间:2010-03-26 07:43:53

标签: .net open-source dll signing

我正在CodePlex上发布一个开源库,并希望dll文件具有强名称,以便将它们添加到GAC。

签署的最佳选择是什么?

我应该使用SNK吗?如果是这样,每个人都可以访问密钥。我对每个人都有访问权限没有问题,但这是一个好方法吗?

我应该使用PFX吗?如果是这样,是否意味着下载源代码的其他人无法构建解决方案?

我喜欢做的是我是唯一一个有权访问密钥的人,因此签名的程序集也具有一定的真实性,但同时也不会阻止其他开发人员下载,构建或更改他们自己的源代码,并能够发布主项目的更改。

2 个答案:

答案 0 :(得分:4)

我们已经为Noda Time讨论了这个问题。我相信大家的共识是,当我们进入强命名时,我们会有一个只有少数核心开发人员可以访问的密钥,并将其用于发布版本 - 但是有另一个公开可用的密钥。因此,任何想要确保他们只针对他们所知道已经被项目成员“批准”的构建运行的人都可以构建私有密钥的公钥令牌,但任何人都可以下载并构建“不受信任”版本

拥有公开可用密钥的另一种方法是仅使大多数构建配置没有强名称 - 但我更喜欢每个构建都被强名称的版本,只是因此它与完整版本构建之间的差异很小。 p>

答案 1 :(得分:1)

我对CodePlex上的项目所做的是发布使用SNK强烈签名的版本。然而,该SNK不是源代码控制,也不是公开的。因此,我是唯一一个可以使用此密钥对程序集进行强签名的人。我解释了here