跳到主要内容

· 阅读需 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。

· 阅读需 4 分钟

行业背景

加密锁有其独特的性能、功能和安全优势,是软件加密和授权管理领域中的王者,数不清的软件开发者使用硬件加密锁对软件版权做保护。硬件加密锁尤其广泛应用于工业自动化、建筑、医疗卫生、游戏、管理软件等行业,这些行业中的软件售价少则数千,多则几万,使用加密领域最为优秀的硬件加密锁保护是最为理想的。加密锁对于软件用户来说也是一笔重要的资产,需要好好保护,但总有弄丢加密锁的情况出现,如何解决这些问题。

行业问题

用户丢锁有两种现象。一种是真正的丢失了加密锁,另一种是故意报丢加密锁,从软件开发者处骗取一套软件。多数开发者是以软件的原价或者部分折扣价格重新售卖给用户,对于故意“丢失”加密锁的用户是一个有效的打击方案,但是对于真正丢失了加密锁的用户,相当于重新购买一套软件,这对于软件用户来说很难接受,毕竟一套软件价格不菲,是很高的一个成本。

Virbox LM 的解决方案

Virbox LM 推出精锐5 的“丢锁补锁”服务,精锐5 协同 Virbox LM 云平台,对已经发售的加密锁进行管理,定期对其进行激活,超过激活期的加密锁无法使用。

  • 有效打击故意“丢锁”行为,保障开发者和用户的切实利益。
  • 开发者能协同VirboxLM云平台服务,根据商业需求,对已经发售的加密锁用户进行精细化管理:激活授权——永久授权——挂失。
  • 实现创收,将“丢锁补锁”作为一项商业保险服务,同时提升用户的服务满意度。

方案优势

  • 自动定期激活。加密锁售出后,无需手动激活管理,加密锁联网后将自动进行激活操作
  • 灵活部署。可自部署“丢锁补锁”服务,需自行搭建服务器
  • 操作便捷。用户只需要告知开发者加密锁号,就可以快速的将加密锁挂失

img