引言

背景

软件作为虚拟的商品,跟实体产品一样进行交易。交易的双方,要签署对等的协议,交易的双方会有相应权责的约束。用户在支付费用,获取所有权或使用权的同时,也要遵守开发者的要求。但这只是理想中的状况,实际上,知识产权作为商业软件的基础,每年因知识产权的非法使用造成的损失是惊人的。

知识产权被盗用和滥用的情况比比皆是:

  1. 软件产品遭受破解,在盗版市场贩卖,形成完整的利益链条
  2. 软件产品中的核心算法被剽窃,被竞品应用于自己的产品
  3. 软件中的核心代码泄露,在竞争中处于不利位置
  4. 软件中的授权被恶意篡改,用户超出授权范围非法使用

以上的各种场景,给软件开发者带来了诸多困扰:

  1. 担心黑客为证明自己的实力,将产品破解并免费放到网上,造成利润流失
  2. 担心用户为节省成本,寻找黑客,破解后自己使用,造成利润流失
  3. 担心被同行反编译后盗用代码,与现有产品竞争
  4. 担心有渠道能力的黑客破解后,进行销售,造成利润流失
  5. 担心非法授权产品侵害公司形象,提升客户服务的成本

所以,开发者不仅需要将自己的产品源代码,通过一定的技术手段和安全策略保护起来,防止恶意的拷贝、篡改及逆向工程,还需要采用各种安全的措施,来保证合法授权不被侵害。合法授权的分发及管理是业务的核心,而安全,就是核心得以不被侵害的保障。

常见的盗版手段

破解授权容器

破解授权容器的方法有很多,目前市场上的高强度加密产品一般都采用硬件加密锁进行防护,下面列举对硬件加密锁破解的几种手段。

紫外线攻击方法:就是利用紫外线照射芯片,让加密的芯片变成了不加密的芯片,然后用编程器直接读出程序。

利用芯片漏洞:很多芯片在设计的时候有加密的漏洞,这类芯片就可以利用漏洞来攻击芯片读出存储器里的代码。

恢复加密熔丝方法:一般解密公司利用探针来实现,将熔丝位连上,也有的人因为自己没有太多的解密设备,需要交由其它半导体线路修改的公司来修改线路,一般可以使用FIB(聚焦离子束)设备来将线路连接上,或是用专用的激光修改的设备将线路恢复。

修改加密线路的方法:目前市场上的CPLD以及DSP芯片设计复杂,加密性能要高,采用上述方法是很难做到解密的,那么就需要对芯片结构作前面的分析,然后找到加密电路,然后利用芯片线路修改的设备将芯片的线路做一些修改,让加密电路失效,让加密的DSP或CPLD变成了不加密的芯片从而可以读出代码。

芯片剖片分析:腐蚀芯片,拍照,提取版图,分析电路,仿真,流片读取调试端口读取数据。

构造虚假授权

破解者一般还会以构造虚假授权的方式,骗过软件的自我检测机制,从而盗取软件的使用权限。常见的伪造授权的方式有以下几种:

  1. 监听通信过程,获取授权数据
  2. 重放数据,真实授权,无数次使用
  3. 伪造签名

授权和软件剥离

一种最为常见的破解手法,只要将软件和授权之间的关联取缔,那么软件将不受任何控制。

精锐5 产品介绍

产品描述

精锐5 是我公司研发的新一代智能卡软件保护产品, 是 Virbox LM 授权管理产品的一员。它具有保护强度高、运算速度快、保护方案灵活等特点,非常适用于有高强度软件加密需求的软件开发者

精锐5 的芯片选用国际顶尖的 32 位 ARM 内核智能卡,通过了 CC EAL5+ 认证的安全芯片(军工级别的芯片采用的基本上都是这个级别),可以有效防止加密锁复制、剖片、随意读取和篡改数据等黑客行为。此外,精锐5 配备了 Virbox Protector 和 Virbox 客户端等软件工具,从软件端即开始对软件进行加密保护。

产品定位

早期的加密锁产品,一般只为开发者提供一套开发库,开发者直接操作加密锁,自己定义软件的授权格式,由于软件开发者对于软件加密领域认知水平不一,导致很多软件开发者无法开发出高强度的软件加密方案,对盗版软件的打击收效甚微。

精锐5 致力打造最高安全性的软件版权保护解决方案,为软件开发者提供高安全强度的软件加密和授权解决方案。精锐5 依托于 Virbox LM 云授权管理产品,配合 Virbox 客户端使用,屏蔽一切底层接口,加上全面的许可管理体系,提供全方位的软件版权保护措施,可以有效阻止软件盗版行为,将软件开发者从加密方案的焦油坑中拉出,为软件开发者带来更高的商业价值。

目标客户

精锐5 加密锁广泛应用于建筑、医疗设备、自动化控制、游戏、管理、移动端软件等行业,可以提供授权控制、数据保护、源码保护等方案。

系统架构

精锐5 硬件锁在 Virbox LM 产品系统框架中的位置,参考硬件许可部分。

产品优势

全方位安全保障

  1. CC EAL 5+ 认证安全芯片
  2. 虚拟化加密工具
  3. 完整的加密方案
  4. 其他安全特性:全球唯一芯片序列号;私钥锁内生成,永远无法出锁;支持通用密码学算法,支持国密算法

