CN116166277A - 一种应用程序的管理装置和嵌入式设备 - Google Patents

一种应用程序的管理装置和嵌入式设备 Download PDF

Info

Publication number
CN116166277A
CN116166277A CN202211566535.6A CN202211566535A CN116166277A CN 116166277 A CN116166277 A CN 116166277A CN 202211566535 A CN202211566535 A CN 202211566535A CN 116166277 A CN116166277 A CN 116166277A
Authority
CN
China
Prior art keywords
module
data
decryption
hidden file
application program
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.)
Pending
Application number
CN202211566535.6A
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 Eswin Computing Technology Co Ltd
Original Assignee
Beijing Eswin Computing 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 Eswin Computing Technology Co Ltd filed Critical Beijing Eswin Computing Technology Co Ltd
Priority to CN202211566535.6A priority Critical patent/CN116166277A/zh
Publication of CN116166277A publication Critical patent/CN116166277A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本申请实施例公开了一种应用程序的管理装置和嵌入式设备。所述装置包括:解密模块,用于将得到的加密数据进行解密操作,得到明文数据,所述明文数据携带有应用程序的代码数据;创建模块,用于在所述嵌入式设备中创建隐匿文件;处理模块,与所述解密模块和创建模块相连,用于将所述明文数据写入到所述隐匿文件;管理模块,与所述处理模块相连,用于运行所述隐匿文件中的明文数据。

Description

