背景
Virbox 用户工具自发布以来,通过不断的更新版本,持续为软件开发商提供更高安全性的软件版权保护服务。近期,Virbox 用户工具即将迎来一次重要升级,此次升级,在部分 Widnows 操作系统的安装过程中会存在兼容性问题,为解决问题,我们需要软件开发商在安装 Virbox 用户工具的过程中,多进行一些操作。以下是兼容问题描述和操作方式。
根据 CA/B Forum 关于代码签名的指南规定,SHA-1 已经不能保证签名的安全性,其冲突攻击已经变得“实际可行”。所以,从 2021 年 1 月 1 日起,各个证书颁发机构需停止颁发 SHA-1 算法签名证书(后延续到 2021 年 6 月)、EV 代码签名证书和停止 SHA-1 时间戳服务(后延续到 2022 年 4 月)。
同时,微软官方声明:Windows 旧版本操作系统(Windows 7 SP1、Windows Vista、Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2)默认只能验证 SHA-1签名的应用,若需要验证使用 SHA-2 签名的应用程序,需要对旧版操作系统安装 SHA-2 代码签名支持的更新包。
常见问题
1 、此次微软更新签名机制,会影响哪些软件?
由于使用SHA-1签署数字证书的厂商非常普遍,这将影响大部分软件。
2 、哪些系统需要打补丁?
受影响的系统版本有:Windows7,Windows Server 2008 R2、Windows Vista,Windows Server 2008 SP2
3 、不打补丁会有什么影响?
由于以上系统版本不支持 SHA-2 签署的证书,不打补丁将导致该系统上的所有进行证书升级的软件无法正常使用。
具体影响范围可参考微软官方声明
4 、这些补丁是否安全?会影响我的电脑正常使用吗?
这些补丁为微软官方提供的补丁。我们经过多次测试安装,并未发现异常,可放心安装。
Virbox 用户工具为什么要升级
我公司上一次购买的签名证书于 2022 年 4 月份到期,需要重新购买最新的签名证书,而新购买的证书已经不包含 SHA-1 算法的签名,因此,我们发布的最新版本 Virbox 用户工具,文件将只采用 SHA-2 算法签名。
由于微软公布的部分操作系统只支持 SHA-1 算法签名的执行文件(主要是驱动文件),因此最新的 Virbox 用户工具无法在这些系统上直接进行安装,需按照微软提供的更新方案,安装补丁后方能正常安装 Virbox 用户工具。
系统补丁下载地址
微软为以上操作系统提供了支持 SHA-2 签名的补丁,在以上操作系统上安装对应补丁后,即可完成对 SHA-2 签名的支持。微软官方补丁链接如下。
Windows7,Windows 2008 R2用户:
系统:Server 2008 R2 x64 sp1
补丁号:KB4474419
补丁号:KB4490628
系统:Win7 x64 sp1
补丁号:KB4474419
补丁号:KB4490628
系统:Win7 x86 sp1
补丁号:KB4474419
补丁号:KB4490628
注:Win7 x64/x86 sp0、Server 2008 R2 x64 sp0 用户需先将系统升级至Win7 x64/x86 sp1、Server 2008 R2 x64 sp1后才可安装该补丁。
Windows Vista,Windows 2008用户:
系统:Server 2008 x64 sp2
补丁号:KB4474419
补丁号:KB4493730
系统:Server 2008 x86 sp2
补丁号:KB4474419
补丁号:KB4493730
系统:Vista x64 sp2
补丁号:KB4474419
补丁号:KB4493730
系统:Vista x86 sp2
补丁号:KB4474419
补丁号:KB4474419
注:Server 2008 x64/86 sp1、Vista x64/x86 sp0、Vista x64/x86 sp1用户需先将系统升级至Server 2008 x64/x86 sp2、Vista x64/x86 sp2后才可安装该补丁。
开发商如何集成
概述
主要通过四个步骤完成集成
开发商软件集成 Virbox 用户工具 和 对应的系统补丁安装包
在安装时同时释放 Virbox 用户工具 和 补丁安装包
通过命令行调用 Virbox 用户工具进行安装
检查是否安装成功
第一步、集成工具和补丁
开发商需要将最新的 Virbox 用户工具集成到自己软件的安装包中,这和早期的 Virbox 用户工具集成方法一样。
同时开发商需要将微软提供的系统补丁安装包,也集成到自己的软件安装包中。另外,集成后需要配置一个名为 PatchMap.json 的配置文件,该文件中配置了目标操作系统需要安装的补丁文件名。
PatchMap.json 的配置示例如下:
{
"PatchList": {
"Windows 7 x86 SP1": {
"KB4474419": "",
"KB4490628": ""
},
"Windows 7 x64 SP1": {
"KB4474419": "windows6.1-kb4474419-v3.msu",
"KB4490628": "windows6.1-kb4490628-x64.msu"
},
"Windows Server 2008 x86 SP2": {
"KB4474419": "",
"KB4493730": ""
},
"Windows Server 2008 x64 SP2": {
"KB4474419": "",
"KB4493730": ""
},
"Windows Server 2008 R2 x64 SP1": {
"KB4474419": "",
"KB4490628": ""
}
}
}
第二步、释放工具和补丁
开发商的软件在安装时,需要先将 Virbox 用户工具和补丁同时释放。注意,PatchMap.json 文件和补丁安装包必须释放到相同目录下。
第三步、安装 Virbox 用户工具
通过命令行--patch_config_path="C:\\xxxx"
(其中 C:\\xxx 目录为 释放后的 PatchMap.json 和补丁安装包所在目录) 命令启动 Virbox 用户工具的安装程序,用户工具会自动检测操作系统版本,并根据传入的参数路径查找相应补丁进行安装。
其他命令可同步使用,例如静默安装命令/S
。
第四步、检测安装结果
环境检测通过后,Virbox 用户工具会继续执行其他安装;环境检测不通过,Virbox 用户工具会退出安装并提示安装错误信息(静默安装会返回对应错误码)。
静默安装错误码及描述
错误码 | 描述 |
---|---|
0 | 成功 |
0x101 (257) | 当前操作系统需要升级(如 SP0 升级到 SP1) |
0x102 (258) | 当前操作系统需要安装支持 SHA-2 签名的补丁 |
0x103 (259) | 当前操作系统不包含信任的根证书,需要升级根证书 |
特别说明
您可以根据自己的需求,调整 PatchMap 文件的配置,如您的软件主要运行环境不包含 Windows Server 2008,您可以删除关于 Windows Server 2008 相关的配置,并且不打包该系统的补丁包
如果您的软件已经不支持上述存在兼容性的操作系统,那么您在集成 Virbox 用户工具的时候可以跳过 集成和释放系统补丁 的过程
用户如何安装
软件的最终用户若需要手动安装 Virbox 用户工具,需要以下操作步骤。
以管理员身份运行 Virbox 用户工具安装包
若当前操作系统为 支持 SHA -2 算法签名(如 Windows 10/11),或当前操作系统已经安装了系统补丁(如 安装补丁后的 Windows 7 x64 SP1),或者当前操作系统不验证数字签名(如 Windows XP),则跳过第3步继续执行;
若当前操作系统不支持 SHA-2 算法(如以上列举的未安装补丁时的操作系统),则用户工具会提示用户安装对应的系统补丁
按照 Virbox 用户工具给出的提示,从微软官方下载系统补丁,退出当前用户工具的安装,优先安装系统补丁,补丁安装完成后,再次执行 Virbox 用户工具的安装
Virbox 用户工具继续安装,直至最终安装进度达到 100%
其他说明
根据微软官方提供的说明,如果计算机处于长期联网状态,并且开启了自动更新功能,那么系统补丁包将自动进行升级和安装,这些系统可以直接使用 Virbox 用户工具;如果以上列举的操作系统处于长期离线状态,则K可能需要更新补丁
此次证书升级,仅影响部分 Windows 操作系统,最新的 Windows 系统和其他系统平台不受影响。