支持代码移植

精锐 5 支持锁内代码开发功能,并且升级了锁内代码的安全性——绑定许可。绑定之后,代码的使用取决于许可是否有效。详细描述请参考下文 代码移植

灵活的扩展方案

精锐 5 硬件锁可以兼容云锁许可和软锁许可。只需一次加密,即可根据业务需要灵活切换三种许可类型。在软件维护方面,只需维护一套软件以及加密方案,极大程度上提升工作效率并节约了成本。

匠心制造

精锐 5 加密锁采用精选铝镁合金以及高级 PC 材质打造而成。小巧的身躯拥有良好的耐高低温性能。运行温度为 -25℃~85℃。完美通过 1650 万次数据擦写测试。在充分的电源防护,以及保证各种环境运行顺畅情况下,精锐 5 的使用寿命长达十年,坏锁率低于万分之三。

支持范围广

目前市面上主流的操作系统和开发语言精锐 5 加密锁几乎都可以支持。同时,在 Android 和 ARM-Linux 上也有高安全性的加密工具。

大容量空间

精锐 5 最大存储空间是 512KB,能存储 6000 条许可,也可以存储大量的关键数据、密钥和代码。

全天候在线技术服务

我公司是一家专注于设备和数据安全领域的高科技公司,凝聚了大量高科技人才,研发人员占比超 50%,拥有 200 多项发明专利。凭借卓越的技术和诚实守信的口碑,深思成为了用友、广联达、金蝶、科大讯飞、H3C、和利时、海康威视等一大批国内软件行业领导者的长期合作伙伴。

提供 7*12小时在线服务,咨询服务实时响应。推荐行业解决方案,帮助完成软件加密和代码开发。

简单易用

精锐 5 加密锁使用 Virbox LM 云平台进行许可下发,简单易用。配套的 Virbox Protector 安全工具支持一键拖拽加密,非研发人员也能轻松完成软件加密,整个加密过程 5 分钟即可完成。

性价比之王

标准版精锐 5 的价格是 88 RMB,多买多优惠。具体各种型号的报价,可以访问  官方商城

精锐5分类

开发锁

开发锁也称控制锁、母锁,是精锐5 加密锁的一种,软件开发者持有,内含软件开发者的 RSA 私钥,是软件加密和授权的关键,发布授权和对软件加密时都需要用到的加密锁,每个开发者只有一把,请务必妥善保管,否则可能会带来巨大财产损失,一旦丢失,请尽快联系我公司 服务人员,我们会帮您将损失降到最低。

用户锁

用户锁在没有特指的情况下,就是硬件加密锁,本文在没有特殊说明的情况下,提及的“硬件加密锁”、“加密锁”等描述特指 精锐5 用户锁。用户锁是最终发放到软件最终用户手中的加密锁,软件加密和授权依赖的硬件产品,拥有了用户锁就拥有了软件的使用权。

两者关系

一把用户锁是不能直接使用的,因为锁是一把空锁,内部不含任何软件许可数据。用户锁内的许可,是通过开发锁签发生成的,开发锁针对一把用户锁颁发软件许可证,然后升级到用户锁内,许可才算正式生成。简单来说就是,每一把用户锁,必须要经过开发锁设置许可才能正常使用。

为什么只有开发锁签发的升级包才能被用户锁识别,而用户锁为什么只能识别当前开发者的升级包?此过程可参考本文后续描述  远程升级

精锐5 用户锁版本

精锐5 标准版

采用橙、灰、蓝三种颜色金属外壳打造而成。简洁的外观,更大的存储空间。内置三个64K数据区,可存放6000条许可,参考 附录  中的精锐5 标准版。

精锐5 精灵版

精锐5系列的颜值担当。机身小巧便携,外壳和挂链随心定制。安全性能毫不逊色,由内而外的高性能,参考 附录  中的精锐5 精灵版。

精锐5 时钟版

采用硬件时钟技术,锁内包含可充电电池,可为时钟模块提供电源,和计算机本地时间不再产生硬件性关联,严格保证时间的准确性。

核心技术

许可管理

简介

精锐5 的许可管理,秉承了 Virbox LM 许可体系,支持限时限次,浮动授权,功能模块区,数据区等许可条款,配合其高强度的安全性,可谓授权管理领域的王牌。精锐5 的存储空间有 256kb 和 512kb 两种,分别最大可容纳 3000 和 6000 条许可。

许可条款

条款说明
许可ID许可条款的唯一标识码
开始时间限制软件的开始使用时间,早于设置时间时软件无法使用
结束时间限制软件的使用时长,超过此时间无法使用
时间跨度从第一次使用开始,可以连续使用的时间范围
使用次数软件最多可以使用的次数
并发类型标识当前许可是否为网络可用
功能模块64个功能模块区域,限制软件的功能使用
数据区只读区,读写区,公开区。各区均有64k存储空间,可根据业务情况合理使用数据区,关键数据存储在数据区中

许可功能

设置不同的许可条款,来限制软件的使用条件。例如限制许可的开始时间,那么软件将不得早于设置时间使用;限制许可的结束时间,软件将不得超过这个使用时间;限制许可使用次数,软件将在使用次数用尽后不能使用等等。

