软件保护方法、硬件加密设备以及包括其的软件保护系统的制作方法

文档序号:6639444阅读:550来源:国知局
软件保护方法、硬件加密设备以及包括其的软件保护系统的制作方法
【专利摘要】本发明公开了一种软件保护方法、硬件加密设备以及包括该硬件加密设备的软件保护系统。软件保护方法包括:硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行所述代码段所需的参数;所述硬件加密设备利用其内部存储的密钥对其接收到的所述代码段进行解密;所述硬件加密设备根据所述参数执行所述代码段;以及所述硬件加密设备将执行结果返回给所述软件,其中,所述代码段和所述参数仅存储在所述硬件加密设备的内存中。本发明能够降低硬件加密设备的制造成本,并且使得软件升级更加便利。
【专利说明】软件保护方法、硬件加密设备以及包括其的软件保护系统

【技术领域】
[0001]本发明属于软件保护领域,具体涉及一种软件保护方法、硬件加密设备以及包括其的软件保护系统。

【背景技术】
[0002]用于软件保护的硬件加密设备典型地包括硬件加密锁(或称加密狗)。在软件保护过程中,常常将软件的部分代码移植到具有执行或解释功能的硬件加密设备(如,硬件加密锁)中,由硬件加密设备执行该部分代码并向安装该软件的客户端返回执行结果,只有在客户端收到执行结果后才能继续进行软件的安装和/或使用,由此实现对软件与数据的保护,防止知识产权被滥用。
[0003]然而,传统的保护方式具有一定的弊端:1、硬件加密设备中的存储空间有限,不能存储足够多的算法或保护文件;2、在软件升级时,当在传统加密方式下需要将新的加密算法(受保护的代码段,即受保护的执行过程)升级到已经发布的设备中时,其方式是复杂的:首先需要专门制作升级文件;然后将升级文件植入到硬件加密设备中;最后硬件加密设备执行升级。这种升级方式给管理带来了不小的开销。


【发明内容】

[0004]本发明的目的在于提供一种软件保护方法、硬件加密设备以及包括该硬件加密设备的软件保护系统,其能够解决上述问题之中的至少一个问题。
[0005]为了实现上述目的,本发明一方面提供了一种软件保护方法,包括:硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行所述代码段所需的参数;所述硬件加密设备利用其内部存储的密钥对其接收到的所述代码段进行解密;所述硬件加密设备根据所述参数执行所述代码段;以及所述硬件加密设备将执行结果返回给所述软件,所述代码段和所述参数仅存储在所述硬件加密设备的内存中。
[0006]优选地,在执行完所述代码段之后,所述硬件加密设备清除本次执行所占用的内存空间。
[0007]优选地,利用对称加密算法或非对称加密算法对所述软件的受保护代码段进行加tM
I_L| O
[0008]本发明另一方面提供一种硬件加密设备,所述硬件加密设备设置有数据传输接口和内存,所述数据传输接口接收来自终端设备的通过编译生成的且经加密的软件的受保护代码段以及执行所述代码段所需的参数并且该代码段和参数仅存储在所述内存中,所述硬件加密设备在执行该代码段后将执行结果返回给所述软件;所述硬件加密设备还包括:存储模块,其存储对所述代码段进行解密的密钥;以及执行模块,其配置为利用所述密钥对接收到的所述代码段进行解密并执行解密后的代码段以生成执行结果。
[0009]优选地,所述执行模块还配置为在执行完所述代码段之后,清除本次执行所占用的内存空间。
[0010]优选地,所述硬件加密设备是加密锁。
[0011]本发明再一个方面还提供一种软件保护系统,包括上述的硬件加密设备和终端设备。
[0012]优选地,所述终端设备是装载有所述软件的客户端,其配置为通过网络连接从服务器获取通过编译生成的并且经加密的所述软件的受保护代码段。
[0013]优选地,所述终端设备是装载有所述软件的客户端,其配置为通过输入装置或数据传输接口获取外部存储设备中存储的通过编译生成的并且经加密的所述软件的受保护代码段。
[0014]优选地,所述输入装置包括光驱;所述数据传输接口包括USB接口、红外数据接口 ;所述外部存储设备包括光盘、U盘或移动硬盘。
[0015]根据本发明提供的方案可知,通过将软件的受保护代码段及参数传输到硬件加密设备中,硬件加密设备执行代码段,并将执行结果返回给软件,使得装载在终端设备上的软件无论升级与否,都不会对硬件加密设备产生影响,省去了传统方式下专门对硬件加密设备制作升级文件以及随后的植入步骤和操作升级步骤,提升了用户体验度;并且,代码段和参数仅存储在硬件加密设备的内存中,节省了存储空间,降低了其制造成本。

