[Beta 探究] 如何解除 Flightsigned Build 的时间炸弹

什么是 “Flightsigning”

Flightsigning 描述了使用 flight 证书对文件进行数字签名的过程。Microsoft 用于签署 Windows 系统文件的证书有 4 种常见类型:

  • PreProd – PCA 2010
  • Prod – PCA 2011
  • Flight – Development PCA 2014
  • Test – 各种各样的东西,最常见的是 MSIT Test CodeSign CA

Flight 只是 Microsoft 使用的一个特定证书/证书系列,当使用 flight 证书签名时,该版本称为 flightsigned 版本。

为什么 “Flightsigned” 版本无法在当前日期启动

用于对早期 flightsigned 版本进行签名的证书明确指定了过期时间,并设计为在系统时间超过过期时间后立即失效。这意味着一旦这些 flight 证书过期,Windows 将把这些证书数字签名的系统文件视为无效文件。

这有点像你不能用打补丁的系统文件正常启动 Windows。不同之处在于,如果签名因二进制文件的修改而无效,则可以使用 NOINTEGRITYCHECKS BCD 选项强制引导加载程序继续引导,但如果证书过期,引导加载程序将停止加载。

这意味着系统时间不得超过这些 flight 证书的到期时间,因此不能在当前日期启动 flightsigned 版本。

继续阅读