许可加解密

简介

许可加解密是依托于精锐5 锁内提供的密码学算法,以许可内容为密钥基础进行的加解密操作,是一种加强软件和授权关联的有效手段。许可加解密有如下特点:

  1. 密钥在锁内计算得到,不出锁,不存储
  2. 采用 AES 加解密算法,运算效率高
  3. 不同开发者的加密锁,得到的许可密钥不会重复
  4. 同一开发者的加密锁中的不同许可,得到的许可密钥也不会重复

实现原理

开发者在开发过程中,将程序中的关键数据,通过许可加解密的操作进行加密,发布后的软件中,关键数据将以密文形式存在,即便软件中的关键数据泄露了也无法被解密。软件在正常运行时,将关键数据在锁内进行解密,解密后的数据仅在内存中存在,应用程序获得明文关键数据后继续执行。

远程升级

简介

远程升级是精锐5 在许可管理领域提出的一个全新的概念,我们也经常称之为“D2C过程”。精锐5 用户锁中的许可如何生成,文件如何下载到锁内,以及如何防止许可盗用、重放、伪造,都是通过远程升级操作实现的,是精锐5 许可管理中的关键技术。

远程升级需要开发锁和用户锁相互配合,通过开发锁签发,用户锁验证的方式,将许可内容或文件数据下载到用户锁中,而且许可升级是一对一升级,同一开发者的不同用户之间的许可升级包也不可以相互使用。

证书认证

数字证书是整个互联网安全基础,许多应用的安全基础依赖证书链。精锐5 采用深思自建的 CA 认证体系,根证书完全离线并进行物理隔离,各级子CA分权管理,每个加密锁或用户账号都有其独立的证书。数据都要经过签名和加密,并通过各级验证后方可使用,数据通信过程中无法对数据进行篡改和伪造。

精锐5 CA体系

技术原理

许可和文件的升级过程必须要能保证升级包的时效性、抗重放、防伪造能力。因此,精锐5 的远程升级设计如下特点:

  1. 升级包采取开发者私钥签名,设备证书加密的方式,保证许可数据的唯一性
  2. 用户锁每次记录升级时间戳,保证已经升级过的升级包无法再次使用
  3. 用户锁升级记录最后一次升级时间,保证只有最新的升级包可以升级,早期的升级包无法升级

升级过程

首先,在加密锁的生产过程中,开发锁的开发者证书,已经下载到了每一把用户锁中,证书可以用来验证开发锁的数据签名,可以有效保证数据的来源。

其次,在开发锁签发许可或文件时,必须要得到用户锁的设备证书,这样可以保证使用设备公钥对数据进行加密,设备公钥加密可以保证每一个升级包都只能对应一个设备。

然后,精锐5 用户锁在升级许可或文件时,首先要使用用户锁的设备私钥对数据进行解密,然后使用开发者证书对数据进行验证,这样保证数据的唯一性和正确性,然后将许可数据或文件数据写入到用户锁中。

生成升级包过程:

升级升级包过程:

抗重放机制

精锐5 通过内置的抗重放机制,可以实现“一个升级包仅能升级一次”的功能,能有效避免许可重复升级、错序升级等操作,这里对抗重放机制做一个详细的描述。

许可的远程升级其实包含了许可的添加、更新、删除等操作,因为所有操作都是通过一个远程升级包来执行的。每一个远程升级包在签发过程中,会默认带上签发的时间戳和流水号,在升级完成后,精锐5 会将这些信息随同许可ID记录在锁内,生成一个升级时间戳记录表,每次升级都会对比上一次升级的时间戳和序列号,一旦第二次升级时许可所包含的时间戳和序列号不大于锁内记录的历史信息,则认为当前升级包已经失效,无法在锁内生成相应的许可,下面对一些常用操作和实际现象进行说明。

操作正常操作无效操作抗重放机制
添加许可许可添加成功再次升级,提示“时间戳错误的远程升级包”当前许可的签发时间戳和序列号已经被记录在锁内,二次升级时精锐5 会对比两个参数,判断参数是否有效,再决定后续的升级是否可以执行。仅对当前许可有效
更新许可许可更新成功再次升级,提示“时间戳错误的远程升级包”当前许可的签发时间戳和序列号已经被记录在锁内,二次升级时精锐5 会对比两个参数,判断参数是否有效,再决定后续的升级是否可以执行。仅对当前许可有效
同一条许可,连续生成和升级两个升级包先签发先升级,后签发后升级,许可升级成功后签发先升级,许可升级成功;先签发,后升级,提示“时间戳错误的远程升级包”当前许可的签发时间戳和序列号已经被记录在锁内,对比是以许可ID 为依据的,并不会以升级包本身作为判断依据,因此精锐5 仍然会判断参数是否有效,再决定后续的升级是否可以执行。仅对当前许可有效
删除许可许可删除成功再次升级,提示“时间戳错误的远程升级包”许可被删除成功,虽然表现上是“锁内没有这条许可了”,但是许可的远程升级记录并不会删除。仅对当前许可有效
删除所有许可所有许可删除成功

1.当前升级包再次升级,

提示“时间戳错误的远程升级包”

