x509certificate - X509 证书 KVStore 的主键
问题描述
我要将根证书和中间证书(来自不同的 CA)存储到一些 KVStore 中。
问题:我有一个叶证书(仅),我想根据我商店的证书进行验证。叶证书具有Authority Key Identifier
==Subject Key Identifier
的父级,该父级必须存在于 KVStore 中。
问题:我应该使用什么作为 KVStore 中的 Key?
1. Subject Key Identifier
:certificate
或者在单个 CA 或不同 CA 中可以相同。续订或密钥轮换怎么样?
2. Subject Key Identifier + Subject DN
: certificate
- 不确定与 first 有什么不同。
3 Subject Key Identifier
.:列表[ certificate
]
4.Serial Number + Issuer
是唯一的,但叶子证书不包含有关父母的日期。
解决方案
这Subject Key Identifier
是经过认证的公钥的哈希值。因此,根据 CA 的密钥轮换策略,这可能会或可能不会在证书更新期间发生变化。因此,不能保证映射SKI:certificate
是唯一的。
选项 2 中的组合索引不会改变这一点。
应该排除选项 4,因为子证书不知道其父证书的颁发者和序列号。
在大多数情况下,选项 3 可能是一个有效的解决方案,但是,Authority Key Identifier
扩展对于 X.509 证书不是强制性的。因此,您可能必须处理没有 AKI 扩展的叶证书。
这通常会导致选项 5 Subject DN: list[certificate]
:. 最好使用一个排序列表,其中最有可能的 CA 证书位于顶部。
但是,如果您的应用程序仅处理带有 AKI 扩展的叶证书,并且所有 CA 证书都需要在续订期间进行密钥轮换,则选项 1 的性能可能会更好。在那种情况下,我也会保留一个条目Subject DN: list[Subject Key Identifier]
。
推荐阅读
- git - 保留最后 X 次提交和历史记录
- python - 如何使用 random.random() 生成 30 到 35 之间的伪随机实数?
- javascript - 从服务器到客户端的 Json 数据传输
- snowflake-cloud-data-platform - 根据微分区获取选择数据
- pandas - 合并和排序包含不同排列的相同内容和不同关联值的两个熊猫数据框
- mysql - MySQL MHA binlog 设置检查失败
- android - Android Room 版本代码的用途是什么
- python - 在heroku上使用ffmpeg的内存限制错误
- python - 使用 psycopg2 将 io.StringIO / io.BytesIO 作为 Bytea 上传到 postgres
- r - R计算英国国家网格中两点之间的距离