离线根的 AIA/CRL 位置

信息安全 视窗 证书 公钥基础设施 证书颁发机构 证书吊销
2021-08-22 02:35:22

我已经阅读了以下“关于构建脱机根和中间证书颁发机构 (CA) 的清单”的答案,并且我有一个基于我正在尝试构建的系统的问题
它是一个具有 3 个域/林的 Windows 2008 系统(即每个森林一个域)我希望在其中使用证书,并相信我应该能够使用单个自签名离线房间来这样做。

  • ROOT - 是 CA = 自签名离线根
  • DOM1IntRoot 是 Active Directory 域 DOM1.A.COM 的 CA
  • DOM2IntRoot 是 Active Directory 域 DOM2.A.COM 的 CA
  • DOM23IntRoot 是 Active Directory 域 DOM3.DOM2.A.COM 的 CA

没有信任,没有子域所以我想做的是用 ROOT 签署 DOM1IntRoot、DOM2IntRoot 和 DOM3IntRoot,这样我只需要一个离线根
,这意味着我需要将 ROOT CA 证书安装到每个域中 - 我认为来自Microsoft“Contoso 的示例方案” 意味着我需要将 LDAP AIA 位置设置为存在于所有域中的配置分区(在本例中为 DC=a,DC=com ),并将 HTTP 位置设置为某个单个服务器。然而,它也说他们可以有单独的 CRL/AIA 位置,这似乎是矛盾的

因此,我阅读了上面引用的答案,并说将 AIA/CRL 留空。这似乎意味着 DOM1IntRoot、DOM2IntRoot、DOM3IntRoot 将为根发布 CRL/AIA

所以我有两个可能的答案,要么 ROOTCA 有 CRL/AIA,要么没有。如果 ROOTCA 具有 AIA/CRL,那么我应该为 AIA 的 LDAP/HTTP 和 FILE URL 以及 CRL 位置具体指定什么,例如这是正确的吗?

ldap:///CN=ROOTCA<CRLNameSuffix>,CN=ROOTCA,CN=CDP,CN=Public Key Services,CN=Services,DC=A,DC=COM
http://<SOMESERVER>/CertEnroll/ROOTCA<CRLNameSuffix><DeltaCRLAllowed>.crl
file://\\<SOMESERVER>\CertEnroll\ROOTCA<CRLNameSuffix><DeltaCRLAllowed>.crl

带有 IIS 的服务器在哪里<SOMESERVER>可以使证书可用

请注意,我没有使用从未见过的离线根服务器名称 - 对吗?

如果 ROOTCA 没有 AIA/CRL,那么我如何发布(比如)DOM1IntRoot 的撤销?

我有点困惑,所以这个问题可能是从完全错误的假设开始的

我将添加一些关于域结构的信息以尝试解决一些问题 - DOM1.A.COM 是客户端设置的位置 - DOM2.A.COM 是保护 DOM3 的 DMZ 类型网络 - DOM3.DOM2.A.COM仅被访问,但来自 DOM1 的用户远程登录到 DOM2,然后在 DOM3 中进行另一个远程会话 - 我们希望在 DOM1 和 DOM2 以及 DOM2 和 DOM3 之间使用证书 - 我们还将使用来自 DOM2 的证书到网络设备(它可能应该是 DOM3,但仍在讨论中)- DOM2 和 DOM3 与互联网隔离。DOM3 与除 DOM2 之外的所有事物都隔离开来

1个回答

如果根 CA 离线,则根 CA离线:它没有网络。这意味着无论何时发布 CRL,都需要手动干预才能将其放置在连接的主机上。此时,如果需要,您可以手动将其放在三个位置。

“权威信息访问”(AIA) 和“CRL 分发点”(CRLDP) 扩展是写入CA颁发的证书中的信息。在这种情况下,这些扩展是在颁发给从属 CA(三个子域 CA)的 CA 证书中。不要求每个子 CA 从根接收完全相同的 AIA 和 CRLDP;您可以完美地安排根为 CA1 颁发证书,其中 AIA 和 CRLDP 指向ldap://森林中的位置 ( URL) DOM1.A.COM,您将在其中手动推送根 CA 证书的副本和根 CA 生成的 CRL。CA2 也是如此,但这次的位置位于DOM2.A.COM,依此类推。

但是,使用 HTTP 可能更简单。将 Web 服务器放在可以从所有域访问的地方,并让根 CA 写入证书,它颁发一些带有http://URL 的 AIA 和 CRLDP。纯 HTTP 适用于证书和 CRL,它们是签名对象,因此可以在不考虑任何安全性的情况下进行分发(不需要 HTTPS 或证书和 CRL 发布不需要什么)。


此外,AIA 对于根 CA 不是很有用,因为它是根:只有当验证者先验地信任根时,验证才会起作用,因此它必须已经知道它。AIA 用于查找您不知道先验的证书,因此,您不信任 先验的证书:对于中间 CA 非常有用,对于根 CA 非常无用。在 Active Directory 上下文中,您可以通过例如某些 GPO 将根 CA 推送为“受信任”。


要自动化 CRL 发布,您可以使用大部分脱机的根 CA。这是一个离线的根 CA,除了它有一个固有的单向通道来输出定期生成的 CRL。我已经通过音频电缆完成了一次(CRL 编码为声音,在另一侧解码):优点是服务器音频接口的“输出”插孔在物理上不同于“输入”插孔(“ out" 是绿色的,"in" 是粉红色的),因此可以直观地确定根仍然处于脱机状态。其他人使用的 RJ45 电缆只连接了一对线,它具有更好的带宽,但不太容易目视检查。

无论如何,它并没有改变事情的根源,那就是 HTTP 会让你的生活更简单。