2.其他许可升级包的升级,提示“时间戳错误的远程升级包”

删除所有许可时,精锐5会记录一个“上次删除所有许可”的时间戳,类似于前面提到的每条许可历史记录里的“签发时间戳”,这个时间戳会导致之前签发的所有许可升级包完全失效,必须重新签发。影响所有许可,以及在此时间戳记录之前的,还没有升级的许可升级包

技术细节

由于多数的文件升级操作不需要区别用户锁,即一个升级包可以升级到所有的用户锁中。所以,精锐5 不仅提供了针对单一用户锁设备签发文件的方式,也提供了针对所有用户锁签发文件的方式,这样,开发者可以签发一次文件,多次分发到用户锁中。注意,一包对多锁的升级操作仅对文件签发有效,而且签发的升级包依然具有抗重放功能。

锁内文件系统

简介

精锐5 锁内支持文件系统,无论是数据文件,密钥文件,还是可执行文件,均可以下载到精锐5 中。

精锐5 文件系统特点有:

  1. 类FAT32文件系统,支持文件删除,不支持目录
  2. 支持3种文件类型:数据文件、可执行文件、密钥文件
  3. 数据文件大小可变,写入多的数据文件自动增大
  4. 密钥文件大小可变,写入多的数据文件自动增大,由于密钥文件是加密存储的,有最大长度限制(1472)
  5. 可执行文件大小不可变
  6. 数据文件和可执行文件可以按偏移量进行写入,密钥文件必须从0偏移开始写,且一次写完
  7. 文件名有长度要求,不得超过 16 个字节(包含文件后缀名)

文件碎片整理自动进行,当创建可执行文件,剩余空间够且不存在连续存储块时,会自动整理,整理需要大约30至50秒时间。通过锁内 SES 创建文件,不会进行碎片整理,直接返回空间不足。

文件类型

类型描述
数据文件一般以 .evd 为后缀,可以存储重要数据内容
可执行文件一般以 .evx 为后缀,是锁内可执行程序,是代码移植的关键
密钥文件后缀没有特殊要求,密钥文件不可读、不可写,可升级、仅可通过文件句柄使用

注意

上面描述的文件后缀名只是一般用法,文件没有特殊后缀名要求,但是有严格的格式要求,例如不能将数据文件当做可执行文件执行。

文件权限

精锐5 硬件锁中的任何一个文件,都有其使用权限。文件有只读、写删、使用和远程升级等权限,每种权限又分为 Entry 权限和 User 权限。User 权限也可称为 “开发者权限”。如下图所示。

权限描述
只读(R)表示该文件在锁内只能被可执行程序读取
写删(W)表示该文件可以被锁内程序写入和删除
使用(X)表示该文件只可被锁内可执行程序使用,即获取文件句柄后,使用文件句柄。这样的权限常用于密钥文件,获取到密钥文件句柄后,调用相应锁内接口进行密码学操作。
远程升级(U)表示该文件可以通过远程升级的方式进行管理。即通过 开发锁  签发的方式进行修改。

注意

文件的写权限可设,有写权限即有删除文件的权限,注意务必设置写权限或远程升级权限,否则将造成不能删除的“死文件”。

如果不小心将文件设置成了“死文件”,只能通过加密锁恢复出厂设置的方式来删除该文件。

Entry 权限和 User 权限

  1. Entry 权限是指精锐5 硬件锁自己可以访问的文件
  2. User 权限是指开发者的锁内代码可以访问的文件
  3. 文件可以同时拥有 Entry 权限和 User 权限

密码学算法

简介

精锐5 支持常用密码学和哈希算法,包括 DES/TDES/AES/SM4 等对称加密算法, ECC/RSA/SM2 等非对称加密算法,同时,精锐5 还支持 SHA-1/SHA-256/SM3 等摘要算法,满足绝大多数软件开发者对密码学算法的需求。精锐5提供通过内存进行加解密和通过文件句柄进行加解密两种方式。

通过内存加解密

是指密钥存在内存中,一般情况下是通过随机密钥来执行加解密操作,精锐5 提供在内存中使用密钥,对数据进行加解密。

通过文件句柄进行加解密

上文中 文件权限 中我们介绍了,以密钥文件类型存储的文件,是无法读取到数据的,精锐5 提供通过文件句柄来使用密钥的接口,不需要获取密钥内容,即可进行加解密操作。

代码移植

简介

精锐 5 支持代码移植技术,即可以将软件中最重要的代码从软件中“挖走”并移植到精锐5 内部,当软件中需要执行此段代码时,通过调用我们提供的 API 使这段代码在精锐 5 内部执行。除此之外,也可以将重要的数据存放到精锐 5 中,其工作原理如图所示。由于应用软件的一部分被移植到了加密锁硬件内部, 脱离加密锁将使软件功能变得不完整,从而使破解被代码移植技术保护的软件成为“无法完成的任务” 。可以说,代码移植是当前最高强度保护方案的技术基础,只有使用代码移植才能真正保证软件的安全。

运行环境信息