一种应用程序的管理装置和嵌入式设备
技术领域
本申请实施例涉及信息安全领域,尤指一种应用程序的管理装置和嵌入式设备。
背景技术
在使用Linux内核的嵌入式设备中,应用程序存储在嵌入式多媒体卡(embeddedMulti Media Card,EMMC)等存储介质里,该应用程序为可执行可链接文件格式(Executable and Linking Format,ELF)文件。其中ELF可通过文件系统直接读取,使用编译器的反汇编功能直接读取出代码数据。
当系统硬件有可信执行环境(Trusted Execution Environment,TEE)并且有安全操作系统如OPTEE,此时,可以将应用程序的源代码编译为TA(Trusted Application,可信应用程序),并将该TA加密存储在存储介质中,在安全操作系统的运行环境下安全执行。
采用上述方式保障应用程序的安全时,如果嵌入式设备不具有TEE环境或者无法将应用程序作为TA运行,此时将无法保障其应用程序的安全。
发明内容
为了解决上述任一技术问题,本申请实施例提供了一种应用程序的管理装置和嵌入式设备。
为了达到本申请实施例目的,本申请实施例提供了一种应用程序的管理装置,应用于嵌入式设备,包括:
解密模块,用于将得到的加密数据进行解密操作,得到明文数据,所述明文数据携带有应用程序的代码数据;
创建模块,用于在所述嵌入式设备中创建隐匿文件;
处理模块,与所述解密模块和创建模块相连,用于将所述明文数据写入到所述隐匿文件;
管理模块,与所述处理模块相连,用于运行所述隐匿文件中的明文数据。
一种嵌入式设备,包括:
存储器,用于存储包括加密数据的镜像包;
上文所述的装置。
上述技术方案中的一个技术方案具有如下优点或有益效果:
利用加密数据来携带应用程序的代码数据,可以降低应用程序的代码数据泄露的风险,利用隐匿文件中存储解密后的明文数据,并控制该隐匿文件中明文数据运行,使得该应用程序被隐匿执行,对系统外部不可见,从而保障应用程序运行的安全性。
本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。
图1为本申请实施例提供的应用程序的管理装置100的结构示意图;
图2为图1所示装置100的另一示意图;
图3为图2所示装置的另一示意图;
图4为本申请实施例提供的镜像包的示意图;
图5为本申请实施例提供的嵌入式设备1000的结构示意图;
图6为本申请实施例提供的应用程序的管理方法的流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。
在嵌入式设备不具有TEE环境时,如果应用程序不作保护,则应用程序的代码数据有被攻击篡改的风险,且如果将应用程序的镜像直接存储在存储介质里,可能存在泄露源代码的风险。
在嵌入式设备具有TEE环境时,如果嵌入式设备存储的应用程序为第三方提供的已完成编译的应用程序,由于嵌入式设备内没有存储该应用程序的源代码,将无法将其编译为TA文件,使得该应用程序无法在TEE下运行。
鉴于存在上述问题,本申请实施例提供如下解决方案,包括:
图1为本申请实施例提供的应用程序的管理装置100的结构示意图。如图1所示,所述装置100应用于嵌入式设备中。其中所述装置包括解密模块10、创建模块20、处理模块30和管理模块40;其中:
所述解密模块10,用于将得到的加密数据进行解密操作,得到明文数据,所述明文数据携带有应用程序的代码数据;
具体的,利用加密数据来携带应用程序的代码数据,由于加密操作可以降低加密内容被非法解析的概率,可以有效降低应用程序的代码数据泄露的风险。
所述解密模块10可以利用预先存储的解密密钥对所述加密模块进行解密操作,其中所述解密密钥可以是与加密数据的提供方预先协商确定的,其中,该加密数据得到提供方可以为应用程序的开发者,或,向嵌入式设备写入该加密数据的操作方。
所述解密模块10可以按照预设的生成策略生成解密密钥,利用生成的解密密钥进行解密操作,其中,该生成策略可以在执行解密操作之前获取该生成策略,或者,从嵌入式设备中获取该生成策略。
进一步的,可以利用嵌入式设备的设备信息来生成所述解密密钥。由于嵌入设备的设备信息具有唯一性,利用唯一性的内容生成解密密钥,可以降低加密设备被非法破解的概率,进一步降低应用程序的代码数据泄露的风险,提高应用程序的代码数据的存储安全性。
所述解密模块10将解密后的明文数据存放在内存,不会生成永久文件,因此也不会被人窃取到,提高了应用程序的代码数据的安全性。
所述创建模块20,用于在所述嵌入式设备中创建隐匿文件;
具体的,隐匿文件是指在嵌入式操作系统中不可见的文件,即,由于该隐匿文件自身不可见,因此,存储在该隐匿文件中的数据也是不可见的。
可以基于嵌入式设置的运行环境(如,操作系统),利用该运行环境下的文件创建工具完成新文件的创建,并通过设置文件的属性,将该新建文件夹设置为隐匿文件。
进一步的,如果该嵌入式设备的操作系统具有创建隐匿文件的函数,可以直接调用该函数完成隐匿文件的创建。
以嵌入式设备的运行环境为Linux时,所述创建模块20利用memfd_create函数创建隐匿文件。其中,memfd_create函数创建一个匿名文件并返回一个指向该文件的文件描述符。与不同于普通文件,通过该函数创建的文件保存在内存中。
所述处理模块30,与所述解密模块10和所述创建模块20相连,用于将所述明文数据写入到所述隐匿文件;
具体的,由于该隐匿文件自身不可见,因此,存储在该隐匿文件中的数据也是不可见的,通过将所述明文数据写入到所述隐匿文件,使得明文数据在嵌入式设备中不可见,降低了被非法读取的风险。
进一步的,如果所述隐匿文件和所述明文数据均存储在内存中,可以方便处理模块30将明文数据写入到隐匿文件,借助内存的数据存储特性,降低数据泄漏的风险,提高了应用程序的运行安全性。
所述管理模块40,与所述处理模块30相连,用于运行所述隐匿文件中的明文数据;
具体的,可以基于嵌入式设置的运行环境(如,操作系统),利用该运行环境下的文件启动工具完成应用程序的启动。
进一步的,如果该嵌入式设备的操作系统具有启动应用程序的函数,可以直接调用该函数完成应用程序的启动操作。
以嵌入式设备的运行环境为Linux时,所述管理模块40利用fexecve函数运行所述隐匿文件。fexecve函数能够执行一个程序,传递给该函数的是文件描述符,而不是文件的绝对路径,因此,该fexecve函数和memfd_create函数需要搭配使用。
本申请实施例提供的装置,利用加密数据来携带应用程序的代码数据,可以降低应用程序的代码数据泄露的风险,利用隐匿文件中存储解密后的明文数据,并控制该隐匿文件中明文数据运行,使得该应用程序被隐匿执行,对系统外部不可见,从而保障应用程序运行的安全性。
图2为图1所示装置100的另一示意图。如图2所示,所述装置100还包括解析模块50和验签模块60;其中:
所述解析模块50,用于从接收的镜像包中提取公钥、签名数据和所述加密数据;
验签模块60,与所述解析模块50和所述解密模块10相连,用于利用所述公钥对所述签名数据进行验证操作,如果验证通过,则允许所述解密模块10对所述加密数据进行解密操作。
具体的,利用镜像包中的公钥对镜像包中的签名进行验证操作,以保证接收的加密数据的提供方合法,避免对非法提供方发送的数据进行处理。
图3为图2所示装置的另一示意图。如图2所示,所述装置还包括比较模块70;其中:
所述比较模块70,与所述解析模块50和所述验签模块60相连,用于比较所述公钥的哈希值与预先存储的公钥的哈希基准值是否相同,如果相同,则允许所述验签模块60执行对所述签名数据进行验证操作。
具体的,通过比较镜像包中的公钥的哈希值与哈希基准值是否相同,来验证镜像包中的公钥是否合法,为保证验签模块60顺利执行验证操作提供支持。
图4为本申请实施例提供的镜像包的示意图。如图4所示,应用程序的代码数据被编译生成镜像(image),使用RSA私钥进行RSA签名,将公钥和签名放入镜像包(imagepackage)。通过生成策略,利用嵌入式设备的设备信息生成加密密钥,对镜像进行AES加密,将加密后的镜像作为加密数据放入镜像包中。
图5为本申请实施例提供的嵌入式设备1000的结构示意图。如图5所示,所述设备1000包括上文所述装置100和存储器200;其中:
所述存储器200,用于存储包括加密数据的镜像包。
具体的,该装置可以以独立功能单元内置于嵌入式设备1000中,或者,集成于嵌入式设备1000的处理器中。
其中,嵌入式设备1000可以为智能家电设备、移动终端(如,手机、平板电脑等)。
可选的,所述存储器200还存储有解密密钥的生成策略,使得所述装置100中的解密模块利用所述解密密钥的生成策略生成解密密钥。
可选的,所述设备1000还包括:
一次性可编程存储器300,用于存储公钥的哈希基准值。
例如,将生成签名数据所使用的公钥的哈希值作为哈希基准值,写入到嵌入式设备1000的一次性可编程存储器300中。其中该一次性可编程存储器300可以为efuse或者OTP。
由于一次性可编程存储器300中存储的内容不能被修改,从而保证了所述装置100中验签模块60验证操作的准确性。
可选的,所述设备还包括:
内存400,用于存储有隐匿文件,所述隐匿文件包括所述应用程序的代码数据。
由于所述隐匿文件和所述明文数据均存储在内存中,可以方便处理模块30将明文数据写入到隐匿文件,借助内存的数据存储特性,降低数据泄漏的风险,提高了应用程序的运行安全性。
图6为本申请实施例提供的应用程序的管理方法的流程图。如图6所示,所述方法包括:
步骤01、从应用程序的镜像包中提取公钥、签名和加密数据;
从存储器中读取出应用程序的镜像包(image package),此时镜像包里包含了公钥、签名和加密数据。
步骤02、验证公钥的合法性;
计算镜像包中公钥的哈希值,并将计算得到的哈希值与公钥的基准哈希值进行比较,如果一致,则执行步骤03;否则,流程结束。
步骤03、使用公钥进行对签名进行验证操作;
其中,可以使用RSA算法进行验证操作;
如果签名验证通过,则执行步骤04;否则,流程结束。
步骤04、基于解密密钥的生成策略,利用嵌入式设备的设备信息生成解密密钥;
步骤05、采用解密密钥从加密数据中得到明文数据,并将明文数据存储到内存中;
通过将解密后的明文写入隐匿文件中,使得应用程序作为隐匿文件存在于内存中,其中该解密算法与加密算法对应,可以采用AES算法;
步骤06、通过Linux内核系统调用memfd_create创建隐匿文件;
通过Linux内核系统的函数完成隐匿文件的创建,操作方式简单方便;
步骤07、将明文数据写入隐匿文件中;
步骤08、通过Linux内核系统调用fexecve系统调用运行隐匿文件,流程结束。
本申请实施例提供的方法,利用加密数据来携带应用程序的代码数据,可以降低应用程序的代码数据泄露的风险,利用隐匿文件中存储解密后的明文数据,并控制该隐匿文件中明文数据运行,使得该应用程序被隐匿执行,对系统外部不可见,从而保障应用程序运行的安全性。
本申请实施例提供一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。
本申请实施例提供一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (10)

