掌桥专利:专业的专利平台
掌桥专利
首页

一种软件加密处理方法、装置、设备及介质

文献发布时间:2023-06-19 19:23:34


一种软件加密处理方法、装置、设备及介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种软件加密处理方法、装置、设备及介质。

背景技术

随着互联网技术的普及,网络攻击的手段也日渐增多,网络安全也成了人们关注的焦点。在嵌入式设备中,同样也面临同样的安全问题。对于运行在嵌入式设备中的程序代码,如果被其他人员攻击导致程序泄露,那么其他人员就能够掌握程序运行的逻辑和许多重要数据(如加密解密的密钥),进行违法操作获取经济利益。尤其对于某些成本较低的消费类电子产品,因为其成本、开发周期等条件限制,可采用的安全防护条件很有限,有些产品几乎没有安全防护机制,更容易造成软件程序被攻击泄露。

发明内容

有鉴于此,本申请提供了一种嵌入式系统的软件加密方法、装置、设备及介质,以便提高嵌入式设备软件的安全性。

第一方面,本申请提供了一种软件加密处理方法,所述方法应用于嵌入式设备,所述方法包括:

获取经过加密处理的加密可执行文件;

当调用所述加密可执行文件的目标区域数据时,基于所述加密可执行文件的地址信息,确定所述目标区域数据所在的目标地址范围,所述目标区域数据为经过加密算法处理的;

基于所述加密算法将所述目标地址范围的目标区域数据解密到目标RAM区域,所述目标RAM区域与目标区域相对应。

在一种可能的实现方式中,所述方法还包括:

当间隔预设时间后,清除所述目标RAM区域的数据。

在一种可能的实现方式中,当所述嵌入式设备为芯片时,所述获取经过加密处理的加密可执行文件,包括:

获取初始可执行文件,所述初始可执行文件是由处理器对待处理程序进行编译得到的,所述初始可执行文件包括第一区域数据和第二区域数据,所述第二区域数据的安全等级高于所述第一区域数据的安全等级;

当下载所述初始可执行文件时,基于所述芯片的引导程序判断下载的数据是否为第二区域数据,如果是,则基于所述加密算法对所述第二区域数据进行加密处理获得第三区域数据,并下载所述第三区域数据;如果否,则下载所述第一区域数据,所述第三区域数据与所述目标区域数据相对应。

在一种可能的实现方式中,所述初始可执行文件的获取过程包括:

所述处理器根据安全等级确定所述待处理程序的第四区域数据和第五区域数据,所述第四区域数据对应第一地址范围,所述第五区域数据对应第二地址范围,所述第五区域数据的安全等级高于所述第四区域数据的安全等级;

所述处理器基于重定向配置文件对所述待处理程序进行分段处理;

所述处理器对分段处理后的待处理程序进行编译处理,获取所述初始可执行文件,所述第四区域数据与所述第一区域数据相对应,所述第五区域数据与所述第二区域数据相对应。

在一种可能的实现方式中,当所述第五区域数据包括多个函数时,所述处理器,还用于根据所述第五区域数据的第二地址范围,生成所述多个函数对应的函数表,所述函数表中包括所述多个函数对应的名称和地址信息,所述地址信息表示所述多个函数在所述嵌入式设备中存储的地址。

在一种可能的实现方式中,所述当调用所述加密可执行文件的目标区域数据时,基于所述加密可执行文件的地址信息,确定所述目标区域数据所在的目标地址范围,包括:

调用所述函数表,并基于所述目标函数的名称,在所述函数表中确定所述目标函数的地址信息。

在一种可能的实现方式中,所述加密可执行文件的获取过程包括:

处理器根据安全等级确定待处理程序的第四区域数据和第五区域数据,所述第四区域数据对应第一地址范围,所述第五区域数据对应第二地址范围,所述第五区域数据的安全等级高于所述第四区域数据的安全等级;

所述处理器基于重定向配置文件对所述待处理程序进行分段处理;

所述处理器对分段处理后的待处理程序进行编译处理,获取初始可执行文件,所述初始可执行文件包括第一区域数据和第二区域数据,所述第四区域数据与所述第一区域数据相对应,所述第五区域数据与所述第二区域数据相对应;

