注意设置了 WTD_LIFETIME_SIGNING_FLAG 的证书:这意味着(尽管您介意从名称中假设)使用该证书签名的程序在证书到期后无效,即使该程序没有更改,并且证书在它生效时是有效的已签署。
这也会影响更新,因为即使客户选中该框以信任您公司的所有程序,如果您的更新程序没有使用相同的证书(或该证书过期)签名,那么信任也会失败。
来自:http:
//download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-d599bac8184a/Authenticode_PE.docx
使用生命周期签名语义的时间戳处理
不希望时间戳签名无限期成功验证的应用程序或证书颁发机构有两种选择:
• 在发布者的签名证书中设置生命周期签名者OID。
如果发布者的签名证书除了包含 PKIX 代码签名 OID 之外还包含生命周期签名者 OID,则即使签名带有时间戳,当发布者的签名证书过期时,签名也会变得无效。生命周期签名者 OID 定义如下:
szOID_KP_LIFETIME_SIGNING 1.3.6.1.4.1.311.10.3.13
• 调用WinVerifyTrust 时,在WINTRUST_DATA 结构中设置WTD_LIFETIME_SIGNING_FLAG。
如果 WinVerifyTrust 调用方在 WINTRUST_DATA 结构中设置 WTD_LIFETIME_SIGNING_FLAG 并且发布者的签名证书已过期,则 WinVerifyTrust 将签名报告为无效,即使签名带有时间戳也是如此。
如果发布者撤销了包含生命周期签名者 OID 的代码签名证书,或者 WinVerifyTrust 调用者在 WINTRUST_DATA 结构中设置了 WTD_LIFETIME_SIGNING_FLAG,则如果满足以下两个条件,WinVerifyTrust 将报告签名为有效:
• 签名在撤销日期之前加盖时间戳。
• 签名证书仍在有效期内。有效期届满后,签名失效。
例如:
https ://forum.startcom.org/viewtopic.php?f=15&t=2215&p=6827&hilit=lifetime+signing#p6827
这是 StartSSL 证书的一个严重问题。成本如此之低的证书中存在限制并不让我感到惊讶,但是将这种限制隐藏在细则或旧论坛帖子中而不是在产品描述中明确表示是糟糕的业务。他们将来可能会修复它,而其他人可能有也可能没有相同的限制,因此在您花钱之前检查电子邮件可能是明智的。
猜猜谁不知道问?大声笑......哦,好吧,生活和学习。