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

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

Info

Publication number
CN104462882B
CN104462882B CN201410795919.4A CN201410795919A CN104462882B CN 104462882 B CN104462882 B CN 104462882B CN 201410795919 A CN201410795919 A CN 201410795919A CN 104462882 B CN104462882 B CN 104462882B
Authority
CN
China
Prior art keywords
software
encryption device
hardware encryption
code segment
code
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.)
Active
Application number
CN201410795919.4A
Other languages
English (en)
Other versions
CN104462882A (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 CN104462882A (zh) 2015-03-25
CN104462882B true 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)

Families Citing this family (6)

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

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 台达电子企业管理(上海)有限公司 加密狗装置及其软件保护方法

Also Published As

Publication number Publication date
CN104462882A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN104462882B (zh) 软件保护方法、硬件加密设备以及包括其的软件保护系统
US12001525B1 (en) Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
US11361083B1 (en) Method and apparatus for securing embedded device firmware
US20110276805A1 (en) System and Method for Third Party Creation of Applications for Mobile Appliances
EP3732818B1 (fr) Procédé et système d'activation cryptographique d'une pluralité d'équipements
US9875367B2 (en) Customer load of field programmable gate arrays
CN105612527A (zh) 为基于通用中间语言的程序提供安全性的方法
CN104463002A (zh) 一种加固apk的方法和装置以及apk加固客户端和服务器
US8745407B2 (en) Virtual machine or hardware processor for IC-card portable electronic devices
Agosta et al. The MEET approach: Securing cryptographic embedded software against side channel attacks
US20200356642A1 (en) Enabling an encrypted software module in a container file
CN109547201A (zh) 一种根密钥的加密方法、计算机可读存储介质及终端设备
CN112966227A (zh) 代码加密解密方法和装置、存储介质
US20200019697A1 (en) Protecting Artificial Intelligence Models Using Virtual Secure Mode
CN104392154A (zh) 一种加密方法
GB2576755A (en) System and method for providing protected data storage in a data memory
CN112256275A (zh) 代码混淆方法、装置、电子设备及介质
US8707053B2 (en) Performing boolean logic operations using arithmetic operations by code obfuscation
CN105574441A (zh) 一种嵌入式固件保护的方法和装置
CN114124364A (zh) 密钥安全处理方法、装置、设备及计算机可读存储介质
Lee et al. Security issues on the CNG cryptography library (Cryptography API: Next Generation)
CN105184119B (zh) 一种软件的安全保护方法
CN113626773B (zh) 一种基于中间语言的代码保护方法
CN104504310A (zh) 基于壳技术的软件保护方法和装置
CN109478212A (zh) 按需代码解密

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

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.

CP01 Change in the name or title of a patent holder