所述处理器基于所述加密算法对所述第二区域数据进行加密处理,获取所述加密可执行文件;所述处理器将所述加密可执行文件发送给所述嵌入式设备,以便所述嵌入式设备下载所述加密可执行文件。

第二方面,本申请提供了一种软件加密处理装置,所述装置应用于嵌入式设备,所述装置包括:

获取单元,用于获取经过加密处理的加密可执行文件;

确定单元,用于当调用所述加密可执行文件的目标区域数据时,基于所述加密可执行文件的地址信息,确定所述目标区域数据所在的目标地址范围,所述目标区域数据为经过加密算法处理的;

解密单元,用于基于所述加密算法将所述目标地址范围的目标区域数据解密到目标RAM区域,所述目标RAM区域与目标区域相对应。

第三方面,本申请提供了一种软件加密处理设备,所述设备包括:存储器以及处理器;

所述存储器用于存储相关的程序代码;

所述处理器用于调用所述程序代码,执行上述第一方面任意一种实现方式所述的软件加密处理方法。

第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面任意一种实现方式所述的软件加密处理方法。

由此可见,本申请具有如下有益效果:

在本申请的上述实现方式中,为了提高嵌入式设备中软件的安全性,可以获取经过加密处理的加密可执行文件,防止嵌入式设备中的数据被轻易泄露。当嵌入式设备执行加密可执行文件时,如果调用加密可执行文件的目标区域数据,可以首先基于加密可执行文件的地址信息,确定加密可执行文件的目标区域数据所在的目标地址范围,其中,目标区域数据为经过加密算法处理的。然后基于加密算法将目标地址范围的目标区域数据解密到目标RAM区域,该目标RAM区域与目标区域相对应。对于加密可执行文件中的非目标区域数据则可以直接调用。通过本申请所提供的软件加密处理方法,可以针对嵌入式设备软件中安全性比较高的数据进行加密处理,从而提高软件的安全性。当嵌入式设备执行加密处理的数据时,可以将加密数据解密到RAM区域,根据RAM区域数据的易失性,同样可以防止数据被窃取,提高软件的安全性。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本申请中提供的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种软件加密处理方法的流程图;

图2为本申请实施例提供的一种定义函数表的示意图;

图3为本申请实施例提供的一种软件加密处理装置的示意图;

图4为本申请实施例提供的一种软件加密处理设备的示意图。

实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述,所描述的实施例仅为本申请示例性的实施方式,并非全部实现方式。本领域技术人员可以结合本申请的实施例,在不进行创造性劳动的情况下,获得其他的实施例,而这些实施例也在本申请的保护范围之内。

为了便于理解本申请实施例所提供的技术方案,下面首先对本申请所涉及的技术背景进行介绍。

嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。可以应用于某些嵌入式设备,如芯片中。嵌入式系统由硬件系统和软件系统组成,为了使嵌入式系统运行起来,必须有相应的程序,也就是存储在硬件设备中的一些可执行代码,也称为可执行文件。

目前比较常用的可执行文件为Hex文件,Hex文件可以烧写到单片机中,被单片机执行的一种文件格式。生成Hex文件的方式有很多种,可以通过不同的编译器将程序或编译生成Hex文件。

对于运行在嵌入式设备中的程序代码(可执行文件),如果被其他人员攻击导致程序泄露,那么其他人员就能够掌握程序运行的逻辑和许多重要数据(如加密解密的密钥),进行违法操作获取经济利益。尤其对于某些成本较低的消费类电子产品,因为其成本、开发周期等条件限制,可采用的安全防护条件很有限,有些产品几乎没有安全防护机制,更容易造成软件程序被攻击泄露。

基于此,本申请实施例提供了一种软件加密处理方法,以便提高嵌入式设备软件的安全性。具体实现时,嵌入式设备可以获取经过加密处理的加密可执行文件,防止嵌入式设备中的数据被轻易泄露。当嵌入式设备执行加密可执行文件时,如果调用加密可执行文件的目标区域数据,可以首先基于加密可执行文件的地址信息,确定加密可执行文件的目标区域数据所在的目标地址范围,其中,目标区域数据为经过加密算法处理的。然后基于加密算法将目标地址范围的目标区域数据解密到目标RAM区域,该目标RAM区域与目标区域相对应。对于加密可执行文件中的非目标区域数据则可以直接调用。通过本申请所提供的软件加密处理方法,可以针对嵌入式设备软件中安全性比较高的数据进行加密处理,从而提高软件的安全性。当嵌入式设备执行加密处理的数据时,可以将加密数据解密到RAM区域,根据RAM区域数据的易失性,同样可以防止数据被窃取,提高软件的安全性。

