Certificate 代码签名证书

Certificate 代码签名证书,certificate,code-signing,Certificate,Code Signing,我有许多不同的项目,它们正在成熟到我将为它们购买代码签名证书的程度。我对代码签名证书的理解是,它意味着在我的用户群和开发人员(我)之间建立信任关系。为此,购买一个代码签名证书并使用相同的证书对我的所有项目进行签名是有意义的。但是,我也知道代码签名证书的另一个功能是加密部分部署,以确保产品在安装之前不会被篡改。据我所知,证书(或任何加密方法)在不同数据上使用的频率越高(在本例中是我的多个项目),它的安全性就越差(我知道,我在这里稍微概括一下) 所以,我的问题是: 我应该为每个部署获取一个代码证书,

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

所以,我的问题是:

我应该为每个部署获取一个代码证书,还是只获取一个并用它对所有代码证书进行签名


(我也知道这可能是一个稍微主观的问题,因此如果是这样的话,也许我们可以简单地给出这两个选项的优缺点。)

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

长答覆:

  • 代码签名过程中没有加密。数字签名提供完整性(代码未被篡改)和真实性(您是作者),但不提供机密性(所有内容均为纯文本)
  • 公钥密码系统的安全性基于这样一个事实,即从公钥中查找私钥非常困难(从计算角度来说)。这是通过复杂的数学问题实现的,如大数的因式分解或离散对数。但由同一密钥生成的大量签名不应削弱该密钥(例如,认证机构或时间戳机构每天使用同一密钥执行数千个签名)

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

      长答覆:

      • 代码签名过程中没有加密。数字签名提供完整性(代码未被篡改)和真实性(您是作者),但不提供机密性(所有内容均为纯文本)
      • 公钥密码系统的安全性基于这样一个事实,即从公钥中查找私钥非常困难(从计算角度来说)。这是通过复杂的数学问题实现的,如大数的因式分解或离散对数。但由同一密钥生成的大量签名不应削弱该密钥(例如,认证机构或时间戳机构每天使用同一密钥执行数千个签名)

      你必须权衡两边:


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

      您必须权衡双方:

      所有代码/脚本只需一个证书,只需记住一个密码,更容易处理;但是,如果需要撤销(并且出于安全原因,您需要执行撤销检查),则在到处部署替换之前,不会运行任何代码/脚本!(每个部署有一个沙盒,这样一个被撤销的沙盒会阻止其他沙盒工作。)