Cryptography 代码签名证书选项

Cryptography 代码签名证书选项,cryptography,certificate,code-signing,Cryptography,Certificate,Code Signing,我被指派为我的公司购买一份数字证书来签署我们的代码。我们在微软空间开发应用程序——主要是WPF或基于Web的应用程序 我调查了各种选择,发现Comodo价格合理,反应迅速,我们已经准备好通过他们购买cert。。但是,在注册表单中,有各种我不太确定的私钥选项,即: 顾客服务提供商 Microsoft基本加密提供程序 Microsoft Base智能卡加密提供商 Microsoft增强加密提供程序v1.0 Microsoft软件加密提供程序 关键尺寸 1024 2048年 4096 可出口的

我被指派为我的公司购买一份数字证书来签署我们的代码。我们在微软空间开发应用程序——主要是WPF或基于Web的应用程序

我调查了各种选择,发现Comodo价格合理,反应迅速,我们已经准备好通过他们购买cert。。但是,在注册表单中,有各种我不太确定的私钥选项,即:

  • 顾客服务提供商

    • Microsoft基本加密提供程序
    • Microsoft Base智能卡加密提供商
    • Microsoft增强加密提供程序v1.0
    • Microsoft软件加密提供程序
  • 关键尺寸

    • 1024
    • 2048年
    • 4096
  • 可出口的

    • 是/否
  • 用户保护

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

    谢谢你 Greg

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

    • Microsoft基本加密提供程序
    • 密钥大小:2048
    • 可出口:是的
    • 用户保护:是
    老实说,我不熟悉不同的CSP,但基地每次都为我做这项工作

    • 密钥大小使密钥更难破解,但对于中短期密钥(3-5年)而言,超过2048位就足够了(IMHO)

    • Exportable允许您导出私钥/证书对—这是备份私钥/证书对所必需的

    • “用户保护”意味着您必须在每次使用证书时输入密码-强烈建议您使用证书防止意外或恶意签署代码

    历史上,“基本”加密提供程序对密钥长度有人为限制,“增强”提供程序取消了限制。这允许微软遵守美国出口法,在某些版本中删除了增强型提供商

    显然,随着出口法的修改,微软已经取消了对基本提供者的限制,允许更长的密钥长度(但保留了兼容性名称)

    关于“微软软件加密提供者”——我认为这应该是“强”(而不是“软件”)

    在我工作的实践中,base给出了一个512位的密钥长度(在最近对KB2661254进行补丁读取之后,该长度不再受支持,也不再适用于MS服务器)。您至少需要1024个,但2048是一个更好的选择

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

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