CN201029035Y - 一种执行保护软件代码的装置 - Google Patents

一种执行保护软件代码的装置 Download PDF

Info

Publication number
CN201029035Y
CN201029035Y CN 200620159658 CN200620159658U CN201029035Y CN 201029035 Y CN201029035 Y CN 201029035Y CN 200620159658 CN200620159658 CN 200620159658 CN 200620159658 U CN200620159658 U CN 200620159658U CN 201029035 Y CN201029035 Y CN 201029035Y
Authority
CN
China
Prior art keywords
module
software
software code
decryption
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.)
Expired - Lifetime
Application number
CN 200620159658
Other languages
English (en)
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
SHENSILUOKE DATA PROTECTION CENTER BEIJING
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 SHENSILUOKE DATA PROTECTION CENTER BEIJING filed Critical SHENSILUOKE DATA PROTECTION CENTER BEIJING
Priority to CN 200620159658 priority Critical patent/CN201029035Y/zh
Application granted granted Critical
Publication of CN201029035Y publication Critical patent/CN201029035Y/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本实用新型公开了一种执行保护软件代码的装置,包括安全硬件设备和软件执行单元。本实用新型中,软件执行单元从外部获得保护软件代码后,并不立即执行保护软件代码,而是将该保护软件代码存储到安全硬件设备如安全芯片中,保护软件代码在安全硬件设备中解密并执行,之后再将执行结果返回软件执行单元。另外,本实用新型中的保护软件代码存储在独立的外部实体中,而不是存储在安全硬件设备如安全芯片中,解决了由于安全芯片内部的永久存储介质的存储容量小,远远不能满足保护软件代码的存储和运行要求的问题,也大大降低了对软件代码的保护的实现成本。

Description

一种执行保护软件代码的装置
技术领域
本实用新型涉及软件代码保密技术,尤指一种执行保护软件代码的装置。
背景技术
软件由软件代码组成的,软件代码凝聚了软件开发人员的智慧,特别是核心代码,一旦被恶意获取,将泄漏软件开发人员的智力成果,降低软件的价值。
当软件在软件执行单元如公知的操作系统中运行时,如果软件代码在软件中以明文的方式存在,非常容易通过静态反汇编以及动态调试等方法对软件代码进行分析,获取软件代码的执行逻辑或算法。为了有效地保护软件,通常会对软件中需要保护的软件代码如核心代码等进行加密等保护,本文称这种经过加密等保护手段处理的软件代码为保护软件代码。
目前,通常将需要保护的代码存储到安全硬件设备如安全芯片中,以达到对软件代码的保护。在运行保护软件代码时,安全硬件设备通过重新编译的方式将该保护软件代码编译成明文,并一次性全部写入安全硬件设备的永久存储介质中,如闪存(Flash)或可电擦除只读存储器(EEPROM)中。可以看出,由于保护代码在自身存储的安全硬件设备中运行,而不在公知操作系统上运行,实现了对软件代码的保护。
现有运行保护软件代码的方法,需要将大量的保护软件代码存放在安全硬件设备的永久存储介质中,这样才能由安全硬件设备的处理器对保护软件代码进行处理和计算。为了有效安全地运行保护软件代码,不仅要求安全硬件设备具备相当的运算处理能力,而且安全硬件设备本身必须是一种安全芯片。
目前,安全芯片内部的永久存储介质的存储容量都非常小,一般只有几十千字节大小,远远不能满足保护软件代码的存储和运行要求,而且安全芯片价格昂贵,严重影响了对软件代码的保护的实现。
发明内容
有鉴于此,本实用新型的主要目的在于提供一种执行保护软件代码的装置,能够有效安全地保证保护软件代码的运行。
为达到上述目的,本实用新型的技术方案具体是这样实现的:
一种执行保护软件代码的装置,该装置包括:安全硬件设备10和软件执行单元11;
所述安全硬件设备10,用于解密存储的保护软件代码,执行解密后的软件代码,并向软件执行单元11返回执行结果;
所述软件执行单元11,用于执行软件代码,并在执行保护软件代码时,从外部获取保护软件代码,并发送给安全硬件设备10。
所述安全硬件设备10包括硬件控制模块100、解密模块101和存储模块102,其中,
硬件控制模块100,接收来自所述软件执行单元11的解密通知,向解密模块101发送解密控制指令;接收来自解密模块101的解密完成通知,向所述软件执行单元11发送获取保护软件代码通知或获取执行结果通知,执行解密的软件代码并存储执行结果在存储单元102;
解密模块101,接收来自硬件控制模块100的解密控制指令,从存储模块102中读取保护软件代码,并进行解密后将解密后的软件代码存储在存储模块102中,向硬件控制模块100发送解密完成通知。
所述软件执行单元11包括软件控制模块110和软件执行模块111,其中,
软件控制模块110,接收来自软件执行模块111的执行保护软件代码通知,接收来自外部的保护软件代码,将接收到的保护软件代码存储到所述安全硬件设备10中;向安全硬件设备10发送解密通知;接收来自安全硬件设备10的获取保护软件代码通知或获取执行结果通知,将接收到的保护软件代码存储到安全硬件设备10或从安全硬件设备10中读取执行结果;将获得的执行结果发送给软件执行模块111;
软件执行模块111,用于执行软件代码,向软件控制模块110发送执行保护软件代码通知,接收来自软件控制模块110的执行结果。
所述安全硬件设备10还包括:验证模块103,接收来自硬件控制模块100的验证控制指令,对存储在存储模块102中的保护软件代码进行安全验证并在通过验证后,向硬件控制模块100发送验证完成通知;
所述硬件控制模块100,接收来自验证模块103的验证完成通知,向所述解密模块101发送解密控制指令;或者接收来自解密模块101的解密完成通知,向验证模块103发送验证控制指令,接收来自验证模块103的验证完成通知,向所述软件执行单元11发送获取保护软件代码通知或获取执行结果通知。
所述存储模块102为所述安全硬件设备10中的数据存储器RAM。
该装置还包括:软件代码处理单元20,包括编译模块200、加密模块201及代码存储模块203,其中,
编译模块200,接收需要保护的软件代码,对需要保护的软件代码进行编译,将编译后的软件代码发送给加密模块201;
加密模块201,接收来自编译模块200的编译后的软件代码,加密并存储加密后的保护软件代码在代码存储模块203。
所述软件代码处理单元20还包括:签名模块202,用于对需要保护的软件代码进行认证,生成签名或其它安全数据;所述签名模块202设置于加密模块201之后,或设置在加密模块201之前。
所述安全硬件设备为安全芯片。
由上述技术方案可见,本实用新型方案中,软件执行单元从外部获得保护软件代码后,并不立即执行保护软件代码,而是将该保护软件代码存储到安全硬件设备如安全芯片中,保护软件代码在安全硬件设备中解密并执行,之后再将执行结果返回软件执行单元。另外,本发明的处理中,保护软件代码存储在与软件执行单元所在实体不同的其它实体上,比如移动硬盘中,而不是存储在安全硬件设备如安全芯片中,解决了由于安全芯片内部的永久存储介质的存储容量小,远远不能满足保护软件代码的存储和运行要求的问题,也大大降低了对软件代码的保护的实现成本。
保护软件代码在加密时,参与加密计算的密钥与安全硬件设备一一对应,这样,一方面安全硬件设备自身采用具有高安全强度的安全芯片,确保了安全硬件设备内部的密钥的保密性;另一方面,由于只有配套的安全硬件设备可以在其内部对被加密的保护软件代码进行解密,从而保证了保护软件代码的安全性。
附图说明
图1是本发明软件代码运行单元实施例的组成结构示意图;
图2a是本发明软件代码处理单元实施例一的组成结构示意图;
图2b是本发明软件代码处理单元实施例二的组成结构示意图。
具体实施方式
为使本实用新型的目的、技术方案及优点更加清楚明白,以下参照附图并举较佳实施例,对本发明进一步详细说明。
本实用新型执行保护软件代码的工作原理为:当软件执行单元需要执行保护软件代码时,从外部获取保护软件代码并存储在安全硬件设备中;安全硬件设备解密并执行解密后的软件代码,同时存储执行结果;在执行完所有保护软件代码后,安全硬件设备将保护软件代码的执行结果返回给软件执行单元。
图1是本发明软件代码运行单元实施例的组成结构示意图,如图1所示,软件代码运行单元包括安全硬件设备10和软件执行单元11,其中,安全硬件设备10包括硬件控制模块100、解密模块101、存储模块102,还进一步包括验证模块103;软件执行单元11包括软件控制模块110和软件执行模块111。
安全硬件设备10,用于解密存储的保护软件代码,执行解密后的软件代码,并向软件执行单元11返回执行结果。其中,
硬件控制模块100,接收来自软件控制模块110的解密通知,向解密模块101发送解密控制指令;接收来自解密模块101的解密完成通知,向软件控制模块110发送获取保护软件代码通知或获取执行结果通知,执行解密的软件代码并存储执行结果在存储单元102;
解密模块101,接收来自硬件控制模块100的解密控制指令,从存储模块102中读取保护软件代码,并进行解密后将解密后的软件代码存储在存储模块102中,向硬件控制模块100发送解密完成通知;
存储模块102,存储来自软件控制模块110的保护软件代码,或来自解密模块101的解密后的软件代码,或来自硬件控制模块100的执行结果。存储模块102为安全硬件设备10中的数据存储器(RAM)。
进一步地,安全硬件设备10包括验证模块103,验证模块103置于解密模块101之前时,验证模块103接收来自硬件控制模块100的验证控制指令,对存储在存储模块102中的保护软件代码进行安全验证并在通过验证后,向硬件控制模块100发送验证完成通知;此时,硬件控制模块100,接收到来自验证模块103的验证完成通知后,向所述解密模块101发送解密控制指令。
若验证模块103置于解密模块之后,则硬件控制模块100接收到来自解密模块101的解密完成通知后,向验证模块103发送验证控制指令,并在接收到来自验证模块103的验证完成通知后,向所述软件执行单元11发送获取保护软件代码通知或获取执行结果通知。
软件执行单元11,用于执行软件代码,并在执行保护软件代码时,从外部获取保护软件代码,并发送给安全硬件设备10,其中,
软件控制模块110,接收来自软件执行模块111的执行保护软件代码通知,接收来自外部的保护软件代码,将将接收到的保护软件代码存储到安全硬件设备10的存储模块102中;向硬件控制模块100发送解密通知;接收来自硬件控制模块100的获取保护软件代码通知或获取执行结果通知,将接收到的保护软件代码存储到存储模块102或从存储模块102中读取执行结果;将读取的执行结果发送给软件执行模块111;
软件执行模块111,用于执行软件代码,向软件控制模块110发送执行保护软件代码通知,接收来自软件控制模块110的执行结果。
以上详细描述了本发明执行保护软件代码的方法及装置,从本发明方案可见,保护软件代码存储在独立的外部实体中,而不是存储在安全硬件设备如安全芯片中,解决了由于安全芯片内部的永久存储介质的存储容量小,远远不能满足保护软件代码的存储和运行要求的问题,也大大降低了对软件代码的保护的实现成本。
同时,保护软件代码在加密时,参与加密计算的密钥与安全硬件设备一一对应,这样,一方面安全硬件设备自身采用具有高安全强度的安全芯片,确保了安全硬件设备内部的密钥的保密性;另一方面,由于只有配套的安全硬件设备可以在其内部对被加密的保护软件代码进行解密,从而保证了保护软件代码的安全性。
本发明方法还进一步包括:对需要保护的软件代码进行加密和存储处理,图2a是本发明软件代码处理单元实施例一的组成结构示意图,如图2a所示,包括编译模块200、加密模块201、代码存储模块203,其中,
编译模块200,接收需要保护的软件代码,对需要保护的软件代码进行编译,可编译成安全硬件设备能够执行的指令格式,也可以编译成软件执行单元能够执行的指令格式;将编译后的软件代码发送给加密模块201;
加密模块201,接收来自编译模块200的编译后的软件代码,存储加密后的保护软件代码在代码存储模块203。加密模块201可以通过硬件或软件实现,具体实现方法很多,属于本领域技术人员公知技术,这里不再赘述。
软件代码处理单元20还进一步包括:签名模块202,用于对需要保护的软件代码进行认证,安全性认证可以采用多种方法,生成签名或其它安全数据。签名模块202可以置于加密模块201之后,也可以如图2b所示的,设置在加密模块201之前,图2b是本发明软件代码处理单元实施例二的组成结构示意图。
以上所述,仅为本实用新型的较佳实施例而已,并非用于限定本实用新型的保护范围,凡在本实用新型的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本实用新型的保护范围之内。

Claims (8)

1.一种执行保护软件代码的装置,其特征在于,该装置包括:安全硬件设备(10)和软件执行单元(11);
所述安全硬件设备(10),用于解密存储的保护软件代码,执行解密后的软件代码,并向软件执行单元(11)返回执行结果;
所述软件执行单元(11),用于执行软件代码,并在执行保护软件代码时,从外部获取保护软件代码,并发送给安全硬件设备(10)。
2.根据权利要求1所述的装置,其特征在于,所述安全硬件设备(10)包括硬件控制模块(100)、解密模块(101)和存储模块(102),其中,
硬件控制模块(100),接收来自所述软件执行单元(11)的解密通知,向解密模块(101)发送解密控制指令;接收来自解密模块(101)的解密完成通知,向所述软件执行单元(11)发送获取保护软件代码通知或获取执行结果通知,执行解密的软件代码并存储执行结果在存储单元(102);
解密模块(101),接收来自硬件控制模块(100)的解密控制指令,从存储模块(102)中读取保护软件代码,并进行解密后将解密后的软件代码存储在存储模块(102)中,向硬件控制模块(100)发送解密完成通知。
3.根据权利要求1所述的装置,其特征在于,所述软件执行单元(11)包括软件控制模块(110)和软件执行模块(111),其中,
软件控制模块(110),接收来自软件执行模块(111)的执行保护软件代码通知,接收来自外部的保护软件代码,将接收到的保护软件代码存储到所述安全硬件设备(10)中;向安全硬件设备(10)发送解密通知;接收来自安全硬件设备(10)的获取保护软件代码通知或获取执行结果通知,将接收到的保护软件代码存储到安全硬件设备(10)或从安全硬件设备(10)中读取执行结果;将获得的执行结果发送给软件执行模块(111);
软件执行模块(111),用于执行软件代码,向软件控制模块(110)发送执行保护软件代码通知,接收来自软件控制模块(110)的执行结果。
4.根据权利要求2所述的装置,其特征在于,所述安全硬件设备(10)还包括:验证模块(103),接收来自硬件控制模块(100)的验证控制指令,对存储在存储模块(102)中的保护软件代码进行安全验证并在通过验证后,向硬件控制模块(100)发送验证完成通知;
所述硬件控制模块(100),接收来自验证模块(103)的验证完成通知,向所述解密模块(101)发送解密控制指令;或者接收来自解密模块(101)的解密完成通知,向验证模块(103)发送验证控制指令,接收来自验证模块(103)的验证完成通知,向所述软件执行单元(11)发送获取保护软件代码通知或获取执行结果通知。
5.根据权利要求2所述的装置,其特征在于,所述存储模块(102)为所述安全硬件设备(10)中的数据存储器RAM。
6.根据权利要求1所述的装置,其特征在于,该装置还包括:软件代码处理单元(20),包括编译模块(200)、加密模块(201)及代码存储模块(203),其中,
编译模块(200),接收需要保护的软件代码,对需要保护的软件代码进行编译,将编译后的软件代码发送给加密模块(201);
加密模块(201),接收来自编译模块(200)的编译后的软件代码,加密并存储加密后的保护软件代码在代码存储模块(203)。
7.根据权利要求6所述的装置,其特征在于,所述软件代码处理单元(20)还包括:签名模块(202),用于对需要保护的软件代码进行认证,生成签名或其它安全数据;所述签名模块(202)设置于加密模块(201)之后,或设置在加密模块(201)之前。
8.根据权利要求1~7任一项所述的装置,其特征在于,所述安全硬件设备为安全芯片。
CN 200620159658 2006-11-13 2006-11-13 一种执行保护软件代码的装置 Expired - Lifetime CN201029035Y (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200620159658 CN201029035Y (zh) 2006-11-13 2006-11-13 一种执行保护软件代码的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200620159658 CN201029035Y (zh) 2006-11-13 2006-11-13 一种执行保护软件代码的装置

Publications (1)

Publication Number Publication Date
CN201029035Y true CN201029035Y (zh) 2008-02-27

Family

ID=39133251

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200620159658 Expired - Lifetime CN201029035Y (zh) 2006-11-13 2006-11-13 一种执行保护软件代码的装置

Country Status (1)

Country Link
CN (1) CN201029035Y (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241519A (zh) * 2020-11-05 2021-01-19 王志平 一种软件版权保护的实现方法
WO2022151001A1 (zh) * 2021-01-13 2022-07-21 王志平 一种软件版权保护的实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112241519A (zh) * 2020-11-05 2021-01-19 王志平 一种软件版权保护的实现方法
WO2022151001A1 (zh) * 2021-01-13 2022-07-21 王志平 一种软件版权保护的实现方法

Similar Documents

Publication Publication Date Title
CN104156642B (zh) 一种基于安全触控屏控制芯片的安全密码输入系统和方法
JP4912921B2 (ja) セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
CN107078904B (zh) 混合密码密钥导出
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
CN102262599B (zh) 一种基于可信根的移动硬盘指纹认证方法
CN105450620A (zh) 一种信息处理方法及装置
CN102156843B (zh) 数据加密方法与系统以及数据解密方法
CN103988461A (zh) 用于对数据进行解密的设备和方法
CN102118512A (zh) 一种手机应用程序防破解方法及系统
CN204242180U (zh) 一种基于安全触控屏控制芯片的安全密码输入系统
CN108133147B (zh) 可执行代码的保护方法、设备及可读存储介质
CN110245466B (zh) 软件完整性保护和验证方法、系统、设备及存储介质
CN114785503B (zh) 密码卡及其根密钥保护方法、计算机可读存储介质
US10572635B2 (en) Automatic correction of cryptographic application program interfaces
CN108959129B (zh) 一种基于硬件的嵌入式系统机密性保护方法
CN104462882A (zh) 软件保护方法、硬件加密设备以及包括其的软件保护系统
JP2007328789A (ja) 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法
CN201029035Y (zh) 一种执行保护软件代码的装置
CN105426702A (zh) 基于安卓操作系统的应用程序加密解密方法和装置
CN104504310A (zh) 基于壳技术的软件保护方法和装置
CN104392153A (zh) 一种软件保护方法及系统
CN102708069A (zh) 安卓系统中内存数据的保护方法
CN113542303B (zh) 秘钥在非可信环境的软件导入系统及方法
CN101281576A (zh) 用于执行保护软件代码的方法及装置
CN114996725A (zh) 一种保护开发程序的方法以及处理器

Legal Events

Date Code Title Description
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: Beijing City, Haidian District Zhongguancun South Street No. 6 Zhucheng building B, room 1201, zip code: 100086

Patentee after: Beijing Senselock Software Technology Co.,Ltd.

Address before: Beijing City, Haidian District Zhongguancun South Street No. 6 Zhucheng building B, room 1201, zip code: 100086

Patentee before: Beijing ponder Rock Software Technology Co.,Ltd.

Address after: Beijing City, Haidian District Zhongguancun South Street No. 6 Zhucheng building B, room 1201, zip code: 100086

Patentee after: Beijing ponder Rock Software Technology Co.,Ltd.

Address before: Beijing City, Haidian District Zhongguancun South Street No. 6 Zhucheng building B, room 1201, zip code: 100086

Patentee before: Beijing Senselock Software Technology Co.,Ltd.

C56 Change in the name or address of the patentee

Owner name: BEIJING SHENSILUOKE SOFTWARE TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: BEIJING SHENSILUOKE DATA PROTECTION CENTER

ASS Succession or assignment of patent right

Owner name: BEIJING SHENSI SHUDUN SCIENCE + TECHNOLOGY CO., LT

Free format text: FORMER OWNER: BEIJING SENSELOCK SOFTWARE TECHNOLOGY CO., LTD.

Effective date: 20150116

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100086 HAIDIAN, BEIJING TO: 100872 HAIDIAN, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20150116

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

Patentee after: BEIJING SHENSI SHUDUN TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing City, Haidian District Zhongguancun South Street No. 6 Zhucheng building block B room 1201

Patentee before: Beijing Senselock Software Technology Co.,Ltd.

C56 Change in the name or address of the patentee
CP03 Change of name, title or address

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

Patentee after: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd.

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

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

CX01 Expiry of patent term

Granted publication date: 20080227

EXPY Termination of patent right or utility model