6

直接在构建服务器上安装 Authenticode 代码签名证书以创建生产签名构建是否可以接受?我正在网上寻找一些资源,这些资源建议或支持这种做法是合法的,前提是您已采取适当的步骤来保护构建服务器以及创建和部署构建的过程。

我能找到的关于代码签名实践的所有“最佳实践”指南在建议的过程方面都远远超过了顶部。Microsoft 的参考文档有多达 6 个服务器在使用,用于签署单个程序集的简单操作。 http://download.microsoft.com/download/a/f/7/af7777e5-7dcd-4800-8a0a-b18336565f5b/best_practices.doc

一些背景:

我的公司为其员工和直接客户创建了简单的富客户端业务线应用程序。我们不创建商业软件。我的构建服务器使用我的公司严格的安全策略和程序进行物理安全和网络安全。只有组织中非常具体的人才能在我的环境中开始构建。

我们当前的流程要求我将构建/部署流程分解为多个阶段,并配备大量手动流程。我们使用物理设备来存储 Authenticode 证书,需要用户输入 PIN 才能访问。我们必须将需要代码签名的程序集/清单改组到指定的代码签名 PC,这些 PC 也必须受到物理保护。

对我来说,传递物理令牌/设备并保留所有这些手动步骤是不太安全的。没有什么可以阻止对令牌/设备具有物理访问权限的人签署他们想要的任何东西。至少,通过自动化、记录、受控的构建服务器环境,您知道签名的内容和签名者。

4

1 回答 1

2

在构建服务器上安装证书并使其可供构建帐户访问的主要问题是,现在任何开发人员都可以通过将任何恶意代码临时提交给某个合法项目并在构建后将其恢复来签署任何恶意代码。

无论记录哪些操作,都很难识别或预防违规行为。尤其是在开发处于活跃状态并且每天完成多个构建的情况下。

我能想到的唯一解决方案是限制可以触发“RTM”构建的人数。其他构建类型可能使用测试证书或完全避免签名。

事实上,这也是我头疼的问题。

于 2012-10-02T22:04:40.970 回答