1.一种应用程序的管理装置,其特征在于,应用于嵌入式设备,包括:
解密模块,用于将得到的加密数据进行解密操作,得到明文数据,所述明文数据携带有应用程序的代码数据;
创建模块,用于在所述嵌入式设备中创建隐匿文件;
处理模块,与所述解密模块和所述创建模块相连,用于将所述明文数据写入到所述隐匿文件;
管理模块,与所述处理模块相连,用于运行所述隐匿文件中的明文数据。
2.根据权利要求1所述的装置,其特征在于,所述装置还包括:
解析模块,用于从接收的镜像包中提取公钥、签名数据和所述加密数据;
验签模块,与所述解析模块和所述解密模块相连,用于利用所述公钥对所述签名数据进行验证操作,如果验证通过,则允许所述解密模块对所述加密数据进行解密操作。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括:
比较模块,与所述解析模块和所述验签模块相连,用于比较所述公钥的哈希值与预先存储的公钥的哈希基准值是否相同,如果相同,则允许所述验签模块执行对所述签名数据进行验证操作。
4.根据权利要求1所述的装置,其特征在于:
所述解密模块,还用于根据预设的生成策略,生成所述嵌入式设备的设备信息对应的解密密钥,利用所述解密密钥对所述加密数据进行解密操作。
5.根据权利要求1至4任一所述的装置,其特征在于:
所述解密模块,用于将所述明文数据存储到嵌入式设备的内存中;
所述创建模块,用于在所述嵌入式设备的内存中创建隐匿文件。
6.根据权利要求5所述的装置,其特征在于:
所述创建模块,用于在嵌入式设备的运行环境为Linux时,利用memfd_create函数创建隐匿文件。
7.一种嵌入式设备,其特征在于,包括:
存储器,用于存储包括加密数据的镜像包;
如权利要求1至6任一所述的装置。
8.根据权利要求7所述的设备,其特征在于:
所述存储器,还用于存储解密密钥的生成策略。
9.根据权利要求7所述的设备,其特征在于,所述设备还包括:
一次性可编程存储器,用于存储公钥的哈希基准值。
10.根据权利要求7至9任一所述的设备,其特征在于,所述设备还包括:
内存,用于存储有隐匿文件,所述隐匿文件包括所述应用程序的代码数据。
CN202211566535.6A 2022-12-07 2022-12-07 一种应用程序的管理装置和嵌入式设备 Pending CN116166277A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211566535.6A CN116166277A (zh) 2022-12-07 2022-12-07 一种应用程序的管理装置和嵌入式设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211566535.6A CN116166277A (zh) 2022-12-07 2022-12-07 一种应用程序的管理装置和嵌入式设备

