撤销列表要验证签发权限与覆盖范围
CRL是由授权实体签名的撤销资料,可能由证书签发CA或被委派者提供。客户端不仅查序列号,还要核对列表签名、签发者、分发点、覆盖范围和更新时间;在一份不适用或过期的列表里没找到证书,不足以证明当前未撤销。
RFC 10007于2026年明确收紧一项验证细节:CRL签发者采用v3证书时,须检查keyUsage扩展确实存在且设置cRLSign。仅见名称相同或“扩展若有才检查”的旧逻辑,可能错误接受未被认证用于签CRL的密钥;v1、v2没有该扩展字段,规范另作区分。
OCSP的good不等于证书全面有效
OCSP为所查询证书返回good、revoked或unknown等状态,确定性的基本响应须由授权主体签名。good最少表示相应有效期内的该序列号没有被撤销;它本身不必证明证书曾被签发,也不替代路径、用途和服务名称检查。
unknown说明响应者不能确定所问对象的状态,网络错误也不是good。客户端还须验证响应者权限:签发CA、预先信任的响应者,或带有相应OCSP签名用途并由CA授权的响应者,并按协议和应用政策决定资料不足时怎样处理。
参考:[3]
签名时间、状态时间和明确例外分开
OCSP的thisUpdate表示响应者已知该状态正确的最近时刻,nextUpdate给出更新资料将在此前或届时可用的时间,producedAt则是签名响应的时刻。它们不能互换:刚取得一份带签名响应,不代表其中状态刚刚调查过。
有些终端实体证书以noRevAvail明确声明CA不发布撤销信息;RFC 9608据此跳过相应检查,并禁止把该扩展用于CA证书。撤销机制的可用性、短有效期选择和查询故障是不同问题,不能在没有该声明时把网络失败伪装成“该证书无需撤销”。