为便于理解本申请实施例所提供的技术方案,下面将结合附图进行具体介绍。

参见图1,图1为本申请实施例提供的一种软件加密处理方法的流程图。

该方法可以应用于嵌入式设备,主要包括以下步骤:

S101:获取经过加密处理的加密可执行文件。

 为了提高嵌入式设备中软件的安全性,可以对嵌入式设备需要执行的程序进行加密处理,这样即使程序泄露后也无法解密获取程序中的数据内容。嵌入式设备在执行加密可执行文件之前,需要将加密可执行文件下载到嵌入式设备中,本申请实施例提供了两种对可执行文件进行加密的方法,一种是嵌入式设备在获取未经过加密处理的初始可执行文件后,在将初始可执行文件下载到嵌入式设备的过程中,对初始可执行文件进行加密处理,从而将经过加密处理的加密可执行文件下载到嵌入式设备;另一种是由处理器事先对初始可执行文件进行加密处理,然后发送给嵌入式设备,以便嵌入式设备直接下载加密可执行文件。下面将分别针对这两种方法进行介绍。

 (一)嵌入式设备对初始可执行文件进行加密处理

在介绍嵌入式设备下载初始可执行文件之前,首先介绍初始可执行文件的获取过程。需要说明的是,为方便理解本申请的方案,下面先介绍第四区域数据和第五区域数据。

为了将待处理程序下载到嵌入式设备中,由嵌入式设备执行待处理程序实现相应的功能,可以由处理器对待处理程序进行编译处理,生成可执行文件,从而使嵌入式设备可以下载可执行文件。具体地,处理器可以根据安全等级对待处理程序的数据进行分段,确定待处理程序的第四区域数据和第五区域数据,其中,第五区域数据的安全等级高于第四区域数据的安全等级。该安全等级可以根据实际需求预先确定,例如可以分为重要数据和普通数据,重要数据的泄露可造成较大的损失,例如加密解密的密钥或者电子签名等,可以进行加密处理。也就是,第五区域数据为重要数据,第四区域数据为普通数据。其中,待处理程序中包括各个数据的地址信息,因此在确定第四区域数据和第五区域数据时,可以确定第四区域数据对应的第一地址范围以及第五区域数据对应的第二地址范围。然后处理器可以基于编译环境所提供的重定向配置文件对待处理程序进行分段处理,即将第四区域数据和第五区域数据分段处理,然后将经过分段处理的待处理程序进行编译处理,则生成的初始可执行文件也遵循分段原则。其中,该重定向配置文件可以为Linker文件。经过编译后的初始可执行文件包括第一区域数据和第二区域数据,其中,第一区域数据与第四区域数据相对应,第二区域数据与第五区域数据相对应,也就是,第二区域数据的安全等级高于第一区域数据的安全等级。

然后处理器将生成的初始可执行文件发送给嵌入式设备,进行加密处理并下载。当嵌入式设备为芯片时,芯片可配置有引导程序,例如BootLoader引导程序,可以实现芯片基本的配置并实现外部程序(可执行文件)的下载,可以将可执行文件下载到芯片的flash中。在一种可能的实现方式中,当下载初始可执行文件时,由于初始可执行文件中第一区域数据和第二区域数据均具有地址信息,所以芯片的引导程序可以根据地址信息,判断即将下载的数据是否为第二区域数据,如果是,则可以基于加密算法对第二区域数据进行加密处理,获得第三区域数据,并下载第三区域数据到嵌入式设备;如果否,则可以直接下载第一区域数据,从而获取经过加密处理的加密可执行文件。其中,该加密算法可以为对称加密算法,是指加密和解密使用相同密钥的加密算法,例如3DES算法。可选地,当待处理程序的第五区域数据为多个函数时,可以利用3DE算法对每个函数进行加密处理。由于3DES算法加密的数据长度最小为8字节,当函数的长度不足8字节时,可以补零进行填充。

 需要说明的是,本申请实施例并不限定嵌入式设备对数据进行加密处理的方式。

 (二)处理器对初始可执行文件进行加密处理

