证书吊销如何与中间 CA 配合使用?

2024-04-29

假设 PKI 层次结构如下所示。

root CA ==> inter-1 CA ==> user-1
  \
   \======> inter-2 CA ==> user-2

我的问题是:根 CA 是否还需要定期从其子项:inter-1 和 inter-2 下载 CRL?

由于 user-1 和 user-2 可以相互验证,如果 user-2 的证书被 inter-2 撤销,inter-2 应该让 root 知道,然后传播到 inter-1 和 user-1,对吗?

如果是这样,那就显得相当复杂了。是否有任何工具可用于管理撤销逻辑?多谢。


不,证书吊销不会在 CA 树中传播。每个 CA(在您的情况下为根 CA 和中间 CA)负责发布包含以下列表的 CRL:仅此 CA 颁发的已吊销证书.

一个例子:

根CA 为根CA 颁发的证书发布CRL:inter-1 CA 和inter-2 CA。根 CA 不知道 user-1 和 user-2 证书或其吊销状态。

inter-1 CA (resp inter-2 CA) 发布一个 CRL,其中包含由 inter-1 CA (resp inter-2 CA) 颁发的已吊销证书列表,并且仅包含这些证书。

CRL Root CA   CRL inter-1 CA 
  ^             ^
  |             |
root CA ==> inter-1 CA ==> user-1
  |
  |           CRL inter-2 CA 
  |             ^
  \             |
   \======> inter-2 CA ==> user-2

如果user-1证书被撤销,该证书(实际上是它的序列号)将只出现在inter-1 CA发布的CRL中。

当有人想要检查 user-1 证书的有效性时,过程如下:

  1. 在证书和可信CA之间构建证书链:user-1 / inter-1 CA / root CA
  2. 获取列表中第一个证书的 CRL
  3. 验证 CRL 的签名
  4. 根据此 CRL 检查列表中第一个证书的状态
  5. 如果状态未撤销,则将该证书从列表中删除并执行2,否则失败
  6. 如果列表仅包含受信任的 CA,请检查证书的签名链(证书必须由列表中的以下证书签名)
  7. 如果所有签名均已检查且有效,则 user-1 证书有效。

请注意,验证 CRL 签名可以触发另一个证书链的验证:即该算法可以是递归的。实际上,X.509 证书验证算法(非常)复杂,我只是在这里总结一下原理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

证书吊销如何与中间 CA 配合使用? 的相关文章

随机推荐

  • 在 docker build 中缓存“go get”

    我想将 golang 单元测试封装在 docker compose 脚本中 因为它依赖于多个外部服务 我的应用程序有很多依赖项 因此需要一段时间go get 如何以允许构建 docker 容器的方式缓存包 而无需每次要测试时下载所有依赖项
  • 如何在 gitlab-ci 作业之间传递变量?

    我有一个像这样的 gitlab ci stages calculation execution calculation job stage calculation script calculate something and output
  • 如何使用 mongoTemplate 实现 Mongodb Collection 的分页

    我是 mongoDb 中的菜鸟 我需要为任何特定集合实现分页 例如说 我有一个 Foo 集合 并且有一个返回 Foo 集合中所有记录的函数 public List
  • Button.setImage(nil, for: .normal) 在 iOS 15 中不起作用

    我试图在 Swift 中制作一个简单的井字棋应用程序 所以我设置了 9 个带有从 1 到 9 标签的按钮并调用setImage设置圆圈和十字 这正在按预期工作 当尝试重置主板时出现问题 我将这段代码称为 for i in 1 lt 10 i
  • 如何安全地存储 Discord(OAuth2) 用户的访问令牌?

    我正在努力寻找一种安全保存访问令牌的方法 我的 Web 应用程序在用户授权应用程序后从 DiscordAPI 检索到该访问令牌 我正在为 Discord 机器人创建一个网络界面 重要的是 不是每个人都可以使用它 仅应允许特定 Discord
  • 在牌手中查找匹配项的结果在大约 10% 的情况下略有偏差

    这是我的代码 它应该比较数组 arrHands 中的值 该数组将 x 张牌 x cardsDrawn 存储为单打 其中整数部分是花色 1 到 4 小数部分代表牌号 01 1 A 等 然而 大约十分之一的运行次数会返回相差一两对的值 我知道当
  • Curl 错误:最多 (20) 个重定向

    尝试 CURL 到 myntra 时出现错误 我试图通过 DOMDOCUMENT 获取提取详细信息 但它给出了相同的错误 最多 20 个重定向 这是我的代码
  • 在 Django 中处理 subprocess.call()

    我正在开发的应用程序的简单想法是用户给出 Linux 命令 Linux 命令的结果将显示在网络浏览器中 这是我的观点 py from django shortcuts import render to response from djang
  • pip 中的新彩色终端进度条

    我发现新版本的pip Python的包安装程序 有一个彩色进度条来显示下载进度 我怎样才能做到这一点 Like this pip 本身正在使用rich https pypi org project rich 包裹 特别是 他们的进度条文档
  • 选择不同的字段和行号只是为了显示 ID 号会产生重复的数据

    我有一个表应用程序 它有 10 列 类别是一列 并且该列有重复值 为了获得不同的值 我有一个查询 SELECT distinct CATEGORY as CategoryName FROM APPLICATION where applica
  • java中数字字符串间隔排序

    我正在与一些人一起上一个人课 其中有姓名 年龄范围等详细信息 年龄区间为 0 5 6 10 11 30 31 45 46 50 50 100 100 110 我正在上 Person 课name ageBand字符串间隔及其参数化构造函数 g
  • REST Web 服务和 API 密钥

    我有一个网络服务 可供用户访问我的应用程序数据库并获取一些信息 用户必须注册 API 密钥并在提出请求时提供该密钥 一切正常 但我如何检查注册密钥的用户是否确实发出请求 而不是他可能已向其提供密钥的其他人 这两天我一直在思考解决方案 但目前
  • 如何让服务器监听多个端口

    我想用同一台服务器监听 100 个不同的 TCP 端口 这是我目前正在做的事情 import socket import select def main server socket socket socket socket AF INET
  • __attribute__ ((已弃用)) 不适用于 Objective-C 协议方法?

    我需要弃用 Objective C 协议中的单个方法 在普通的类 实例方法上我添加 attribute deprecated 声明后 看来它不适用于协议方法 如果我将它们标记为已弃用并在某个地方使用它们 则项目编译正常 不会出现预期的弃用警
  • if ["$i" -gt "$count"];出现错误

    我试图将 f count f 1 f 2 名称放入数组中 下面是代码 echo Enter the count read count echo count arr i 1 while true do if i gt count then e
  • 在Matlab中使用中心切片定理实现滤波反投影算法

    我正在研究一种使用中心切片定理的滤波反投影算法作为家庭作业 虽然我理解纸上的理论 但在 Matlab 中实现它时遇到了问题 我得到了一个可以遵循的框架 但我认为我可能误解了一个步骤 这是我所拥有的 function img sampleFB
  • RSpec 请求 - 如何为所有请求设置 http 授权标头

    我正在使用 rspec 请求来测试 JSON API 该 API 需要在每个请求的标头中包含 api key 我知道我可以这样做 get v1 users janedoe json HTTP AUTHORIZATION gt Token t
  • 如何知道何时使用 XML 解析器以及何时使用 ActiveResource?

    我尝试使用 ActiveResource 来解析更像 HTML 文档的 Web 服务 但一直收到 404 错误 我是否需要使用 XML 解析器来完成此任务而不是 ActiveResource 我的猜测是 只有当您使用来自另一个 Rails
  • 什么是好的、免费的 PHP 图表套件?

    我要做的只是基本的折线图 任何人分享的经验将不胜感激 不是真正的 PHP 但我发现 amchart 非常容易实现 而且看起来很棒 http www amcharts com http www amcharts com 还可以查看 Googl
  • 证书吊销如何与中间 CA 配合使用?

    假设 PKI 层次结构如下所示 root CA gt inter 1 CA gt user 1 gt inter 2 CA gt user 2 我的问题是 根 CA 是否还需要定期从其子项 inter 1 和 inter 2 下载 CRL