我们使用代码签名证书,通过自动注册组策略进行分发。这些证书用于签署 Excel 宏,由内部 CA 颁发。
现在,当尝试撤销其中一个证书时,它们会被列在证书撤销列表中。
到目前为止,一切都很好。
问题是,代码签名的文档仍然值得信赖。我假设证书链不是“在线”验证的,而是在本地缓存中验证的。
我尝试设置 GPO“证书路径验证设置”——“撤销”并选中“定义这些策略设置”复选框。
有人能解释一下客户端机器上存储了多少(长)撤销条目吗?我们的 CA 存储并发布其 CRL。每次 MS Office 应用程序打开签名文档时,是否可以强制客户端立即对照此列表进行检查?
答案1
Windows 客户端广泛使用撤销检查(针对 CRL 和 OCSP)。一旦检索到指定颁发者的 CRL 或指定证书的 OCSP,就会将其缓存,并且在缓存信息过期之前不会发送任何新查询。
对于 CRL,它们被缓存到NextUpdate
CRL 中的值。对于 OCSP 响应,情况类似,缓存到结构nextUpdate
中的值SingleResponse
,该值通常设置为NextUpdate
引用的 CRL 的字段。
CRL 上的 Windows 客户端包含一些高级功能,例如轮询。Windows 客户端会定期轮询 CDP URL 以检查是否有新的撤销信息(通过 E-Tag),如果有更新的信息,则预取它。
证书撤销不是、也从来不是一个立即的行动,它需要一些合理的时间才能在客户端上得到更新。