根据上述实施例可知,处理器可以根据安全等级对待处理程序的数据进行分段,确定待处理程序的第四区域数据和第五区域数据,其中,第五区域数据的安全等级高于第四区域数据的安全等级。同样地,处理器可以基于编译环境所提供的重定向配置文件对待处理程序进行分段处理,即将第四区域数据和第五区域数据分段处理,然后将经过分段处理的待处理程序进行编译处理,则生成的初始可执行文件也遵循分段原则,初始可执行文件包括第一区域数据和第二区域数据,其中,第一区域数据与第四区域数据相对应,第二区域数据与第五区域数据相对应。处理器可以基于加密算法,对初始可执行文件中的第二区域数据进行加密处理,从而可以获取加密可执行文件,然后把加密可执行文件发送给嵌入式设备,以便嵌入式设备可以下载加密可执行文件。

 S102:当调用加密可执行文件的目标区域数据时,基于加密可执行文件的地址信息,确定目标区域数据所在的目标地址范围。

当嵌入式设备执行加密可执行文件时,可以根据加密可执行文件的地址信息,确定加密可执行文件的目标区域数据所在的目标地址范围,其中,该目标区域数据为经过加密算法处理的数据。根据上述实施例可知,待处理程序中第四区域数据和第五区域数据均具有相应的地址范围,因此可以根据经过加密处理相对应的加密可执行文件的地址信息,确定目标区域数据所在的目标地址范围,从而可以根据目标地址范围调用目标区域数据。其中,该目标区域数据与第三区域数据或第六区域数据相对应。

在一种可能的实现方式中,当待处理程序的第五区域数据为多个函数时,处理器可以根据第五区域数据的第二地址范围,生成多个函数对应的函数表,在该函数表中包括多个函数对应的名称和每个函数的地址信息,该地址信息表示函数在嵌入式设备中存储的地址,也就是,可以预先定义每个函数在嵌入式设备中存储的地址。然后可以将生成的该函数表添加在待处理程序中,以便编译成可执行文件。基于此,当嵌入式设备调用目标区域数据的目标函数时,可以首先调用函数表,然后基于目标函数的名称,在函数表中确定目标函数对应的地址信息,以便嵌入式设备根据目标函数的地址信息获取目标函数,并基于加密算法将目标函数解密到目标RAM区域。如图2所示,为一种定义函数表的示意图。在该函数表中第一列表示函数名称,第二列表示函数在嵌入式设备(如flash)中的存放地址,第三列表示函数的长度。

 S103:基于加密算法将目标地址范围的目标区域数据解密到目标RAM区域。

根据上述实施例可知,嵌入式设备可以将加密可执行文件下载到flash中,在执行加密可执行文件的过程中,可以从flash的0地址开始执行,当调用没有经过加密处理的数据时,可以直接调用;当调用目标区域数据时,可以获取目标地址范围的目标区域数据,并基于加密算法将目标区域数据解密到嵌入式设备的目标RAM区域,将PC指针定位到目标RAM区域的相应地址,从而可以继续执行加密可执行文件。其中,加密可执行文件的目标区域与嵌入式设备的目标RAM区域相对应。

由于RAM存储数据的易失性,即嵌入式设备一旦断电,存储在RAM的数据将随之丢失,也可以防止RAM的重要数据被泄露。在一种可能的实现方式中,嵌入式设备还可以设置间隔预设时间后,及时清除RAM区域的数据,提高数据的安全性。

通过本申请实施例提供的软件加密处理方法,可以针对嵌入式设备软件中安全性比较高的数据进行加密处理,从而提高软件的安全性。当嵌入式设备执行加密处理的数据时,可以将加密数据解密到RAM区域,根据RAM区域数据的易失性,同样可以防止数据被窃取,提高软件的安全性。

基于上述方法实施例,本申请实施例还提供一种软件加密处理装置。参见图3,图3为本申请实施例提供的一种软件加密处理装置的示意图。

该装置300可以应用于嵌入式设备,该装置300包括:

获取单元301,用于获取经过加密处理的加密可执行文件;

确定单元302,用于当调用所述加密可执行文件的目标区域数据时,基于所述加密可执行文件的地址信息,确定所述目标区域数据所在的目标地址范围,所述目标区域数据为经过加密算法处理的;

