繁体   English   中英

x509Chain吊销检查在吊销但有效的证书上失败

[英]x509Chain revocation check failing on revoked but valid certificate

我找不到解决我确切情况的任何答案,如果这是重复的,我深表歉意。 我正在尝试验证用于对文件进行数字签名的证书,直到我们吊销证书为止,该证书都可以正常工作。 听起来是正确的,但我的理解如下:

如果使用有效期为2014年1月1日至2015年1月1日的证书在2014年2月1日签署文件,然后在2014年3月1日被吊销,则该文件上的证书仍然有效,因为签署时并未将其撤消。

如果这种理解是正确的,那么即使在上述文件的3/1/2014之后存在最新吊销列表的情况下进行检查,我也希望x509Chain对象通过吊销检查。 不幸的是,结果是验证失败,因为它认为证书已被吊销。

在这种情况下,我是否需要做进一步的测试以查看撤销日期并覆盖结果并忽略它? 我在做蠢事吗? 我误会撤销吗?

据我了解,吊销检查是当前的,因为必须进行吊销检查。

例如,假设以下内容:

  1. 2014年使用证书对合法软件进行签名
  2. 证书过期或被吊销。
  3. 现在,假设黑客拥有证书(撤销证书的主要原因)。
  4. 黑客使用受感染的证书对恶意软件进行签名-他们可以使用任意日期,因此选择与合法软件相同的日期。

现在,您在2015年下载了软件,并希望检查其合法性-如果您依赖于创建软件时的证书状态1.和4.似乎都是合法的。 如果改为依靠当前状态,则1.和4.都将显示为未签名,但是可以使用新的有效证书对合法软件进行重新签名,而恶意软件则不能。

因此,默认情况下,如果公钥过期或吊销,则任何X509检查都将失败。

但是,您可以选择不使用X509VerificationFlags检查是否到期或撤销。 如果执行此操作,那么X509Chain.Build将通过,但您需要以某种方式保留已过期的密钥以直接针对它们进行验证。

我已经在单元测试中做到了这一点,因此不必仅为测试而创建新证书,但是在生产中,您将来可能需要吊销证书,这有潜在的危险。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM