跳到主要内容

· 阅读需 11 分钟

背景

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

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu

补丁号:KB4490628

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu

系统:Win7 x64 sp1

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x64_b5614c6cea5cb4e198717789633dca16308ef79c.msu

补丁号:KB4490628

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x64_d3de52d6987f7c8bdc2c015dca69eac96047c76e.msu

系统:Win7 x86 sp1

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/09/windows6.1-kb4474419-v3-x86_0f687d50402790f340087c576886501b3223bec6.msu

补丁号:KB4490628

下载地址:https://catalog.s.download.windowsupdate.com/c/msdownload/update/software/secu/2019/03/windows6.1-kb4490628-x86_3cdb3df55b9cd7ef7fcb24fc4e237ea287ad0992.msu

注: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

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/09/windows6.0-kb4474419-v4-x64_09cb148f6ef10779d7352b7269d66a7f23019207.msu

补丁号:KB4493730

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/04/windows6.0-kb4493730-x64_5cb91f4e9000383f061b80f88feffdf228c2443c.msu

系统:Server 2008 x86 sp2

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/09/windows6.0-kb4474419-v4-x86_fd568cb47870cd8ed5ba10e1dd3c49061894030e.msu

补丁号:KB4493730

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/04/windows6.0-kb4493730-x86_ab4368f19db796680ff445a7769886c4cdc009a0.msu

系统:Vista x64 sp2

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/09/windows6.0-kb4474419-v4-x64_09cb148f6ef10779d7352b7269d66a7f23019207.msu

补丁号:KB4493730

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/04/windows6.0-kb4493730-x64_5cb91f4e9000383f061b80f88feffdf228c2443c.msu

系统:Vista x86 sp2

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/09/windows6.0-kb4474419-v4-x86_fd568cb47870cd8ed5ba10e1dd3c49061894030e.msu

补丁号:KB4474419

下载地址:https://catalog.s.download.windowsupdate.com/d/msdownload/update/software/secu/2019/04/windows6.0-kb4493730-x86_ab4368f19db796680ff445a7769886c4cdc009a0.msu

注:Server 2008 x64/86 sp1、Vista x64/x86 sp0、Vista x64/x86 sp1用户需先将系统升级至Server 2008 x64/x86 sp2、Vista x64/x86 sp2后才可安装该补丁。

开发商如何集成

概述

主要通过四个步骤完成集成

  1. 开发商软件集成 Virbox 用户工具 和 对应的系统补丁安装包
  2. 在安装时同时释放 Virbox 用户工具 和 补丁安装包
  3. 通过命令行调用 Virbox 用户工具进行安装
  4. 检查是否安装成功

第一步、集成工具和补丁

开发商需要将最新的 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)当前操作系统不包含信任的根证书,需要升级根证书

特别说明

  1. 您可以根据自己的需求,调整 PatchMap 文件的配置,如您的软件主要运行环境不包含 Windows Server 2008,您可以删除关于 Windows Server 2008 相关的配置,并且不打包该系统的补丁包
  2. 如果您的软件已经不支持上述存在兼容性的操作系统,那么您在集成 Virbox 用户工具的时候可以跳过 集成和释放系统补丁 的过程

用户如何安装

软件的最终用户若需要手动安装 Virbox 用户工具,需要以下操作步骤。

  1. 以管理员身份运行 Virbox 用户工具安装包

  2. 若当前操作系统为 支持 SHA -2 算法签名(如 Windows 10/11),或当前操作系统已经安装了系统补丁(如 安装补丁后的 Windows 7 x64 SP1),或者当前操作系统不验证数字签名(如 Windows XP),则跳过第3步继续执行;

    若当前操作系统不支持 SHA-2 算法(如以上列举的未安装补丁时的操作系统),则用户工具会提示用户安装对应的系统补丁

  3. 按照 Virbox 用户工具给出的提示,从微软官方下载系统补丁,退出当前用户工具的安装,优先安装系统补丁,补丁安装完成后,再次执行 Virbox 用户工具的安装

  4. Virbox 用户工具继续安装,直至最终安装进度达到 100%

其他说明

  1. 根据微软官方提供的说明,如果计算机处于长期联网状态,并且开启了自动更新功能,那么系统补丁包将自动进行升级和安装,这些系统可以直接使用 Virbox 用户工具;如果以上列举的操作系统处于长期离线状态,则K可能需要更新补丁
  2. 此次证书升级,仅影响部分 Windows 操作系统,最新的 Windows 系统和其他系统平台不受影响。

· 阅读需 14 分钟

产品简介