解密单元303,用于基于所述加密算法将所述目标地址范围的目标区域数据解密到目标RAM区域,所述目标RAM区域与目标区域相对应。

在一种可能的实现方式中,所述装置300还包括:清除单元;所述清除单元,用于当间隔预设时间后,清除所述目标RAM区域的数据。

在一种可能的实现方式中,当所述嵌入式设备为芯片时,所述获取单元301,具体用于获取初始可执行文件,所述初始可执行文件是由处理器对待处理程序进行编译得到的,所述初始可执行文件包括第一区域数据和第二区域数据,所述第二区域数据的安全等级高于所述第一区域数据的安全等级;当下载所述初始可执行文件时,基于所述芯片的引导程序判断下载的数据是否为第二区域数据,如果是,则基于所述加密算法对所述第二区域数据进行加密处理获得第三区域数据,并下载所述第三区域数据;如果否,则下载所述第一区域数据,所述第三区域数据与所述目标区域数据相对应。

在一种可能的实现方式中,所述初始可执行文件的获取过程包括:

所述处理器根据安全等级确定所述待处理程序的第四区域数据和第五区域数据,所述第四区域数据对应第一地址范围,所述第五区域数据对应第二地址范围,所述第五区域数据的安全等级高于所述第四区域数据的安全等级;所述处理器基于重定向配置文件对所述待处理程序进行分段处理;所述处理器对分段处理后的待处理程序进行编译处理,获取所述初始可执行文件,所述第四区域数据与所述第一区域数据相对应,所述第五区域数据与所述第二区域数据相对应。

在一种可能的实现方式中,当所述第五区域数据包括多个函数时,所述处理器,还用于根据所述第五区域数据的第二地址范围,生成所述多个函数对应的函数表,所述函数表中包括所述多个函数对应的名称和地址信息,所述地址信息表示所述多个函数在所述嵌入式设备中存储的地址。

在一种可能的实现方式中,所述确定单元302,具体用于调用所述函数表,并基于所述目标函数的名称,在所述函数表中确定所述目标函数的地址信息。

在一种可能的实现方式中,所述加密可执行文件的获取过程包括:

处理器根据安全等级确定待处理程序的第四区域数据和第五区域数据,述第四区域数据对应第一地址范围,所述第五区域数据对应第二地址范围,所述第五区域数据的安全等级高于所述第四区域数据的安全等级;所述处理器基于重定向配置文件对所述待处理程序进行分段处理;所述处理器对分段处理后的待处理程序进行编译处理,获取初始可执行文件,所述初始可执行文件包括第一区域数据和第二区域数据,所述第四区域数据与所述第一区域数据相对应,所述第五区域数据与所述第二区域数据相对应; 所述处理器基于所述加密算法对所述第二区域数据进行加密处理,获取所述加密可执行文件;所述处理器将所述加密可执行文件发送给所述嵌入式设备,以便所述嵌入式设备下载所述加密可执行文件。

本申请实施例提供的软件加密处理装置所具有的有益效果可参见上述方法实施例,在此不再赘述。

基于上述方法实施例和装置实施例,本申请实施例还提供一种软件加密处理设备。参见图4,图4为本申请实施例提供的一种软件加密处理设备的示意图。

设备400包括:存储器401以及处理器402;

所述存储器401用于存储相关的程序代码;

所述处理器402用于调用所述程序代码,执行上述方法实施例所述的软件加密处理方法。

此外,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方法实施例所述的软件加密处理方法。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。尤其,对于系统或装置实施例而言,由于其基本类似于方法实施例,所以描述得比较简单,相关部分参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元或模块可以是或者也可以不是物理上分开的,作为单元或模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上,可以根据实际需要选择其中的部分或者全部单元或模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种信息处理方法及装置、一种计算设备及存储介质
  • 一种数据处理方法及装置、一种计算设备及存储介质
  • 一种访问请求处理方法及装置、一种计算设备及存储介质
  • 一种数据处理方法、装置、设备及存储介质
  • 一种调用链数据的处理方法、装置、设备及存储介质
  • 软件加密方法、装置、设备及存储介质
  • 软件加密方法、装置、设备及存储介质
技术分类

06120115891339