Publications (1)

Publication Number Publication Date
CN116166277A true CN116166277A (zh) 2023-05-26

Family

ID=86412133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211566535.6A Pending CN116166277A (zh) 2022-12-07 2022-12-07 一种应用程序的管理装置和嵌入式设备

Country Status (1)

Country Link
CN (1) CN116166277A (zh)

Similar Documents

Publication Publication Date Title
US20220006617A1 (en) Method and apparatus for data storage and verification
JP7060362B2 (ja) 電子デバイスのためのイベント証明書
CN109710315B (zh) Bios刷写方法及bios镜像文件的处理方法
US6263431B1 (en) Operating system bootstrap security mechanism
US20150186679A1 (en) Secure processor system without need for manufacturer and user to know encryption information of each other
CN105718807B (zh) 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
CN104462965A (zh) 应用程序完整性验证方法及网络设备
WO2019084575A1 (en) METHOD FOR STARTING BIOS AND METHOD FOR PROCESSING DATA
CN106778283A (zh) 一种系统分区关键数据的保护方法及系统
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
US20120137372A1 (en) Apparatus and method for protecting confidential information of mobile terminal
CN108335105B (zh) 数据处理方法及相关设备
KR20150035249A (ko) 어플리케이션 패키지를 저장하는 기록 매체, 어플리케이션 패키지 생성 방법 및 장치, 어플리케이션 패키지 실행 방법 및 장치
EP2503482A1 (en) Electronic device with flash memory component
US20130019110A1 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
CN111404682A (zh) 一种Android环境密钥分段处理方法及装置
CN109445705A (zh) 固件认证方法及固态硬盘
CN109299944B (zh) 一种交易过程中的数据加密方法、系统及终端
WO2022052665A1 (zh) 无线终端及无线终端在Uboot模式下的接口访问鉴权方法
CN117610083A (zh) 文件校验方法、装置、电子设备及计算机存储介质
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN111857756A (zh) 一种基于硬件加密的安全刷机方法及系统
CN107918739B (zh) 一种数据的保护方法、装置及存储介质
CN112507302B (zh) 基于密码模块执行的调用方身份鉴别方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination