首页 > 解决方案 > 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是唯一的,但叶子证书不包含有关父母的日期。

标签: x509certificatex509

解决方案


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]


推荐阅读