Security 生成服务器上的安全Authenticode密钥

Security 生成服务器上的安全Authenticode密钥,security,msbuild,authenticode,Security,Msbuild,Authenticode,我正试图找出在我的工作场所设置Authenticode签名的最佳方法。安全问题让我感到压力很大 我最初的想法是,控制密钥的人应该将其安装到构建服务器并保护它,以便只有构建帐户才能访问它 这似乎相当安全,但实际上并非如此。是的,此时您不能窃取证书,但是如果您可以创建一个构建,您可以让构建帐户对任何二进制文件进行签名 熟悉该过程的人是否给了我一些建议?事实上,如果该密钥可用于构建帐户,则该密钥可用于管理员帐户,并可用于签署其他文件。无论你给别人什么职位,都不再是你的了。如果您无法保护服务器不被其他人

我正试图找出在我的工作场所设置Authenticode签名的最佳方法。安全问题让我感到压力很大

我最初的想法是,控制密钥的人应该将其安装到构建服务器并保护它,以便只有构建帐户才能访问它

这似乎相当安全,但实际上并非如此。是的,此时您不能窃取证书,但是如果您可以创建一个构建,您可以让构建帐户对任何二进制文件进行签名


熟悉该过程的人是否给了我一些建议?

事实上,如果该密钥可用于构建帐户,则该密钥可用于管理员帐户,并可用于签署其他文件。无论你给别人什么职位,都不再是你的了。如果您无法保护服务器不被其他人访问,那么您就无法完全控制服务器,这就有可能导致误用。坦率地说,我无法想象有哪种方法(除了将签名移动到其他受信任的系统)可以保护密钥不被滥用。即使当密钥无法提取或复制(比如说它被放入Cryptoken)时,它仍然可以以某种方式使用

那我就不知所措了。您的公司是否对您的二进制文件进行Authenticode签名?是的,但我们是一家相当小的公司,只有两个人可以访问发布构建过程(每个开发人员都可以构建调试版本,但他无法对驱动程序进行签名)。我们通过以下方式解决了这个问题:用于签名的密钥驻留在TrueCrypt虚拟卷上,该虚拟卷仅在构建时装载,因此我们可以让任何开发人员访问构建系统,但他们仍然无法生成发布签名的构建。