多Windows版本下.exe与.sys的SHA1/SHA2证书兼容问题技术问询
旧版Windows系统下应用与驱动签名兼容问题
背景
因微软政策及证书颁发机构的跟进执行,为应用(.exe)和驱动(.sys)兼容旧版Windows系统的难度大幅提升。目前需自行创建自签名SHA1证书并安装至终端用户的受信任发布者存储;同时Win10之前系统的驱动交叉签名服务已过期停用,需采用常规签名方式,且需将SHA2证书和SHA1证书均安装至终端用户的受信任发布者存储。
现有困境
开发类似mini certmgr的工具虽简单,但无法为其进行SHA1/SHA2双签名,导致系统在安装证书至存储前无法识别有效签名;而SDK 8.1的certmgr则是SHA1/SHA2双签名的。
技术疑问
- 若用有效SHA2 EV证书和自签名SHA1证书为应用签名,SHA2 EV在Win Vista及以上系统有效,SHA1因未安装证书而无效,这是否会导致杀毒软件或Windows系统报错,还是系统能识别有效SHA2签名而判定应用合法?
- 针对Win10之前系统的驱动(Win10驱动由微软签名,SHA2签名有效,但.cat文件未关联旧版系统,微软门户仅支持Win10/11),是否存在同样问题?(注:驱动需在证书安装后才可安装)
- 我们希望仅在Vista之前的旧系统中安装SHA1证书,新版系统不安装(即SHA1签名无效),此举是否会引发Windows系统或其他软件的异常?
补充观点
Windows本可直接忽略SHA1,不应禁止证书颁发机构签发SHA1证书以简化旧系统兼容;驱动交叉签名同理,新版Windows可仅支持微软签名版本,同时保留旧版系统的交叉签名支持,以便Win7等系统的驱动更新。这类政策变化正是当初证书要求提案时各方担忧的情况,而官方曾承诺不会出现此类问题。
内容的提问来源于stack exchange,提问作者user3161924
相关产品推荐
相关产品推荐