移植到精锐5内部的代码运行在独立的安全环境中,如同一台完整的计算机一样,主要运行环境信息如下:

  1. ARM SC300处理器, 运算能力50MIPS
  2. ARM Thumb指令集,机器字长32位,字节顺序little­endian
  3. 多达12K 随机存储器(RAM),其中
    1. 8192字节普通内存,用于存储变量、用户堆和栈;
    2. 1758字节通信缓冲区,用于存储输入/输出数据
    3. 1024字节共享内存,用于在程序间共享数据
    4. 1316字节由加载器使用,存储程序运行期信息
  4.  多达512K的只读存储器空间用于存储代码和常量
  5.  SES系统调用接口
    1. 数据输入输出
    2. 本地文件系统
    3. 通用加解密算法,国密算法
    4. 设备信息

静态代码和动态代码

精锐5 代码移植可分为静态代码移植和动态代码移植两种。

相同点

  1. 都是锁内可执行程序(*.evx),都只能在锁内执行
  2. 都是需要通过开发锁签发才能下载到锁内
  3. 都属于自定义算法程序

不同点

  1. 静态代码通过签发文件的方式签发,加密锁初始化时下载到锁内;动态代码通过独立的接口签发,执行前下载到锁内。
  2. 静态代码一直存储在锁内,执行时只需传入执行数据即可;动态代码是在锁外存储的,每次执行时都需要把代码下载到锁内再执行,执行过后代码不在锁内保存
  3. 静态代码大小受锁内剩余空间限制;动态代码大小不得超过2k。
  4. 静态代码由于执行时不存在下载过程,因此执行效率比动态代码略高。

两种代码如何选择

  1. 当锁内代码逻辑相对固定,不会频繁变化时,建议使用静态代码。
  2. 当锁内代码逻辑经常变化,而且软件可以经常链接互联网,建议使用动态代码,这样可以在服务端实时签发动态代码,软件下载后在锁内运行即可。
  3. 当锁内代码较大时(编译后的evx超过2kb),只能使用静态代码。

更多操作

开发手册请参考 附录:附件 《精锐5 硬件程序开发指南》。

锁内时间

简介

任何硬件加密锁,都需要一个稳定的时钟来保证软件许可对时间限制的准确性判断。目前常用的时钟处理方式有两种,一种叫虚拟时钟,一种叫硬件时钟。

虚拟时钟

精锐5 用户锁区分普通硬件锁和时钟硬件锁,精锐5普通用户锁搭载的时钟模块为虚拟时钟,锁内时间和本地时间有一定的关联程度。虚拟时钟可随本地时间小范围前调(调到过去时间,范围30min)和无限制后调(调到未来时间)。

虚拟时钟的设计原理:

  1. 通过命令将PC时间传入锁内。
  2. 锁上电后,比较第一次传入锁内的时间与FLASH中记录的时间,取较大的值作为虚拟时钟时间,在此基础上通过计数器不断增加虚拟时钟。
  3. 如果第一次传入锁内的时间大于FLASH中记录的时间,则更新FLASH中的时间,之后,每5分钟将虚拟时钟更新到FLASH中。
  4. 之后传入锁内的PC时间,如果PC时间大于虚拟时钟时间,则更新虚拟时钟到PC时间。
  5. 如果传入的PC时间小于虚拟时钟时间,则先检查是否满足小量回退条件,再检查是否满足大量回退条件,如果满足其中之一,则更新虚拟时钟到PC时间,否则不更新。
  6. 小量回退的条件为:虚拟时钟与PC时间的差值不超过当前PC时间与上次大量回退时PC时间的间隔的5%,且此间隔不小于10分钟。
  7. 大量回退的条件为:虚拟时钟与PC时间的差值不超过当前PC时间与上次大量回退时PC时间的间隔的0.3%,且不小于30秒,且此间隔不小于1小时。
  8. 以上时间参数在系统参数中,可配置。
  9. 大量回退的时间点记录在FLASH中,初始值为锁的生产时间。
  10. 小量回退的时间点记录在RAM中,初始值为锁上电后的虚拟时钟值。
  11. 时钟溢出后,时钟值停留在0xFFFFFFFF。

硬件时钟

精锐5 时钟锁也是一种用户锁,时钟锁是在精锐5普通用户锁的基础上,增加了硬件时钟模块,以可充电电池为支撑,可脱离计算机保证时钟的有效性。与普通用户锁最大的区别在于:时钟锁的时钟不受电脑时间影响,时钟的电量完全由可充电电池模块供应。

该电池模块用于为用户锁的时钟模块供电,保证加密锁在没有外部供电的情况下,时间继续能够运行大于240天。时钟锁可以用于对时钟要求特别敏感的软件使用,例如考试软件等。

时钟校准

硬件锁在初次使用或者长时间放置不用的情况下,难免会出现时钟偏差较大的情况,时钟偏差往往会影响软件的正常使用。精锐5 加密锁通过时钟校准的方式,将锁内时间校准到服务器时间,保证时钟有效性。

精锐5 时钟校准需要将硬件锁插入电脑,打开 Virbox 用户工具,查看硬件锁信息,通过时钟校准对锁进行校准,无论是精锐5 标准版用户锁,还说精锐5 时钟版用户锁,均使用此方法进行时钟校准。硬件锁的时钟校准工具必须依赖我公司部署与云平台上的时钟校准服务器,通过签发校准时钟信息包进行校准,而且要求PC机的时间和精确互联网时间相差不超过30min。


