安全公告2749655与时间戳问题解析

本文详细分析了微软安全公告2749655中因时间戳证书缺失关键属性导致的代码签名提前失效问题,阐述了Windows团队通过修改WinVerifyTrust函数实现的平台层解决方案,并提供了重新签署安全更新的应对措施。

今天我们发布安全公告2749655,旨在提醒客户注意近期部分安全更新在代码签名过程中出现的文书错误。该错误将导致数字签名过早过期失效——这虽非安全漏洞,但会影响用户的整体安全状况。本文将详细说明错误背景、对产品功能的影响以及我们的应对方案。

事件背景

微软所有安全更新均由产品发布与安全服务(PRSS)团队进行代码签名。该团队同时负责微软所有生产级软件的代码签署流程。由于文书错误,2012年6月12日至8月14日期间处理的部分二进制文件未能正确完成数字签名。

问题核心在于文件签名时附加的时间戳。用于时间戳的证书缺失关键属性,导致当签名密钥过期时,这些数字签名将提前失效。正常情况下,签名密钥有效期较短,而时间戳可使二进制文件在更长时间内保持"有效"状态。

微软应对措施

我们将对所有受影响文件进行重新签署和重新分发。目前已重新发布四个安全更新(MS12-053至MS12-058),这些更新均采用具备完整时间戳证书的新签名。我们正在持续调查,预计未来数月将视需要重新发布更多公告。

除重新签署外,我们还采取了特殊的平台层解决方案:Windows团队开发了修改版WinVerifyTrust功能包,专门处理两个已知缺失关键属性的时间戳证书。该更新将通过Microsoft Update自动分发(下载中心直达链接)。

需注意:虽然WinVerifyTrust是最常见的验证点,但第三方(如反恶意软件)可能采用不同验证机制。这就是我们坚持重新签署所有受影响文件的原因。当前版本的文件完全安全,但若不及时更新,未来可能无法通过验证。

WinVerifyTrust验证机制详解

验证过程分为三步:

  1. 验证签名证书是否链接受信根证书(本例为微软证书)
  2. 确认签名证书未被吊销
  3. 检查以下任一条件:
    • 证书在有效期内
    • 含有效时间戳证明签署时证书有效
    • (新增)使用两个特定缺失属性的时间戳证书

行动建议

建议用户及时安装重新签署的安全更新。作为深度防御措施,也可部署更新版WinVerifyTrust包以延长这些包的验证有效期。需说明:重新签署的更新本身已能解决问题,WinVerifyTrust更新仅为额外防护选项。

——Dustin Ingalls(Windows团队)与Jonathan Ness(MSRC工程团队)

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计