PKI:CPS 和 CP 之间的区别

信息安全 证书 公钥基础设施
2021-08-30 17:10:34

RFC3647描述了 CPS 和 CP 之间的区别如下:

因此,CP 和 CPS 之间的主要区别可总结如下:

  • PKI 使用 CP 来建立要求,说明其中的参与者必须做什么。单个 CA 或组织可以使用 CPS 来披露其如何满足 CP 的要求或如何实施其实践和控制。
  • CP 通过交叉认证、单边认证或其他方式促进互操作。因此,它旨在涵盖多个 CA。相比之下,CPS 是单个 CA 或组织的声明。其目的不是促进互操作(因为这样做是 CP 的功能)。
  • CPS 通常比 CP 更详细,并指定 CA 如何满足其颁发证书的一个或多个 CP 中规定的要求。

上面的解释中有一句话对我来说很有意义:

单个 CA 或组织可以使用 CPS 来披露其如何满足 CP的要求

如果我理解正确,CP 会设置一般要求(例如,您应该在颁发证书之前验证域所有权),并且 CPS 会提到它在实践中是如何做到的(例如,通过检查 DNS 记录中的令牌)。CP 甚至可能已经以这种做法为例。

因此,由于 CP 和 CPS 主要由同一个 CA 编写,因此将它们分开对我来说毫无意义。如果我在 CP 中提到必须验证所有权并且这可以通过检查 DNS 记录中的令牌来完成,那么 CPS 很可能包含完全相同的信息。我可能能够理解同时拥有 CPS 和 CP 的用途,以防 CA 有不同的根,每个根可能有不同的 CPS,基于相同的 CP。

我将 Let's Encrypt 的CPS与它的CP进行了比较,我发现 CP 更通用一些,并且解决了 CPS 中未解决的一些主题,但反过来也一样。

  • 有人可以解释同时拥有 CPS 和 CP 的真正价值是什么,当它们由同一个 CA 编写时,以及在这种情况下只编写 CPS 是否是一种好习惯?
  • 不应该有一个全球标准CP,所有CA都可以使用它来作为其CPS的基础吗?
2个回答

CP 描述要求。CPS 描述了如何满足这些要求。

例如,CP 可以要求必须配置根 CA,以便需要两个来自不同部门的人员在场才能使其联机。然后,CPS 必须描述如何实现这一点——将其保存在需要两个单独密钥的安全设施中,或者需要输入两个单独的密码,或者需要两个单独的智能卡。如果您需要更改 CA 的操作方式,例如,当您需要移动到具有不同访问规则的新设施时,或者当您更改为新的操作系统时,您可能需要重写 CPS,但您不需要改变CP。

此外,虽然这两个文档可能由同一组织编写,即运行 CA 的实体,但我强烈建议它们由单独的部分编写的组织。对于一个值得信赖的 PKI 系统,职责分离是必不可少的——不仅在操作中,而且在监督中也是如此。运行 CA 的人员应该由另一个部门监督,该部门的工作是制定标准并验证操作是否遵循这些标准。如果同一个人同时做这两件事,他们实际上是在监督自己——换句话说,他们根本没有监督。作为一名顾问,我有时会被要求写这两个文件,我总是强烈反对。我宁愿让我的客户带来一个竞争对手来做其中的一个,或者至少,来验证我的工作,而不是冒着让我成为编写条件并满足它们的人的风险。

让我首先重申已知的内容:

CP 制定政策,CPS 描述实践(如何实施政策)

根据 RFC,策略 (CP) 应说明 a) 满足哪些要求,以及 b) 将应用哪些规则来满足这些要求。它旨在成为高级别的。确定一个特定的证书是否会满足某些业务需求,以及它是否可以与另一个 CP 相似/相同的证书“互操作”。

实践声明 (CPS) 必须详细说明,扩展其实施方式。它不能偏离 CP,但可以澄清任何潜在的歧义——尤其是 wrt 实现。

有人可以解释同时拥有 CPS 和 CP 的真正价值是什么,当它们由同一个 CA 编写时,以及在这种情况下只编写 CPS 是否是一种好习惯?

如果我试图为我的业务需求选择一个证书(准确地说是 PKI),CP 将是最合适的参考文件 - 因为它涉及目的的适用性。

如果我是一个新的 CA,试图尽快获得尽可能多的认可,那么确定共同目的兼容的PKI 将很重要——对于这个 CP 来说,这是最适合参考的文档。

也可以从 CPS 中推断出这些,但这将是最麻烦的,如果 CPS 没有明确提及规则或目的,它可能是不准确的。

所以我的看法是:是的,单独的 CPS 就足够了,但前提是它明确提及目的、适用性和规则——从而消除猜测工作。如果是这样,也许那个部分也可以称为 CP 部分,这意味着我们又回到了原来的位置。

不应该有一个全球标准CP,所有CA都可以使用它来作为其CPS的基础吗?

课程用马。标准编写完成后,出现了几个共同的目的。所以事后看来,我们可以拥有一些全球标准的 CP 集,而不排除新型 PKI。

标准机构一直在为标准应该有多严格而苦苦挣扎,以免它们扼杀创新。更严格的标准 = 更多的互操作性,但也有更大的合规压力,因为每一个潜在的创新也可以被视为对标准的偏离。它不会完全停止创新,但肯定会使创新变得困难。出于这个原因,我认为在编写标准时还可以。也许即使是现在,该领域缺乏全球标准也不会造成太大伤害。但那只是我的个人意见。