代码签名证书

时间:2011-01-11 04:40:42

标签: certificate code-signing

我有许多不同的项目,这些项目正在逐渐成熟,我将为他们购买代码签名证书。我对代码签名证书的理解是,它意味着在我的用户库和开发人员(我)之间建立信任关系。为此,购买一个代码签名证书并使用相同的证书签署我的所有项目是有意义的。但是,我也知道代码签名证书的另一个功能是加密部署的部分,以确保产品在安装用户库之前不会被篡改。我的理解是,证书(或任何加密方法)在不同的数据上使用的频率越高(在这种情况下我的多个项目),它就变得越不安全(我在这里概括一点,我知道)。

所以,我的问题是:

我是应该为每个部署获得一个代码证书,还是仅使用一个代码证书并使用它签名?

(我也理解这可能是一个有点主观的问题,所以如果是这样的话,或许我们可以简单地为两个选项提供利弊。)

2 个答案:

答案 0 :(得分:1)

简短回答:您可以为所有项目使用相同的证书。

答案很长:

  • 代码签名过程中没有加密。数字签名提供完整性(代码未被篡改)和真实性(您是作者)但不保密(一切都保留为纯文本)
  • 公钥加密系统安全性基于以下事实:从计算上讲,从公钥中查找私钥非常困难。这是通过复杂的数学问题来实现的,例如大数的分解或离散对数。但是,使用相同密钥进行的大量签名不应削弱此密钥(例如,有证书颁发机构或时间戳机构每天使用相同的密钥执行数千个签名)。

答案 1 :(得分:0)

你必须权衡双方:

只需一个所有代码/脚本的证书,它只需要一个密码来记住并且更容易处理;但是,如果它需要被撤销(出于安全原因,你进行撤销检查),在任何地方部署替换之前,不会运行代码/脚本! (每个部署一个沙箱,每个沙箱都被撤销,以防止其他人工作。)