X509 证书 KVStore 的主键
Primary Key for X509 Certificate KVStore
我要将根证书和中间证书(来自不同的 CA)存储到一些 KVStore 中。
问题:我有一个叶证书(仅),我想根据我商店的证书对其进行验证。叶证书具有 Authority Key Identifier
== Subject Key Identifier
的 parent 必须已经存在于 KVStore 中。
问题:我应该在 KVStore 中使用什么作为密钥?
1.Subject Key Identifier
:certificate
或者它可以在单个 CA 或不同 CA 中相同。更新或密钥轮换怎么样?
2.Subject Key Identifier + Subject DN
: certificate
- 不确定与 first 有什么不同。
3.Subject Key Identifier
:列表[certificate
]
4.Serial Number + Issuer
是唯一的,但叶证书不包含关于 parent.
的日期
Subject Key Identifier
是经过认证的 public 密钥的哈希值。因此,根据 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]
.
我要将根证书和中间证书(来自不同的 CA)存储到一些 KVStore 中。
问题:我有一个叶证书(仅),我想根据我商店的证书对其进行验证。叶证书具有 Authority Key Identifier
== Subject Key Identifier
的 parent 必须已经存在于 KVStore 中。
问题:我应该在 KVStore 中使用什么作为密钥?
1.Subject Key Identifier
:certificate
或者它可以在单个 CA 或不同 CA 中相同。更新或密钥轮换怎么样?
2.Subject Key Identifier + Subject DN
: certificate
- 不确定与 first 有什么不同。
3.Subject Key Identifier
:列表[certificate
]
4.Serial Number + Issuer
是唯一的,但叶证书不包含关于 parent.
Subject Key Identifier
是经过认证的 public 密钥的哈希值。因此,根据 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]
.