CN104462882A - 软件保护方法、硬件加密设备以及包括其的软件保护*** - Google Patents

软件保护方法、硬件加密设备以及包括其的软件保护*** Download PDF

Info

Publication number
CN104462882A
CN104462882A CN201410795919.4A CN201410795919A CN104462882A CN 104462882 A CN104462882 A CN 104462882A CN 201410795919 A CN201410795919 A CN 201410795919A CN 104462882 A CN104462882 A CN 104462882A
Authority
CN
China
Prior art keywords
software
code segment
hardware encipher
equipment
encipher equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410795919.4A
Other languages
English (en)
Other versions
CN104462882B (zh
Inventor
孙吉平
韩勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Senseshield Technology Co Ltd
Original Assignee
Beijing Senseshield Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Senseshield Technology Co Ltd filed Critical Beijing Senseshield Technology Co Ltd
Priority to CN201410795919.4A priority Critical patent/CN104462882B/zh
Publication of CN104462882A publication Critical patent/CN104462882A/zh
Application granted granted Critical
Publication of CN104462882B publication Critical patent/CN104462882B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

软件保护方法、硬件加密设备以及包括其的软件保护***
技术领域
本发明属于软件保护领域,具体涉及一种软件保护方法、硬件加密设备以及包括其的软件保护***。
背景技术
用于软件保护的硬件加密设备典型地包括硬件加密锁(或称加密狗)。在软件保护过程中,常常将软件的部分代码移植到具有执行或解释功能的硬件加密设备(如,硬件加密锁)中,由硬件加密设备执行该部分代码并向安装该软件的客户端返回执行结果,只有在客户端收到执行结果后才能继续进行软件的安装和/或使用,由此实现对软件与数据的保护,防止知识产权被滥用。
然而,传统的保护方式具有一定的弊端:1、硬件加密设备中的存储空间有限,不能存储足够多的算法或保护文件;2、在软件升级时,当在传统加密方式下需要将新的加密算法(受保护的代码段,即受保护的执行过程)升级到已经发布的设备中时,其方式是复杂的:首先需要专门制作升级文件;然后将升级文件植入到硬件加密设备中;最后硬件加密设备执行升级。这种升级方式给管理带来了不小的开销。
发明内容
本发明的目的在于提供一种软件保护方法、硬件加密设备以及包括该硬件加密设备的软件保护***,其能够解决上述问题之中的至少一个问题。
为了实现上述目的,本发明一方面提供了一种软件保护方法,包括:硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行所述代码段所需的参数;所述硬件加密设备利用其内部存储的密钥对其接收到的所述代码段进行解密;所述硬件加密设备根据所述参数执行所述代码段;以及所述硬件加密设备将执行结果返回给所述软件,所述代码段和所述参数仅存储在所述硬件加密设备的内存中。
优选地,在执行完所述代码段之后,所述硬件加密设备清除本次执行所占用的内存空间。
优选地,利用对称加密算法或非对称加密算法对所述软件的受保护代码段进行加密。
本发明另一方面提供一种硬件加密设备,所述硬件加密设备设置有数据传输接口和内存,所述数据传输接口接收来自终端设备的通过编译生成的且经加密的软件的受保护代码段以及执行所述代码段所需的参数并且该代码段和参数仅存储在所述内存中,所述硬件加密设备在执行该代码段后将执行结果返回给所述软件;所述硬件加密设备还包括:存储模块,其存储对所述代码段进行解密的密钥;以及执行模块,其配置为利用所述密钥对接收到的所述代码段进行解密并执行解密后的代码段以生成执行结果。
优选地,所述执行模块还配置为在执行完所述代码段之后,清除本次执行所占用的内存空间。
优选地,所述硬件加密设备是加密锁。
本发明再一个方面还提供一种软件保护***,包括上述的硬件加密设备和终端设备。
优选地,所述终端设备是装载有所述软件的客户端,其配置为通过网络连接从服务器获取通过编译生成的并且经加密的所述软件的受保护代码段。
优选地,所述终端设备是装载有所述软件的客户端,其配置为通过输入装置或数据传输接口获取外部存储设备中存储的通过编译生成的并且经加密的所述软件的受保护代码段。
优选地,所述输入装置包括光驱;所述数据传输接口包括USB接口、红外数据接口;所述外部存储设备包括光盘、U盘或移动硬盘。
根据本发明提供的方案可知,通过将软件的受保护代码段及参数传输到硬件加密设备中,硬件加密设备执行代码段,并将执行结果返回给软件,使得装载在终端设备上的软件无论升级与否,都不会对硬件加密设备产生影响,省去了传统方式下专门对硬件加密设备制作升级文件以及随后的植入步骤和操作升级步骤,提升了用户体验度;并且,代码段和参数仅存储在硬件加密设备的内存中,节省了存储空间,降低了其制造成本。
附图说明
图1为本发明实施例的软件保护方法的流程示意图;
图2为本发明实施例的硬件加密设备的结构示意图。
具体实施方式
为使本领域技术人员更好地理解本发明,下面参照附图对本发明的实施例进行详细说明。
本发明实施例提供一种软件保护方法,包括:硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行代码段所需的参数;硬件加密设备利用其内部存储的密钥对其接收到的代码段进行解密;硬件加密设备根据参数执行代码段;以及硬件加密设备将执行结果返回给软件,其中,代码段和参数仅存储在硬件加密设备的内存中。
根据本实施例,通过将软件的受保护代码段及参数传输到硬件加密设备中,代码段和参数仅存储在硬件加密设备的内存(RAM)中,硬件加密设备执行代码段后即返回执行结果,使得无需在该硬件加密设备中进行升级,节省了管理上的开销;并且,硬件加密设备的存储空间可以设置得更小,降低了其制造成本。
在本发明一优选实施例中,硬件加密设备是加密锁,终端设备是装载有软件的客户端,通过例如USB接口等数据接口与加密锁建立数据连接。
客户端可以通过网络连接从服务器获取已经加密的代码段。或者,客户端也可以通过输入装置(例如,光驱)或数据传输接口(例如,USB接口、红外数据接口等)从外部存储设备(例如,光盘、U盘或移动硬盘等)中获取加密后的代码段。
下面,参照图2,将描述本发明实施例的硬件加密设备10的结构。本实施例的硬件加密设备10设置有数据传输接口101和内存(RAM)104,数据传输接口101接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行代码段所需的参数并且该代码段和参数仅存储在RAM 104中,硬件加密设备10在执行该代码段后将执行结果返回给软件;硬件加密设备10还包括:存储模块103,其存储对该经加密的代码段进行解密的密钥;以及执行模块102,其配置为利用密钥对接收到的代码段进行解密并执行解密后的代码段以生成执行结果。
根据本实施例,由于代码段和参数仅存储在RAM中,供执行模块102执行并返回执行结果,因此无论软件升级多少次,都不必增大硬件加密设备的内部存储空间(非易失性存储单元),从而降低了硬件加密设备的成本;此外,软件升级不会对硬件加密设备带来繁琐的制作并植入升级文件、操作升级等步骤,增强了使用的便利性。
在一优选实施例中,执行模块还配置为在执行完代码段之后,清除本次执行所占用的内存空间,以备下次使用。
本发明另一实施例提供了一种软件保护***,包括本发明的硬件加密设备和终端设备。在一优选实施例中,硬件加密设备是加密锁;终端设备是装载有软件的客户端,其配置为通过网络连接获取服务器发布的软件以及通过编译生成的并且经加密的软件的受保护代码段。
根据本发明实施例的软件保护***,对于软件升级非常便利。具体而言,客户端通过网络连接获取服务器发布的新版本软件(或者软件升级包也可)以及通过编译生成的并且经加密的受保护代码段(即,受保护的执行过程,该执行过程可以是二进制文件),在客户端安装该新版本软件,当客户端需要使用到软件的某些受保护功能时,其将经加密的相应的受保护代码段传输给与之建立了数据连接的硬件加密设备,接收硬件加密设备返回的执行结果,客户端软件只有接收到来自硬件加密设备的执行结果,才能实现软件的相应的受保护功能。
通过上述描述,可以明确得知,本发明的软件保护***,对于软件升级非常便利,无需制作升级文件、将升级文件植入加密设备,以及加密设备操作执行升级。
在上述各实施例中,可以使用动态代码执行技术来实现本发明。具体而言,客户端(安装有受保护的软件)将锁或者设备作为代码、文件、输入的执行引擎(例如java有自己的编译器和执行环境,这里是将锁或设备作为执行引擎),动态代码执行技术通过编译器或开发环境(现有的就可以,比如keil,keil中集成了编译器)编译生成受保护代码段(可能是二进制文件),引擎接收到输入后完成相应运算逻辑处理过程,最后将输出结果返回给客户端。而客户端的代码、文件及输入在产品发布后完全不受引擎的限制,可以随时修改升级,达到了动态解释的目的。
本发明不局限于上述特定实施例,在不背离本发明精神及其实质情况下,熟悉本领域的技术人员可根据本发明作出各种相应改变和变形,但这些相应改变和变形都应属于本发明所附权利要求的保护范围之内。

Claims (10)

1.一种软件保护方法,包括:
硬件加密设备接收来自终端设备的通过编译生成的并经加密的软件的受保护代码段以及执行所述代码段所需的参数;
所述硬件加密设备利用其内部存储的密钥对其接收到的所述代码段进行解密;
所述硬件加密设备根据所述参数执行所述代码段;以及
所述硬件加密设备将执行结果返回给所述软件,
其中,所述代码段和所述参数仅存储在所述硬件加密设备的内存中。
2.如权利要求1所述的方法,还包括:
在执行完所述代码段之后,所述硬件加密设备清除本次执行所占用的内存空间。
3.如权利要求1或2所述的方法,其中利用对称加密算法或非对称加密算法对所述软件的受保护代码段进行加密。
4.一种硬件加密设备,所述硬件加密设备设置有数据传输接口和内存,所述数据传输接口接收来自终端设备的通过编译生成的且经加密的软件的受保护代码段以及执行所述代码段所需的参数并且该代码段和参数仅存储在所述内存中,所述硬件加密设备在执行该代码段后将执行结果返回给所述软件;
所述硬件加密设备还包括:
存储模块,其存储对所述代码段进行解密的密钥;以及
执行模块,其配置为利用所述密钥对接收到的所述代码段进行解密并执行解密后的代码段以生成执行结果。
5.如权利要求4所述的硬件加密设备,其中所述执行模块还配置为在执行完所述代码段之后,清除本次执行所占用的内存空间。
6.如权利要求4或5所述的硬件加密设备,所述硬件加密设备是加密锁。
7.一种软件保护***,包括如权利要求4至6中任一项中所述的硬件加密设备和终端设备。
8.如权利要求7所述的软件保护***,其中所述终端设备是装载有所述软件的客户端,其配置为通过网络连接从服务器获取通过编译生成的并且经加密的所述软件的受保护代码段。
9.如权利要求7所述的软件保护***,其中所述终端设备是装载有所述软件的客户端,其配置为通过输入装置或数据传输接口获取外部存储设备中存储的通过编译生成的并且经加密的所述软件的受保护代码段。
10.如权利要求9所述的软件保护***,其中:
所述输入装置包括光驱;所述数据传输接口包括USB接口、红外数据接口;所述外部存储设备包括光盘、U盘或移动硬盘。
CN201410795919.4A 2014-12-18 2014-12-18 软件保护方法、硬件加密设备以及包括其的软件保护*** Active CN104462882B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410795919.4A CN104462882B (zh) 2014-12-18 2014-12-18 软件保护方法、硬件加密设备以及包括其的软件保护***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410795919.4A CN104462882B (zh) 2014-12-18 2014-12-18 软件保护方法、硬件加密设备以及包括其的软件保护***

Publications (2)

Publication Number Publication Date
CN104462882A true CN104462882A (zh) 2015-03-25
CN104462882B CN104462882B (zh) 2018-07-06

Family

ID=52908909

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410795919.4A Active CN104462882B (zh) 2014-12-18 2014-12-18 软件保护方法、硬件加密设备以及包括其的软件保护***

Country Status (1)

Country Link
CN (1) CN104462882B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106936588A (zh) * 2017-04-13 2017-07-07 北京深思数盾科技股份有限公司 一种硬件控制锁的托管方法、装置及***
CN106971096A (zh) * 2017-04-06 2017-07-21 北京深思数盾科技股份有限公司 软件保护方法和***
CN107169316A (zh) * 2017-04-13 2017-09-15 北京深思数盾科技股份有限公司 一种托管硬件控制锁的方法及***
CN107818265A (zh) * 2017-10-23 2018-03-20 中国银行股份有限公司 加密方法、装置和***
CN108234384A (zh) * 2016-12-09 2018-06-29 杭州海康威视***技术有限公司 一种应用软件的授权方法及装置
CN109299945A (zh) * 2017-07-24 2019-02-01 上海荆虹电子科技有限公司 一种基于生物识别算法的身份验证的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038611A (zh) * 2006-03-14 2007-09-19 北京深思洛克数据保护中心 一种软件保护的方法
FR2961328A1 (fr) * 2010-06-15 2011-12-16 Oberthur Technologies Dispositif et procede de securisation de l'acces a une fonction
CN102521541A (zh) * 2011-12-09 2012-06-27 台达电子企业管理(上海)有限公司 加密狗装置及其软件保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101038611A (zh) * 2006-03-14 2007-09-19 北京深思洛克数据保护中心 一种软件保护的方法
FR2961328A1 (fr) * 2010-06-15 2011-12-16 Oberthur Technologies Dispositif et procede de securisation de l'acces a une fonction
CN102521541A (zh) * 2011-12-09 2012-06-27 台达电子企业管理(上海)有限公司 加密狗装置及其软件保护方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234384A (zh) * 2016-12-09 2018-06-29 杭州海康威视***技术有限公司 一种应用软件的授权方法及装置
CN108234384B (zh) * 2016-12-09 2020-12-25 杭州海康威视***技术有限公司 一种应用软件的授权方法及装置
CN106971096A (zh) * 2017-04-06 2017-07-21 北京深思数盾科技股份有限公司 软件保护方法和***
CN106971096B (zh) * 2017-04-06 2018-12-18 北京深思数盾科技股份有限公司 软件保护方法和***
CN106936588A (zh) * 2017-04-13 2017-07-07 北京深思数盾科技股份有限公司 一种硬件控制锁的托管方法、装置及***
CN107169316A (zh) * 2017-04-13 2017-09-15 北京深思数盾科技股份有限公司 一种托管硬件控制锁的方法及***
CN106936588B (zh) * 2017-04-13 2020-04-24 北京深思数盾科技股份有限公司 一种硬件控制锁的托管方法、装置及***
CN109299945A (zh) * 2017-07-24 2019-02-01 上海荆虹电子科技有限公司 一种基于生物识别算法的身份验证的方法及装置
CN109299945B (zh) * 2017-07-24 2020-10-09 深圳荆虹科技有限公司 一种基于生物识别算法的身份验证的方法及装置
CN107818265A (zh) * 2017-10-23 2018-03-20 中国银行股份有限公司 加密方法、装置和***
CN107818265B (zh) * 2017-10-23 2020-04-24 中国银行股份有限公司 加密方法、装置和***

Also Published As

Publication number Publication date
CN104462882B (zh) 2018-07-06

Similar Documents

Publication Publication Date Title
CN104462882A (zh) 软件保护方法、硬件加密设备以及包括其的软件保护***
US10091000B2 (en) Techniques for distributing secret shares
CN104012030B (zh) 用于保护对称加密密钥的***及方法
CN107078904B (zh) 混合密码密钥导出
KR101712784B1 (ko) 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법
EP3732818B1 (fr) Procédé et système d'activation cryptographique d'une pluralité d'équipements
CN102156843B (zh) 数据加密方法与***以及数据解密方法
US9875367B2 (en) Customer load of field programmable gate arrays
US7970133B2 (en) System and method for secure and flexible key schedule generation
CN105528239A (zh) 基于可信根服务器的虚拟可信平台模块的密钥管理方法
CN103853943A (zh) 程序保护方法及装置
CN104506504A (zh) 一种无卡终端涉密信息的安全机制及安全装置
CN104200137A (zh) 一种保护java程序自身安全的方法
CN105574441A (zh) 一种嵌入式固件保护的方法和装置
CN102662871B (zh) 一种基于可信密码模块的虚拟磁盘完整性保护***及方法
Lee et al. Security issues on the CNG cryptography library (Cryptography API: Next Generation)
CN102769525A (zh) 一种tcm的用户密钥备份与恢复方法
CN113542303B (zh) 秘钥在非可信环境的软件导入***及方法
CN107040370B (zh) 一种用于产生实施模幂运算的代码的装置
CN104392153A (zh) 一种软件保护方法及***
CN103902921A (zh) 文件加密方法及***
Malipatlolla et al. A novel method for secure intellectual property deployment in embedded systems
WO2017220389A1 (en) Signed scripts for secure element cryptographic functions customization
CN111506910B (zh) 数据库加密的方法及装置
US20240080192A1 (en) Data processing method, apparatus and system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
CB02 Change of applicant information

Address after: 100193 Beijing, Haidian District, East West Road, No. 10, East Hospital, building No. 5, floor 5, layer 510

Applicant after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

Address before: 100872 room 1706, building 59, Zhongguancun street, Haidian District, Beijing

Applicant before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee after: Beijing Shendun Technology Co.,Ltd.

Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing

Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.