虚拟时钟和许可逻辑

精锐的虚拟时钟会根据 PC 时间和锁内时间自行调整,当插入PC 的时候,锁内根据 USB 供电单独计算一个时间,并且同步 PC 时间,且区分良性回滚和恶意回滚。

使用场景

锁内表现

备注/解决方案

PC 时钟比锁时钟间快,比如PC的时钟越走越快

锁内时间跟 PC 同步

检查 PC 时间并且互联网时间校准。

锁插在 PC 之后,PC 时间比锁走的慢 5% 以内

锁每过 10 分钟会跟 PC 同步一次

--

锁插在 PC 之后,PC 时间比锁走的慢 5% 以上

锁不会 PC 同步,按照锁的时钟继续走

检查 PC 时间并且互联网时间校准。

PC 时间由于使用微软的时钟校准,突然向未来跳,比如从当前 1056  跳到 1059

锁会跟着 PC 同步(跟锁有通讯的情况下)。

--

PC 时间由于使用微软操作系统的时钟校准触发的时间回滚,并且这种回滚间隔在一万秒以上,回滚量在间隔时间的千万之三之内,且不小于 30 秒。

锁内时间回滚到 PC 时间,其它任意条件不满足,锁内时间按照锁内计数器增长。

举个例子:当前 PC 时间 2017-05-18 110000

互联网时间 2017-05-18 105900PC 回滚之后,锁也会回滚到互联网时间。

两台 PC 时间不一样,

锁内时间按照其中最大时间值同步

 

锁插上 PCPC 时间比锁大

按照 PC 时间同步

 

锁插上 PCPC 时间比锁慢N天,并且总回滚量不超过千之三。

锁按照 PC 时间回滚

锁内会记录总回滚的 PC 时间点

锁插上 PCPC 时间比锁慢N天,并且总回滚量超过千分之三

锁按照自己最后一次正确时间累加时间

 

安全加密方案

简介

无论如何安全的加密锁,都不能缺少安全加密方案,精锐5 配合 Virbox Protector 和 Virbox 客户端使用。前者采用高安全性加密技术,代码混淆、碎片代码、虚拟化等均代表了全球领先的加密技术;后者屏蔽了一切底层接口,采用三层加密通信技术,防止数据监听。通过 Virbox Protector 的自动保护技术,在5分钟内即可对编译好的软件进行加密和授权处理。

Virbox Protector

即我们常说的加壳工具。拥有一键加壳功能,提供强大的代码虚拟化、高级混淆与智能压缩技术,保护您的程序免受逆向工程和非法修改,与您的程序链接在一起,使得您的程序无法离开保护代码正常运行。

Virbox Protector 可以对几乎所有开发语言进行加密保护,包括常见的 C/C++、Java、C#、VB、Delphi、VB.Net,以及Python、Lua、R、Unity3D等开发语言。

其主要技术特点有:

  1. 全球唯一的碎片代码加密技术,将关键代码从程序中自动提取,转换为 ARM 指令,在安全容器中执行。Virbox Protector 的这项技术,让多少黑客望而却步。
  2. 全球唯一的 ARM 指令混淆技术
  3. 全球首创的 Unity3D 加密方式,改变传统方式上将 Assembly-CSharp.dll 以资源的形式进行加密,而是动态修改 Assembly-CSharp.dll 中的 IL 指令,从本质上实现保护。
  4. 高级虚拟化,将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑。
  5. 代码混淆,高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。
  6. 智能压缩,应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止 .Net、PE 程序的直接反编译,并且有效的防止了加壳后的应用体积膨胀。

Virbox 客户端

Virbox 客户端推出的全新的软件保护模式,采用全新的许可管理理念,加强软件许可保护,主动监视并反击黑客破解。使用到的数据加密、反监听、反调试技术等方式均代表了当今最先进的技术水平。Virbox 客户端是 Virbox LM 产品的核心所在,是许可的安全桥梁,起到安全通信的作用,保证软件和精锐5 之间的相互认证和通信安全。

其技术特点有:

  1. 屏蔽了一切底层的技术细节,提高软件加密开发效率
  2. 三层通信验证,确保软件与许可之间的安全认证和交互
  3. 自带的反黑引擎,可以有效的对黑客行为进行检测和反击,更大程度的增加了软件的安全性,实现了软件防盗版“从被动挨打,到主动出击”的巨大转换。

精锐5 硬件技术规格

详细描述请参考 

增值服务

云签硬件锁

“互联网+”是一种新的社会形态,即充分发挥互联网在社会资源配置中的优化和集成作用,将互联网的创新成果深度融合于经济、社会各各领域之中。在传统软件行业,加密锁仍然是软件加密和授权管理的首要选择,而互联网的快速发展,使得社会上无论是工作还是生活节奏都大大加快。加密锁的管理出现了巨大的挑战。硬件锁经常会碰到如下问题:

管理成本高:加密锁一旦到最终用户手中,锁的状态是不可控的,如何给用户更新软件许可变得十分困难。

分销商问题:如果将签发好许可的加密锁下发给分销商售卖,很容易被分销商伪造售卖数据,导致大量财产损失。

