与多个项目和开发人员签署程序集的最佳实践

Jak*_*ade 16 .net assembly-signing visual-studio

我正在寻找在30多个开发人员,20多个解决方案和60多个项目的组织中应用签名程序集的建议和最佳实践.我们正在使用Visual Studio Team System 2008和TFS.

虽然创建密钥并签署程序集是一个非常简单直接的过程,但我担心如何以最佳方式管理它.

到目前为止我的想法:

  • 每个解决方案(通常包含3到20个项目)将在解决方案根文件夹中放置一个.pfx密钥文件.
  • 每个解决方案都有一个唯一的密钥强密码.

我们会遇到这种方法的任何问题吗?

其他一些想法:

  • 对解决方案中的所有项目使用相同的密钥文件.这会让我们更轻松吗?这是个坏主意吗?它甚至可能吗?
  • 每个项目都应该有自己独特的密钥吗?为什么,为什么不呢?

欢迎任何意见,好/坏的经验和建议.:)

Nad*_*zie 13

在过去,我使用单个密钥非常有效地用于多个解决方案和项目.它是一种简单的方法,可确保只有访问私钥文件的人才能发布通过强名称检查的构建.

注意:要使用单个密钥文件,我们发现最简单的方法是将文件添加为每个项目的链接.

我看到的一个缺点是,让开发人员可以使用密钥文件意味着它不应该像它应该的那样私密.理想情况下,尽可能少的人(例如只是构建过程)应该访问/知道密码.

单一文件方法使密钥的管理变得简单(只有一个),同时仍然允许强命名的好处.

  • 添加时,按钮将在右侧用箭头分割.单击箭头,您将看到"添加为链接":) (3认同)

Kyl*_*ndo 6

我们目前在解决方案中为每个项目使用相同的强密钥(.SNK).根据您的项目,您将如何管理每个项目的不同密钥.

如果你想要更高的安全性,我想你可以为每个项目重新创建密钥,但这将是一个管理的噩梦.请记住,在一天结束时,SNK只显示代码来自您的公司,并防止程序集被更改,这不是一个巨大的内部安全功能.

为此,如果您不信任/不希望开发人员构建代码,您应该限制源代码控制并查看使用构建服务器等.