【专利附图】

【附图说明】
[0016]图1为本发明实施例的软件保护方法的流程示意图;
[0017]图2为本发明实施例的硬件加密设备的结构示意图。

【具体实施方式】
[0018]为使本领域技术人员更好地理解本发明,下面参照附图对本发明的实施例进行详细说明。
[0019]本发明实施例提供一种软件保护方法,包括:硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行代码段所需的参数;硬件加密设备利用其内部存储的密钥对其接收到的代码段进行解密;硬件加密设备根据参数执行代码段;以及硬件加密设备将执行结果返回给软件,其中,代码段和参数仅存储在硬件加密设备的内存中。
[0020]根据本实施例,通过将软件的受保护代码段及参数传输到硬件加密设备中,代码段和参数仅存储在硬件加密设备的内存(RAM)中,硬件加密设备执行代码段后即返回执行结果,使得无需在该硬件加密设备中进行升级,节省了管理上的开销;并且,硬件加密设备的存储空间可以设置得更小,降低了其制造成本。
[0021]在本发明一优选实施例中,硬件加密设备是加密锁,终端设备是装载有软件的客户端,通过例如USB接口等数据接口与加密锁建立数据连接。
[0022]客户端可以通过网络连接从服务器获取已经加密的代码段。或者,客户端也可以通过输入装置(例如,光驱)或数据传输接口(例如,USB接口、红外数据接口等)从外部存储设备(例如,光盘、U盘或移动硬盘等)中获取加密后的代码段。
[0023]下面,参照图2,将描述本发明实施例的硬件加密设备10的结构。本实施例的硬件加密设备10设置有数据传输接口 101和内存(RAM) 104,数据传输接口 101接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行代码段所需的参数并且该代码段和参数仅存储在RAM 104中,硬件加密设备10在执行该代码段后将执行结果返回给软件;硬件加密设备10还包括:存储模块103,其存储对该经加密的代码段进行解密的密钥;以及执行模块102,其配置为利用密钥对接收到的代码段进行解密并执行解密后的代码段以生成执行结果。
[0024]根据本实施例,由于代码段和参数仅存储在RAM中,供执行模块102执行并返回执行结果,因此无论软件升级多少次,都不必增大硬件加密设备的内部存储空间(非易失性存储单元),从而降低了硬件加密设备的成本;此外,软件升级不会对硬件加密设备带来繁琐的制作并植入升级文件、操作升级等步骤,增强了使用的便利性。
[0025]在一优选实施例中,执行模块还配置为在执行完代码段之后,清除本次执行所占用的内存空间,以备下次使用。
[0026]本发明另一实施例提供了一种软件保护系统,包括本发明的硬件加密设备和终端设备。在一优选实施例中,硬件加密设备是加密锁;终端设备是装载有软件的客户端,其配置为通过网络连接获取服务器发布的软件以及通过编译生成的并且经加密的软件的受保护代码段。
[0027]根据本发明实施例的软件保护系统,对于软件升级非常便利。具体而言,客户端通过网络连接获取服务器发布的新版本软件(或者软件升级包也可)以及通过编译生成的并且经加密的受保护代码段(即,受保护的执行过程,该执行过程可以是二进制文件),在客户端安装该新版本软件,当客户端需要使用到软件的某些受保护功能时,其将经加密的相应的受保护代码段传输给与之建立了数据连接的硬件加密设备,接收硬件加密设备返回的执行结果,客户端软件只有接收到来自硬件加密设备的执行结果,才能实现软件的相应的受保护功能。
[0028]通过上述描述,可以明确得知,本发明的软件保护系统,对于软件升级非常便利,无需制作升级文件、将升级文件植入加密设备,以及加密设备操作执行升级。
[0029]在上述各实施例中,可以使用动态代码执行技术来实现本发明。具体而言,客户端(安装有受保护的软件)将锁或者设备作为代码、文件、输入的执行引擎(例如java有自己的编译器和执行环境,这里是将锁或设备作为执行引擎),动态代码执行技术通过编译器或开发环境(现有的就可以,比如keil,keil中集成了编译器)编译生成受保护代码段(可能是二进制文件),引擎接收到输入后完成相应运算逻辑处理过程,最后将输出结果返回给客户端。而客户端的代码、文件及输入在产品发布后完全不受引擎的限制,可以随时修改升级,达到了动态解释的目的。
[0030]本发明不局限于上述特定实施例,在不背离本发明精神及其实质情况下,熟悉本领域的技术人员可根据本发明作出各种相应改变和变形,但这些相应改变和变形都应属于本发明所附权利要求的保护范围之内。
【权利要求】
1.一种软件保护方法,包括: 硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行所述代码段所需的参数; 所述硬件加密设备利用其内部存储的密钥对其接收到的所述代码段进行解密; 所述硬件加密设备根据所述参数执行所述代码段;以及 所述硬件加密设备将执行结果返回给所述软件, 其中,所述代码段和所述参数仅存储在所述硬件加密设备的内存中。
2.如权利要求1所述的方法,还包括: 在执行完所述代码段之后,所述硬件加密设备清除本次执行所占用的内存空间。
3.如权利要求1或2所述的方法,其中利用对称加密算法或非对称加密算法对所述软件的受保护代码段进行加密。
4.一种硬件加密设备,所述硬件加密设备设置有数据传输接口和内存,所述数据传输接口接收来自终端设备的通过编译生成的且经加密的软件的受保护代码段以及执行所述代码段所需的参数并且该代码段和参数仅存储在所述内存中,所述硬件加密设备在执行该代码段后将执行结果返回给所述软件; 所述硬件加密设备还包括: 存储模块,其存储对所述代码段进行解密的密钥;以及 执行模块,其配置为利用所述密钥对接收到的所述代码段进行解密并执行解密后的代码段以生成执行结果。
5.如权利要求4所述的硬件加密设备,其中所述执行模块还配置为在执行完所述代码段之后,清除本次执行所占用的内存空间。
6.如权利要求4或5所述的硬件加密设备,所述硬件加密设备是加密锁。
7.一种软件保护系统,包括如权利要求4至6中任一项中所述的硬件加密设备和终端设备。
8.如权利要求7所述的软件保护系统,其中所述终端设备是装载有所述软件的客户端,其配置为通过网络连接从服务器获取通过编译生成的并且经加密的所述软件的受保护代码段。
9.如权利要求7所述的软件保护系统,其中所述终端设备是装载有所述软件的客户端,其配置为通过输入装置或数据传输接口获取外部存储设备中存储的通过编译生成的并且经加密的所述软件的受保护代码段。
10.如权利要求9所述的软件保护系统,其中: 所述输入装置包括光驱;所述数据传输接口包括USB接口、红外数据接口 ;所述外部存储设备包括光盘、U盘或移动硬盘。
【文档编号】G06F21/34GK104462882SQ201410795919
【公开日】2015年3月25日 申请日期:2014年12月18日 优先权日:2014年12月18日
【发明者】孙吉平, 韩勇 申请人:北京深思数盾科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1