精锐5 身份认证“组件”(Virbox WebServer),是一个运行在用户计算机的本地 Web 服务(不需要访问互联网),提供 Web 接口访问精锐5加密锁,B/S 架构的 Web 应用只需在网页代码中嵌入调用接口(跨域访问)的代码即可访问加密锁、获取加密锁信息,实现身份认证功能。

不同于 COM 组件访问加密锁的方式,本产品提供的 Web 接口可用 JavaScript 调用,开发者不需要学习额外的技能即可完成功能集成,兼容市面主流的浏览器(IE、Chrome、360、Firefox 等)。

产品架构

img

  • B/S 服务端:开发者 B/S 架构应用程序(网站)服务端,向用户提供服务。
  • 浏览器(客户端):用户通过浏览器访问指定域名的网站,包括主流的浏览器:IE、Chrome、360安全浏览器、360极速浏览器、猎豹浏览器等。
  • Virbox WebServer:身份认证核心组件,提供访问加密锁的 Web 接口。
  • Virbox 用户工具:访问精锐5加密锁、云锁、软锁,提供抽象访问锁(含硬件锁、云锁、软锁)接口。
  • 精锐5加密锁:身份认证的物理介质,锁内存有唯一的设备私钥,提供不可伪造的设备签名。每一把精锐5加密锁在出厂前由锁内安全芯片生成全球唯一密钥和证书,硬件具有不可复制、密钥不可导出的安全特性,让伪造认证变得更加困难。

注意:Virbox WebServer 无法直接与精锐5加密锁通信,需要通过 Virbox 用户工具间接访问加密锁,所以在软件运行环境部署时需要安装 Virbox WebServer 和 Virbox 用户工具(可以通过官网下载最新版本)。

认证流程

  1. 用户通过浏览器访问网站。

  2. B/S 服务端返回包含认证数据和正版认证代码的网页给浏览器。

  3. 网页被浏览器完全加载后主动(或被动)执行认证流程。

    1. 调用 Virbox WebServer 的正版认证接口,对服务端生成的认证数据使用精锐5内置设备私钥签名。
    2. 网页将接口返回的加密锁信息(唯一芯片号、加密锁设备证书链)、认证数据和签名结果返回给 B/S 服务端。
    3. B/S 服务端验证加密锁的合法性。
    4. B/S 服务端使用加密锁证书验证签名结果的合法性。
    5. B/S 服务端可根据认证结果判定是否允许用户进行后续操作。

认证流程图如下图所示:

img

加密方案

精锐5 身份认证的加密方案以加密锁设备唯一的私钥不可篡改、不可克隆为基础,使用加密锁私钥签名、加密锁公钥验签的方式进行验证。

基础方案

前提条件

  1. B/S 服务端已保存发售的加密锁信息(外壳号、芯片号、设备证书)

B/S 服务端

当某一台客户端通过浏览器网页访问 B/S 服务端时,服务端首先校验客户端的合法性。

  1. 服务端记录客户端会话GUID
  2. 根据会话GUID + 随机数 + 当前的UTC时间组合生成验证数据,使用 Hash 算法计算验证数据的哈希结果,用于验证客户端的合法性。
  3. 服务端将校验数据返回给客户端,等待客户端使用本地的加密锁的私钥对验证数据的 Hash 结果进行签名,并将加密锁信息和验证签名结果返回给服务端。
  4. 服务端校验加密锁合法性。服务端检查客户端上传的加密锁信息(外壳号、芯片号)与数据库内容对比是否一致,验证加密锁的合法性。
  5. 服务端校验验证数据的合法性。服务端在确认加密锁合法后,使用加密锁的设备公钥验签私钥签名的合法性,只有当签名结果与验证数据完全一致时,表示当前客户端的加密锁有效。

客户端

用户通过客户端的浏览器网页访问 B/S 服务端某些业务功能,当 B/S 服务端需要验证客户端的合法性时,客户端需要将服务端返回的数据交给本地的精锐5硬件锁进行签名,然后将签名结果返回给服务端进行验证。

  1. 客户端通过 Virbox WebServer 接口获取加密锁信息(外壳号、芯片号、设备证书)。
  2. 客户端通过 Virbox WebServer 接口对服务端返回的认证数据进行加密锁私钥签名。
  3. 客户端将加密锁信息和加密锁私钥签名后的数据一起发给服务端进行校验审核。

双重验证方案

在实现基础方案的基础上,B/S 服务端可以同时采用 用户名、密码 登录认证的方式,对客户端用户进行账号认证,与硬件加密锁认证结合实现双重认证。

当客户端需要进行某些特殊操作时,进行加密锁认证,认证通过后允许客户端执行业务功能。

安全性