控制锁签发,权限管理困难:目前常规的硬件锁签发流程,是通过一把控制锁进行签发,而控制锁由于其自身的重要程度,不能随意使用,很难做好权限分配。

操作流程繁琐:加密锁在最终用户手中如果需要升级的话,需要开发者签发好升级文件,然后将升级文件发送给用户,用户再手动将文件升级到到锁内,过程十分繁琐。

针对以上行业网问题,精锐5 结合 Virbox LM 云平台推出了“云平台签发硬件锁许可”服务,开发者可以通过 Virbox 开发者中心来管理所有加密锁,在线签发精锐5 许可,精锐5 只需要在联网的终端上即可自动进行升级。此服务可以为开发者带来如下价值:

  1. 每一把加密锁数据均存储在云平台上,可以高效的对已发出的加密锁进行在线管理
  2. 随时查看许可状态,精准销售,提高投资回报率
  3. 分发给分销商的加密锁可以是初始状态的锁,最终用户拿到锁后再升级许可。有效解决分销商数据作假的问题

丢锁补锁

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

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

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

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

激光镌刻

一款精致的外设产品,如果能镌刻上自家产品的logo或者自家公司的名称,可以给自己的产品带来不少推广和应用亮点。精锐5 加密锁推出开发者自定义外壳激光镌刻服务,支持双面打码。如果您一次购买量超过 100 只加密锁,我们是免费提供自定义激光镌刻服务的。

典型解决方案

建筑行业解决方案

行业现状

1、工作环境相当严格,即要适应普通办公室使用软件又要适应在工地等无网环境下使用。采用传统方式则会出现以下问题:
  A 单一的软件保护方案无法做到面面俱到。
  B 工地等纯无网环境需要运行软件,依靠网络的保护方式无法满足,但使用硬件加密锁的保护方案相对增加了生产成本。
  C 如果添加两个软件保护方案则需要编写两个模块的代码, 增加了兼容性的风险以及维护成本。

2、除软件外可能还需要依赖特定的机械部分,产品的价格范围较大,在一些大型工程软件的商业化模式中需要支持时效性的租赁方式又需要支持一次性的收费模式。

3、大多工程计量软件支持插件化开发,这些插件想要实现商业化,则需要对其进行保护,全部由自己开发成本太高。

行业需求

  1. 授权方式的灵活性

    许可方式要覆盖普通办公室网络环境和工地等无网环境 ,可以支持线上线下,兼容不同的模块,同时不增加成本。

  2. 授权时间的可控性

    考虑软件交付的形式不同,需要支持一些长期的工程方案同时也需要支持时效性与最终产品授权的无缝切换。对于软件的许可有时间上的要求。

  3. 小插件或大软件都可单独保护

    保护工程计量软件中开发的插件化,插件中有的只有很少的重要代码,有的会有很多特殊的公式,但是这些公式基本可以抵上半个软件。简单的一个插件和正式发版的软件一样同样需要一整套的软件保护方案。

  4. 保护重要数据

    对于常见的许可文件或重要数据文件,传统的加密方式都是使用算法将数据加密保存到本地磁盘上。此时文件容易被替换,算法容易被反编译,无法做到黑盒式的保护。

精锐5  解决方案

保护方案灵活

深思软件保护一体化方案:依托深思体系自动的将网络授权与本地授权进行抽象,只需要动动鼠标即可实现网络/本地模式并行,同时兼容网络环境下使用以及纯离线的使用环境。即可以灵活控制成本,又提高了软件的可维护性。

 小插件或大软件都可单独保护

使用深思软件保护工具集,不需要编写任何代码即可对软件或各种工和软件插件保护,并实现网络授权与本地授权的无缝切换。对于程序或插件中的重要函数可以使用“碎片代码”功能将函数抽离出程序,放入深思的安全箱中运行,杜绝算法的抄袭现象。

保护重要数据

对于一些特别重要的数据可以使用加密锁的数据区存储(分为 ROM/RAM/PUB 三个区),ROM 和 RAM 区的数据只有在许可有效并且在程序正确登录许可后才可访问。而对于一些体量较大的文件也可以使用许可加密的方式进行保护,使用特定许可对文件加密。有效提高数据被破解的成本。

工业自动化行业解决方案

行业现状

自动化控制是相对人工控制概念而言的,指的是在没人参与的情况下,利用控制装置使被控对象或过程自动地按预定规律运行。类似于激光设备、检测设备、X光设备、贴片设备和自动化插件设备等,都属于自动化控制领域,而在自动化控制领域中,软件的销售模式多数为分期付款形式,难于回收设备和软件的尾款,如果此项工作全部由软件开发者去做,那将会很大程度上增加成本。 除软件及设备的分期付款业务需求外,软件源码保护,也是自动控制领域比较关心的问题,如果将未经保护的软件发版,那么在当前环境下,软件会直接被破解或直接抄板。

软件形态

  1. 开发语言:C/C++

  2. 产品形态:软件、设备+软件

  3. 软件交付方式:分期模式

