是否可以创建自签名证书颁发机构?

信息安全 tls 证书 公钥基础设施 证书颁发机构
2021-09-03 16:36:14

是否可以创建一个设置了 CA 位的合法证书?我没有与此相关的用例,我只是好奇。

解释我的问题:假设我签署了一个公钥(属于我信任的“B”),是否可以让“B”单独签署其他公钥(属于“C”、“D”、“E”等)这样我将成为已知的受信任的根?不应允许“C”、“D”、“E”等签署以我为受信任根的其他证书。

我的理解是,当我签署公钥时,必须设置 CA 位 - 但是当“B”签名时,CA 位将被取消设置。

是这样吗?

4个回答

您描述的是“私人 CA 证书”,它们每天都在使用。“自签名证书”是任何不具有更高证书颁发机构数字签名的证书;该证书基本上告诉获得它的人“我为自己担保;您可以信任我,也可以不信任我”。SSC 可以断言它们是 CA,因此如果您信任它们,则您信任使用 CA 证书签名的证书。自签名 CA 证书实际上成为“私有可信根”。因为它缺乏全局信任,这个证书对于通过 Internet 连接到您的 Web 服务器的匿名客户端通常不够好,但是在您完全控制的计算机网络的边界内,您可以告诉这些计算机信任任何证书你喜欢。

如果没有中央权威,网络上的每台机器都需要网络上所有其他机器的证书,并隐含地信任所有机器。这种简单的扁平“网络”信任结构对于像 3-5 台这样的少量机器是可行的,但是在一个有 100 台机器的网络中,每台机器必须拥有其他 99 台机器的证书,并且要添加下一台机器网络必须以某种方式使其证书被所有 100 台现有机器隐式接受。CA 结构极大地简化了这个过程;所有机器都隐含地信任一个且只有一个证书 - CA - 并且由新机器提供的 CA 签名证书将告诉所有其他计算机“CA 信任我;你也应该”。

现在,这仍然需要您的 CA值得信赖仅仅因为它是受信任的并不一定意味着它应该是。CA 证书的私钥必须受到保护,防止攻击者试图窃取它,如果攻击者这样做,您必须有一种方法来撤销该证书,而不会失去对整个网络的所有信任。正如 AJ 的评论所说,在小型家庭网络中,撤销一个主 CA 证书并重新生成网络上的所有证书并不是什么大不了的事,但在更大的网络中,它可以使整个事情戛然而止。

通常,冗余和对妥协的容忍是通过信任链中的多个级别(至少两个)CA 来实现的,就像全球信任的 CA 链一样。将有一个“受信任的根”证书,一个“金钥匙”,其公共版本被网络机器隐式信任。私钥存储在 HSM 上,当不生成“面向公众”的 CA 证书时,它保存在一个安全的保险库中,需要多个高管签字才能访问。

这些“面向公众”的 CA 证书是 PKI 服务器用来生成颁发给网络上的服务器和客户端的非 CA 证书的证书。如果攻击者破坏了这些 CA 证书之一,则可以撤销该证书(告诉所有计算机不要信任它或任何由它签名的证书),并且任何具有该 CA 签名证书的计算机都可以以其他方式证明其身份到 PKI 系统,并从未受损的 CA 证书之一获取新证书。同时,执行人员签字,在许多感兴趣的人的注视下检索 HSM,并生成替换 CA 证书以替换 PKI 系统中被撤销的证书。

是的,这是可能的。这只是证书链接。您可以使用您想要的任何设置制作证书,唯一的问题是,除非有人的计算机特别信任您的根证书,否则它不会信任任何从您的根获得信任的证书。

这通常称为私有 CA 或企业 CA,并且经常用于企业 PKI。如何设置的确切细节可能超出了 QA 站点的范围,但在 Google 上快速搜索“私人证书颁发机构”或“企业证书颁发机构”应该会为您提供您需要了解的所有详细信息。

这个意图没有得到很好的解释。提到的场景也不是很清楚。有一些事实。CA 证书不能归类为自签名证书颁发点。当没有 CA 来执行任务时,您使用 ssc。我假设您假设在 CA 向用户颁发证书后,用户获得了创建 ssc 的能力。或代表主发证点创建证书。第二种方法可以实现,但有一定的要求。例如,对于 Windows 服务器和 pki,如果某个用户或计算机受到域控制器的信任,则可以代表用户颁发证书等。也适用于需要部署智能卡的情况。也可以注册非域成员,但要求是具有安装了根证书的客户端的有效配置文件。您可以分配多个注册代理和发放点。商业证书颁发机构也是如此。他们委托信托。根据各种政策分配发行点。但请注意,每个场景都有需求配置文件。和一种信任的方式。可以与 CA 建立信任链,但不能与 SSC 建立信任链。

由于问题已更改(已编辑)或发生误解并且不得不道歉,我不得不添加另一个答案。最初的问题有“自签名证书”这个词,这让人感到困惑。如果您使用的是 CA,则无需创建自签名证书。您在这里提到的是私有 CA 层次结构。SSC 不需要 CA。但是 CA 有自签名证书(即受信任的根)。由层次结构本身颁发 CA 层次结构签名证书。SSC 只是由某个人或服务器签名。如果您希望使用链接,它是内部的还是外部的(私有的或公共的)都没有关系。使用 PKI 创建信任链是完全可能的。这是主要意图,也是您实际提到的。

在考虑内部网络时,可以创建 2 或 3 层证书服务级别的层次结构,以提高安全性。只有在必要时才可以使用顶级或根 CA,并且通常在发布 CA 时保持离线状态(第 3 级)。它用于为层次结构而不是最终用户/设备颁发证书。中间 CA 可用于颁发颁发 CA 的证书。也可能有策略服务器,一个特殊的服务器来管理每个级别的策略。颁发 CA 向用户、计算机、设备等颁发证书。为了检查证书是否被吊销,可以使用证书吊销列表,对于外部访问,可以部署 OCSP 服务器。证书调用的目的是防止证书受损和信任问题。

通过这种方式,可以获得信任和地位链。但请注意,证书吊销存在漏洞。这就是谷歌放弃 CR 的原因。信任链和信任传播是完善的 CA 层次结构的意图。

对于企业,您不需要完整的层次结构。甚至可以部署 Enterprise root ca。但是,仍然必须保持差距。强烈建议管理员部署从属证书颁发机构和单独的策略服务器。但是对于小型网络,这不是很经济。但它仍然提供了更好的安全性。您甚至可以使用具有适当 PKI 的智能卡。但是,请注意,使用企业私有 PKI 从外部访问 CRL 存在挑战。但如果计划得当,它仍然有效。