证书链的构建和验证

3 阅读2分钟

证书链的构建和验证

候选链的构建

使用DFS算法进行候选链构建,算法调用者每次从DFS算法中拿一条候选链,可以选择接受或者拒绝。如果拒绝则可以尝试从DFS算法中拿取下一条链。

DFS算法在构建证书链时会使用快速验证和签名验证(边构建边验证)。当某个上级证书在通过快速验证以后,DFS算法还会用这个证书的公钥来验证当前证书的签名。

候选链的吊销验证

DFS算法提供了一条候选链,我们从trust anchor的下级证书开始验证吊销状态;验证时使用本地或者ocsp请求验证。

当整条链都通过吊销验证。则表示最开始的目标证书值得信任。如果出现吊销验证不通过的情况,则根据策略选择尝试从DFS算法中获取下一条候选链,然后再次进行从上到下的吊销验证, 或者终止整个证书验证流程。

rfc与实践的区别

证书签名验证时机

  • rfc规定候在构建候选链时只需要让其通过快速验证,构建好以后在对候选链进行证书签名验证
  • 实践中当即将要选定当前尝试的候选上级证书时,需要用其的公钥来验证当前证书的签名

证书链吊销验证方向

  • rfc规定从trust anchor的下一级证书开始向下验证吊销状态
  • 实践中可能会出现从底部开始依次向上验证吊销状态的情况

总结

当验证某个证书是否可信时:

  1. 在构建阶段对其所在的候选链进行快速验证/签名验证
  2. 验证其所在候选链的吊销状态