精锐5身份认证的安全性由 加密方案和 精锐5 加密锁 两方面保证。

从上文中可以了解到 Virbox 身份认证,由服务端针对每一个客户端生成唯一的、抗重放的认证数据,再通过网络交给客户端,客户端使用加密锁私钥对认证数据进行签名,最后客户端再将认证提交给 B/S 服务端在服务端进行认证检查。

认证数据的生成和签名结果校验在服务端完成,客户端使用加密锁私钥签名后的认证数据具有不可伪造的特性,无论 B/S 服务端与客户端通信使用 HTTPS 或 HTTP 协议,传输数据是明文或者密文,都不影响认证数据的安全性。

开发者只需保证 B/S 服务端生成的认证数据有以下两个特点:

  1. 唯一性。每个客户端应该具有唯一的认证数据。
  2. 抗重放。认证数据只有单次有效,过期作废,验证完毕即刻清除,防止数据被重复利用。

功能集成

开发者参照示例(web_server_test.html)将调用 Virbox WebServer 的 JS 代码集成到业务功能的网页中,并根据业务流程在适当的情况下触发相关接口调用即可。

我们向开发者提供 Virbox WebServer 和 用户工具的安装包,以及 Virbox WebServer 接口文档、示例代码(C#、Java)。

开发者需要参照示例程序完成以下工作:

  1. B/S 服务端生成认证数据,调用标准密码学接口实现公钥验签功能。
  2. B/S 服务端根据加密方案提供数据存储和校验逻辑。
    1. 基本方案。
      1. 服务端需要记录正式发布的加密锁信息
      2. 客户端调用 Virbox WebServer 接口获取加密锁信息,提交给服务端。
      3. 服务端实现检查客户端加密锁数据有效性检查功能。
    2. 双重验证方案。
      1. 服务端需要实现账号密码登录功能和相关数据存储。

环境部署

安装组件

在用户计算机需要安装以下组件

  1. Virbox 用户工具,开发者可以通过官网下载最新版本。
  2. 身份认证组件(Virbox WebServer),联系在线咨询获取最新发布版本。

部署验证

  1. 在用户计算机插入精锐5硬件锁
  2. 使用浏览器打开测试用例(web_server_test.html),点击 “查询 WebServer 版本号” ,返回当前认证服务版本号,如果未返回结果或提示错误,请根据常见问题进行排查。

兼容浏览器

浏览器是否支持备注
IE支持支持版本:IE7、IE8、IE9、IE10、IE11
Edge支持
Chrome支持
QQ浏览器支持
Firefox支持HTTPS 需要将证书加入信任列表
360支持360极速浏览器、360安全浏览器

常见问题

HTTPS 和 HTTP 协议选择

Virbox WebServer的协议必须要与 B/S 服务端保持一致,如果浏览器访问域名使用 HTTPS 协议,在返回的页面中集成调用 Virbox WebServer 接口,必须保证运行的 Virbox WebServer 也是 HTTPS,否则会在页面代码中集成的 JS 代码调用接口会返回失败;反之,如果浏览器访问域名使用 HTTP 协议,用户端部署的 Virbox WebServer 也需要设置为 HTTP 协议。

Virbox WebServer 目前支持 HTTPS 和 HTTP 两种协议。当前版本服务运行期间只能选择一种协议,服务默认配置为 HTTPS,开发者可以通过修改安装目录下的配置文件(websrv_config.ini),将 protocol=HTTPS 改为 protocol=HTTP,保存配置文件,并重启 “VirboxWebServer”,配置即刻生效。

备注:Virbox WebServer 默认安装目录 C:\Program Files (x86)\senseshield\ss_web

选择 HTTPS 协议时证书是否能够兼容主流的浏览器客户端

Virbox WebServer 使用 HTTPS 协议自签名证书,在安装时将根证书添加至 Windows 证书管理 “受信任的根证书颁发机构”,所有使用 Windows 证书管理的浏览器(IE、Edge、Chrome、360)都能够正常访问 Web 接口,不会提示“错误的证书”。

Firefox(火狐浏览器) 并未使用 Windows 证书管理,当前版本需要用户手动访问 Virbox WebServer 提供 Web 接口,在提示“错误证书”时将证书添加至信任列表即可,否则在网页中调用 JS 代码接口跨域访问时会返回失败。

Virbox WebServer 是否支持跨主机访问

Virbox WebServer 设置 HTTP 协议,支持跨主机使用 IP 访问。

Virbox WebServer 设置 HTTPS 协议,只支持使用 localhost 域名在本机访问 Web 接口,不支持其他域名和跨主机使用 IP 访问。

HTTPS 浏览器首次请求等待时间长

Virbox WebServer 设置 HTTPS 协议时,无论通过浏览器直接输入接口地址,或者通过 JS 调用接口,首次需要建立 HTTPS 通道,校验证书,造成请求处理时间较长,请耐心等待,但再次请求时耗时恢复与接口实际用时相当的时间。

更换浏览器首次访问 Virbox WebServer 接口都会存在访问慢的情况。 建议:1.开发者可在网页中明确标识功能仍在后台运行,请用户稍后的提示信息;2.在不考虑安全性的情况下,可改用 HTTP 协议,则不存在首次请求返回慢问题。

· 阅读需 3 分钟

1.什么是共享锁

同一把加密锁支持两家及以上的开发商共同开发使用,并且两家开发商之间的加密与许可完全隔离,互不干扰

2.共享锁在机器视觉行业的应用场景及价值

2.1 应用场景:

集成商(工业设备或软件平台)根据不同的视觉场景需求向算法提供商采购算法,集成商二开集成算法并进行二次加密 及授权,最终交付给用户,通常最终工业视觉设备上需要插入两把或多把加密锁。共享锁基于此场景,算法提供商可开 放共享锁给集成商,集成商二开集成算法后,当需要二次加密及授权时,可充分利用共享锁特性,无须重复购买加密锁

2.2 价值:

  • 节省硬件成本
  • 不占用USB 口
  • 最终用户体验好

3.共享锁权限申请

加密锁归属于共享开发商(拥有者),当集成商需要使用其共享锁时,必须向原加密锁厂商申请开通权限,在得到厂商 授权的前提下,集成商方可使用加密锁的相关功能。

4.共享锁权限回收

共享开发商有权回收集成商共享锁权限,权限回收后,集成商不再支持对新共享锁使用共享功能。

注意:已开通的共享锁仍可继续使用

5.共享锁使用

共享开发商与集成商均有独立 SDK 开发包,可通过各自独立的 SDK 访问共享锁内的许可及使用加密锁的相关功能

注意

共享锁目前仅支持 1 家集成商共享,支持多家集成商共享场景以后提供

· 阅读需 2 分钟

更新内容

本次SDK发版更新内容:

Virbox 用户工具更新(2.4.0.52635)

  • 支持试用软许可
  • 支持授权码软许可联网自动更新
  • 优化授权码软许可在线激活、更新和解绑流程
  • 优化安装过程,缩短安装时间

加壳工具更新(2.4.0.15176)

  • 支持Unity IL2CPP程序
  • 支持Android Unity APK程序的资源加密
  • 支持JAVA 函数虚拟化的保护
  • 新增Android APK程序的反注入、模拟器检测、root检测和多开检测等功能
  • 新增Unity Android 资源加密 “大小优先”选项
  • 新增加密选项中的加密选项说明
  • 新增Unity 资源加密主界面入口按钮
  • 优化Java VME方式保护后程序的体积
  • 优化Java 的文件列表变成独立选项
  • 优化ds插件
  • 修复linux程序保护运行中无许可状态下程序可继续运行的问题
  • 修复命令行保护unity或java目录时,不指定输出目录会删除上级目录的问题

如何更新SDK

1.在开发者工具盒左侧点击【更新SDK】,然后点击【开始检测】

2021-10-18_184628

2.检测完成后,点击【立即更新】即可自动下载。

2021-10-18_184848

· 阅读需 2 分钟

VirboxLM 云平台登录时,支持微信扫码登录功能上线!以后再也不用输入密码进行登录了!快来尝试吧!

登录地址:https://developer-new.lm.virbox.com

密码登录页面点击右上角二维码图标,使用手机扫描二维码,手机微信允许“VirboxLM开发者中心”申请使用。如果微信已经绑定过开发者中心账号,扫码后直接登入该账号。如果微信未绑定过开发者中心账号,微信授权成功后进入绑定账号页面。

图片

使用微信扫码后,第一次需要绑定账号:

图片

输入手机号或者邮箱,获取验证码填写之后即可绑定登录成功,之后就可以顺畅使用微信登录 VirboxLM 云平台账号了!

如果您未注册过开发者中心账号:需要使用手机号注册开发者中心账号。直接在绑定账号页面填写您的手机号,平台会自动识别您的账号未在平台注册过,跳转到快速注册页面。

img

输入相关信息后,点击“注册并登录”,即完成开发者中心账号注册及微信绑定该账号的操作,此后可直接使用微信扫码方式登录开发者中心。

更换/解绑微信登录

如果想更换登录的微信,可在账号信息设置里,进行解绑

图片

【注意】微信号与平台账号绑定关系为1对1。