行业痛点

  1. 软件分期付款,尾款回收难

    可以对软件的使用进行时间限制,实现软件的尾款回收。

  2. 授权管理

    可以对签发的许可进行管理,或者提供对接ERP接口。

  3. 加密锁有硬件时钟

    需要绝对时间的时候可以采用加密锁的内置时钟,时间非常精准。

  4. 源码保护

    软件的源码保护,防止软件破解。

  5. 加密锁的工业化适应

    自动化控制多用于工业行业,对于加密锁的要求相对高,例如软件加密后运行速度要求较高,加密锁使用的高低温等。

精锐5 安全解决方案

软件分期

针对于软件分期,精锐5 提供两种方式,调用 API 接口或者直接通过可视化工具“开发者管理工具”进行对软件时间、次数、模块等设定。 开发者如果直接通过“开发者管理工具”操作,会极大的节省人力和时间成本,开发者可以专注于自身业务。

源码保护

针对于软件源码保护,精锐5 提供 Virbox Protector 加壳工具,对开发者编译出的可执行 exe 或者 dll 静态防护,开发者可以对单个函数选择的保护方式有碎片代码、代码加密、混淆和虚拟化,开发者可以最大程序的保护源码。

加密锁性能符合工业需求

  1. 电池寿命:5 年~10 年 时钟可联网校正
  2. 抗摔:时钟芯片内置硅振荡器,抗振、抗干扰
  3. 工作温度:-20~60 度
  4. 内置电池充电时间:约 80 个小时(指电池没电后需要充电的时间)
  5. 断电保持时间:大于 240 天(加密锁如果插在 PC 上,由 PC 一边供电一边充电)

常见问题

首次使用精锐5 要注意什么

首次购买精锐5,必须购买一套 开发套件,开发套件提供一把开发锁,一把用户锁,开发者只有拥有了开发锁才能对用户锁进行设置,然后才能进行开发测试。

精锐5 如何保证密钥的安全性

精锐5 内置常用商业密码学算法,同时支持国密算法,密钥直接在锁内生成,而且只有开发者的锁内程序可以使用,其他任何人没有权限访问。即便是锁外生成的密钥,通过远程升级文件的方式,也能保证密钥的安全性。

另外,精锐5 采用 CC EAL5+ 认证的智能卡安全芯片,可以有效防止锁内数据读取、剖片、加密锁复制等行为,密钥数据存在锁内绝对安全。

精锐5 如何实现软件订阅售卖模式

在设置锁内许可时,将许可按时间限制来签发,许可到期,软件不可用,用户续费,只需要重新给用户签发一条更新许可,软件即可以接着使用。

技术支持

了解产品

官方网址:https://lm.virbox.com/

官方商城:https://www.sensestore.com.cn/

技术支持

技术支持电话: 010-56730936

技术支持邮箱:tech_support@sense.com.cn

开发者

开发者中心:https://developer.lm.virbox.com

工具下载:https://lm.virbox.com/tools.html

资质认证

北京市新技术产品(服务)证书


其他资质认证,请参考 附录:附件

附录:产品赏析

精锐5 标准版

精锐5 工业版

精锐5 精灵版

附录:精锐5 标准版硬件规格参数

类型项目参数






基本规格





核心芯片

国际顶级智能卡芯片(ARM SC300 处理器)

执行速度

50DMIPS

通讯速度

300KB/s

用户RAM

12KB

安全存储空间

标准版:256kb;旗舰版:512kb

授权(许可)数量

旗舰版可存储 6000 个许可

可擦写次数

1650万次

数据存储年限

10年(室温25℃)

接口标准

USB2.0全速设备

外壳材质

PC(聚碳酸酯)



安全规格




内置安全算法

RSA1024/RSA2048

ECC192/ECC256/ECC384

AES128/AES192/AES256

DES/TDES

SHA1/SHA256

SM2/SM3/SM4

安全等级

CC EAL5+


电气指标


最大功耗

110mw

工作电压

4.5V~5.5V

工作温度

-25℃~85℃

存储温度

-40℃~125℃

平台支持

开发语言

C/C++、C#、Delphi、Java、VB、VB.Net、Python等

操作系统

Windows

Linux(x86、ARM)

Mac

附录:精锐5 时钟版硬件规格参数

类型项目参数






基本规格





核心芯片

国际顶级智能卡芯片(ARM SC300 处理器)

执行速度

50DMIPS

通讯速度

300KB/s

用户RAM

12KB

安全存储空间

标准版:256kb;旗舰版:512kb

授权(许可)数量

旗舰版可存储 6000 个许可

可擦写次数

1650万次

数据存储年限

10年(室温25℃)

接口标准

USB2.0全速设备

外壳材质

PC(聚碳酸酯)



安全规格




内置安全算法

RSA1024/RSA2048

ECC192/ECC256/ECC384

AES128/AES192/AES256

DES/TDES

SHA-1/SHA-256

SM2/SM3/SM4

安全等级

CC EAL5+


电气指标


最大功耗

100mw

工作电压

4.5V~5.5V

工作温度

-25℃~85℃

存储温度

-40℃~125℃

平台支持


开发语言

C/C++、C#、Delphi、Java、VB、VB.Net、Python等

操作系统

Windows 

Linux(x86、ARM)

Mac

时钟规格时间精度±0.432秒/天(最大值,在-45°C~85°C区间保证)
内置电池充电时间约80小时
断电保持时间大于240天
电池寿命5年

附录:附件