32

我被分配了为我的公司购买数字证书以签署我们的代码的任务。我们在 Microsoft 领域开发应用程序 - 主要是 WPF 或基于 Web。

我调查了选项,发现 Comodo 价格合理且响应迅速,我们已准备好继续通过它们购买证书。但是在注册表单中有各种我不太确定的私钥选项,即:

  1. CSP

    • Microsoft 基础加密提供程序
    • Microsoft Base 智能卡加密提供程序
    • Microsoft 增强加密提供程序 v1.0
    • Microsoft 软件加密提供程序
  2. 密钥大小

    • 1024
    • 2048
    • 4096
  3. 可出口?

    • 是/否
  4. 受用户保护?

    • 是/否

只是想知道所有这些意味着什么,以及满足我们要求的最佳选择是什么?任何意见/建议将不胜感激

非常感谢格雷格

4

3 回答 3

30

对于“大多数目的”,建议使用以下选项:

  • Microsoft 基础加密提供程序
  • 钥匙尺寸:2048
  • 可导出:是
  • 用户保护:是

老实说,我不熟悉不同的 CSP,但 Base 每次都为我完成这项工作。

  • 密钥大小使密钥更难破解,但短期到中期密钥(3-5 年)超过 2048 位就足够了(恕我直言)。

  • Exportable 可让您导出私钥/证书对 - 备份它必不可少!

  • 受用户保护意味着每次要使用证书时都必须输入密码 - 强烈建议您使用证书防止意外或恶意代码签名。

于 2008-10-31T04:41:09.553 回答
11

从历史上看,“基本”加密提供者对密钥长度有人为限制,而“增强”提供者则取消了限制。这使 Microsoft 能够遵守美国出口法律,在某些版本中删除了增强的提供程序。

显然,随着出口法的变化,微软已经取消了基础提供商的限制,也允许更长的密钥长度(但为了兼容性而保留了名称)

于 2008-10-31T07:37:58.010 回答
4

关于“Microsoft Software Cryptographic Provider”——我认为应该是“强大的”(而不是“软件”)。

在我工作的实践中,base 提供了一个 512 位的密钥长度(在最近的补丁之后不再支持或在 MS 服务器上工作 - 在 KB2661254 上阅读)。您至少需要 1024,但 2048 是更好的选择。

注意:可导出的私钥是备份和/或带到另一台服务器所需要的(并且我认为是签署代码/脚本所必需的),但会引入它落入坏人之手的可能性,因此可能会签署和运行不需要的脚本一旦您信任该证书,就在您的服务器上!非常注意存储它的位置/方式并使用强大的密码!

仔细检查:您很可能需要安装受信任的根 CA 证书(颁发代码签名证书的 CA)以及您在“受信任的发布者”中的证书本身才能运行签名的 PowerShell 脚本。

于 2013-04-30T16:37:38.177 回答