在哪里获取/购买 CSR 生成的 S/MIME 证书

信息安全 证书 电子邮件 证书颁发机构 密钥生成 微笑
2021-09-03 00:25:04

我不确定这个问题是否适合这个委员会,因为我要求具体的服务提供商可能是一种广告,但也涉及技术问题,所以我试一试。

我的具体场景如下:

我想使用 S/MIME 进行电子邮件加密。我的决定是根据 S/MIME 做出的,因为所有默认的电子邮件客户端都支持 S/MIME,但不支持没有附加插件的 PGP。我还想获得一个受信任的证书,而不是一个自签名的证书,因为它会更容易与所有联系的人一起使用。

现在问题来了:我希望我的电子邮件档案在未来是安全的。据我研究,大多数 CA 使用 html < keygen > 标签创建他们的 S/MIME 证书。这使浏览器可以创建一个新的私有公钥对。到目前为止没有问题。但是,证书的有效期通常只有 1-3 年。如果我想更新我的证书,我必须从浏览器创建一个新的私钥/公钥对。在归档我的电子邮件方面,这会导致一堆密钥,如果我想阅读归档的电子邮件,我必须存储/备份和重复使用这些密钥。此外,我将不得不尝试哪个密钥是正确的解密密钥,或者需要具体数据和使用哪个密钥对的时间列表。

据我了解,这不应该是我从 CSR 请求中收到的证书的问题。每次我的证书过期时,我都可以重复使用 CSR,并为我所有的邮件保留相同的密钥。

那么现在问题来了:您知道任何 CA 提供由客户端 CSR 生成的 S/MIME 证书吗?

甚至可以为 S/MIME 使用默认服务器证书吗?(使用另一封电子邮件,然后是网站管理员、root、...@mydomain.com,但类似于 theo@mydomain.com,这不是获取 1 类域验证服务器证书的默认电子邮件地址)

或者你有其他想法如何在没有乱七八糟的钥匙的情况下获得长时间的耐用性?

3个回答

理论上,只要您保留旧密钥,您的电子邮件软件仍然能够解密您收到的电子邮件。证书过期意味着其他人不会接受使用您的旧公钥向您发送新的加密电子邮件,但是在您这边阅读您的邮箱并不需要使用您的公钥或证书,只需要使用私钥。换句话说,证书会过期,但私钥不会。请注意,通常的电子邮件软件按证书索引密钥(它们有一个证书,并且证书链接到相应的私钥),因此您最好保留证书,即使已过期。

在这个理论下,只要你想要一个新的证书,生成一个新的密钥对是没有问题的,除了积累私钥的存储空间。一个 RSA 私钥将占用不到 2 kB,因此每 3 年一次的密钥不会很快填满您的磁盘。但是,如果您将私钥保存在智能卡上,这可能会成为一个问题:智能卡不是永久的,也不容易备份,因此它们意味着密钥丢失(从而导致数据丢失)的风险。无论如何,为新证书重用相同的密钥对,而不是生成新证书,将无济于事。

专业 CA 应该遵循他们的认证实践声明,这通常需要新的密钥来更新证书。这个要求可能有很多原因,不一定是好的。例如,一个论点是这样的:密钥破解算法需要时间;通过使用长寿命密钥(密钥寿命延长多年和证书更新),您可以让攻击者有更多时间破解您的密钥。这不是一个很好的论点,因为破解旧密钥对攻击者来说已经很有趣(它允许访问旧电子邮件),但这仍然是一个普遍的论点。强制使用新的密钥对也是定期强制使用更长密钥的简单方法。因此,许多 CA 不会轻易接受预制的 CSR。

当然,您可以潜在地更改浏览器的代码(假设它是开源的)以假装生成一个新密钥,但实际上重用了前一个。CA 不能真正阻止这种情况,除非它明确检查您的新密钥与前一个密钥不同。


问题的另一个方面是加密密钥应该被托管(即在某处备份)。事实上,丢失您的私钥意味着使用使用该密钥加密的旧电子邮件的访问权限。因此,出于必要,您的私钥的存储策略已经很复杂。扩大该政策以便能够覆盖十几个键而不是一个似乎不太可能成为一个问题。


摘要:虽然这不能回答您的确切问题,但我建议您不要坚持在证书更新期间保持相同的私钥。生成一个新的密钥对应该没问题,至少可以说更改密钥是“一件好事”。每 3 年,甚至每年一个新证书,在您自己死亡之前它不会“一团糟”(我们希望您在未来尽可能远)。

密钥生命周期管理是一个难题。尽管在所有其他条件相同的情况下,简单是一件好事,但在某个点上,过于简单会开始降低可用性或安全性。

(“一环统治所有人”在当时看起来是个好主意。)

我还没有看到任何提供此功能的 CA,但如果您加入 StartCom 论坛上的提问,也许他们将来更有可能考虑增加支持。讨论在https://forum.startcom.org/viewtopic.php?f=15&t=1680

证书颁发机构需要遵循某些规则才能颁发受信任的证书(其中之一是证书的有效期不能超过 3 年)

在存档的情况下,您可以保留旧证书的副本(如果您尝试在过期日期之后使用它来发送电子邮件,它将显示为已过期),但它仍允许您查看旧电子邮件

证书存储在计算机注册表的深处 - 网络浏览器对此有一个捷径(它们需要用于 SSL 目的)

当您订购证书时,会在您订购的计算机上创建私钥。当您下订单时,它会向发行者发送一个 CSR(证书签名请求),以便为您创建一个与您的私钥相匹配的证书

一旦创建了这些证书,它们就会被修复(这就是每个人都依赖它们的原因),因此当您“重新颁发”或“续订”时,您实际上是在用新的不相关的证书替换旧证书(在您的帐户中编辑时间以匹配)