CN109960903A - 一种应用加固的方法、装置、电子设备及存储介质 - Google Patents

一种应用加固的方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN109960903A
CN109960903A CN201711434423.4A CN201711434423A CN109960903A CN 109960903 A CN109960903 A CN 109960903A CN 201711434423 A CN201711434423 A CN 201711434423A CN 109960903 A CN109960903 A CN 109960903A
Authority
CN
China
Prior art keywords
key
code
encrypted
application
decryption
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
CN201711434423.4A
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.)
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Hangzhou Information 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 China Mobile Communications Group Co Ltd, China Mobile Hangzhou Information Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201711434423.4A priority Critical patent/CN109960903A/zh
Publication of CN109960903A publication Critical patent/CN109960903A/zh
Pending legal-status Critical Current

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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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

Abstract

本发明公开了一种应用加固的方法、装置、电子设备及存储介质,该方法包括:加固应用在REE系统中接收运行指令;所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。本发明中加固代码运行在TEE系统中,而非运行在REE系统中,因此攻击者即使攻击了REE系统,也无法对TEE系统内的代码和数据进行修改,因此提高了加固应用的应用代码的安全性,保护了数据安全。

Description

一种应用加固的方法、装置、电子设备及存储介质
技术领域
本发明涉及应用加固技术领域,尤其涉及一种应用加固的方法、装置、电子设备及存储介质。
背景技术
随着Android应用和iOS应用的广泛使用,为了方便用户的生活,很多如金融、医疗、政务和支付等重要的功能也都逐渐在手机应用上实现,因此手机应用也逐渐成为攻击者攻击的目标,而为了保证应用的安全性,开发者对应用进行加固的需求也越来越高。Gartner 2017年的一次调查中,16%的受访者说他们正在使用应用加固,其中包括手机应用和Web应用等,而26%的受访者打算在2019年前采用加固,并且国内移动应用加固厂商近年的收入也在逐年走高,由此可见应用加固已经成为保护代码和数据资源的一种重要手段。
目前常用的加固技术有很多,比如对应用中执行代码的函数名和变量名等进行混淆、对应用中dex、so等执行代码和资源进行指纹校验防止被篡改、对执行代码进行加密防止静态分析以保护核心代码私密性和执行安全、以及对应用中核心执行代码的运行环境进行保护如加入反调试、反模拟器代码对抗逆向以及对手机进行root检查等保护以保护应用的核心执行代码,在对核心执行代码保护方面,目前最安全的方法是VMP(Virtual MachineProtection,虚拟机加固),即用私有指令进行重写原来执行代码指令,然后在运行时,由自己自定义的虚拟机去解析执行这些私有指令。
但是无论是上述何种加固技术,加固过程中的代码都是运行在手机主操作系统上的,根据GP(GlobalPlatform,标准组织)的规定,手机主操作系统称为REE(Rich ExecutionEnvironment,富执行环境)系统,REE系统从应用层到操作系统层,都可能被攻击者进行修改和调试,具有很大的攻击面,并且REE系统的漏洞问题容易被攻击者控制,因此采用上述加固技术加固过程中的代码也很容易被攻击者攻击。比如攻击者可以采用一些已知漏洞获取最高权限控制操作系统,在加固代码执行时修改dump或修改执行逻辑和结果等,又比如攻击者可以将应用加固中打包进去的反调试代码移除,用IDA等调试工具连接应用进行调试,从而改变加固代码的执行流程。
综上,由于加固过程中的加固代码运行在REE系统中,因此容易被攻击者攻击,造成数据安全隐患。
发明内容
本发明提供了一种应用加固的方法、装置、电子设备及存储介质,用以解决现有技术中加固代码容易被攻击者攻击,存在数据安全隐患的问题。
本发明提供一种应用加固的方法,该方法包括:
加固应用在富执行环境REE系统中接收运行指令;
所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;
将所述解密代码在REE系统中运行。
进一步地,所述在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥包括:
所述加固应用将所述TEE系统中的加密后的密钥传输到安全元件SE中;
在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
进一步地,所述确定加密后的密钥的第一解密密钥包括:
根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或
根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
进一步地,所述根据所述解密后的密钥,确定所述加密代码的解密代码包括:
采用所述解密后的密钥对存储在所述TEE系统中的加密后的白盒表解密,得到解密后的白盒表;
根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
进一步地,所述加固应用在REE系统中接收运行指令后,在所述所述加固应用将加密后的密钥及所述运行指令对应的加密代码存储到TEE系统中之前,所述方法还包括:
所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一消息认证码MAC信息;
在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;
如果验证通过,进行后续步骤。
进一步地,所述在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证,如果验证通过包括:
在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;
判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;
如果均为是,则确定验证通过;
如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
进一步地,所述根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息包括:
根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的哈希消息认证码HMAC算法,确定用于验证的第二MAC信息;或
根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
进一步地,所述将解密后的解密代码在REE系统中运行后,所述方法还包括:
如果在所述解密代码中识别到虚拟机加固VMP函数,将所述VMP函数存储到所述TEE系统中;
在所述TEE系统中确定所述VMP函数的私有指令;
如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;
如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
进一步地,所述方法还包括:
判断所述加固应用的应用代码是否存在被篡改风险;
如果是,在所述REE系统中停止运行所述加固应用。
本发明提供一种应用加固的装置,该装置包括:
接收模块,用于加固应用在富执行环境REE系统中接收运行指令;
确定模块,用于所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;
运行模块,用于将所述解密代码在REE系统中运行。
本发明提供一种电子设备,包括存储器、处理器和收发机;
所述处理器,用于读取所述存储器中的程序,执行下列过程:加固应用在富执行环境REE系统中控制所述收发机接收运行指令,所述加固应用将加密后的密钥及所述运行指令对应的加密代码存储到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。
进一步地,所述处理器,具体用于所述加固应用将所述TEE系统中的加密后的密钥传输到安全元件SE中;在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
进一步地,所述处理器,具体用于根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
进一步地,所述处理器,具体用于采用所述解密后的密钥对存储在所述TEE系统中的加密后的白盒表解密,得到解密后的白盒表;根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
进一步地,所述处理器,还用于加固应用在REE系统中控制所述收发机接收运行指令后,所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一消息认证码MAC信息;在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;如果验证通过,所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中。
进一步地,所述处理器,具体用于在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;如果均为是,则确定验证通过;如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
进一步地,所述处理器,具体用于根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的哈希消息认证码HMAC算法,确定用于验证的第二MAC信息;或根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
进一步地,所述处理器,还用于将解密后的解密代码在REE系统中运行后,如果在所述解密代码中识别到虚拟机加固VMP函数,将所述VMP函数存储到所述TEE系统中;在所述TEE系统中确定所述VMP函数的私有指令;如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
进一步地,所述处理器,还用于判断所述加固应用的应用代码是否存在被篡改风险;如果是,在所述REE系统中停止运行所述加固应用。
本发明提供一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行上述任一项所述方法的步骤。
本发明提供一种计算机可读存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述任一项所述方法的步骤。
本发明提供了一种应用加固的方法、装置、电子设备及存储介质,该方法包括:加固应用在REE系统中接收运行指令;所述加固应用将加密后的密钥及所述运行指令对应的加密代码存储到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。本发明中在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥,对运行指令对应的加密代码进行解密,在REE系统中存储的代码是加固后的加密代码,仅对需要运行的加密代码进行解密,并且对加密代码的解密过程在TEE系统中,攻击者即使攻击了REE系统,也仅能获取当前运行的解密代码,并不能获取到TEE系统中的解密密钥,因此也就无法对REE系统内的加密代码和数据进行修改,从而提高了加固应用的应用代码的安全性,保护了数据安全。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实例1提供的一种应用加固过程的示意图;
图2为本发明实施例2应用加固的组件架构示意图;
图3为本发明实施例6提供的一种应用验证的流程示意图;
图4为本发明实施例9提供的一种电子设备的结构示意图;
图5为本发明实施例10提供的一种电子设备的结构示意图;
图6为本发明实施例提供的一种应用加固装置示意图。
具体实施方式
为了提高加固应用的应用代码和资源的安全性,保护数据安全,本发明实施例提供了一种应用加固方式、装置、电子设备及存储介质。
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例提供的一种应用加固过程的示意图,该过程包括以下步骤:
S101:加固应用在REE系统中接收运行指令。
本发明实施例提供的应用加固方法应用于电子设备,电子设备可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等电子设备。电子设备支持REE系统和TEE(Trusted Execution Environment,可信执行环境)系统,电子设备上安装有加固后的加固应用,加固后的加固应用中包括加固后的加密代码。
电子设备在安装加固应用时,会在REE系统保存一部分加固后的加密代码,加固应用包括REE系统中加固后的加密代码。
加固应用运行在REE系统中,当用户需要使用该加固应用时,向加固应用发送运行指令,在REE系统中的加固应用的接收到应用的运行指令。运行指令中包含加密代码的标识信息,因此加固应用接收到运行指令后,可以确定运行指令对应的加密代码。
S102:所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码。
加固应用在REE系统中保存有加密后的密钥和加固后的加密代码,加固后的加密代码可以是dex代码或so代码,还可以包括其他资源文件等隐私信息。
加固应用在REE系统中接收到运行指令后,确定运行指令对应的加密代码,将加密后的密钥和运行指令对应的加密代码传输到TEE系统中。
电子设备安装加固应用时,还会识别TEE系统中是否预置有加固应用对应的加固TA(Trusted Application,可信应用),如果识别到存在预置的加固TA,则加固应用在接收到运行指令后,将加密后的密钥和运行指令对应的加密代码传输给TEE系统中的加固TA,如果未识别到存在预置的加固TA,则加固应用可以向服务器请求在TEE系统中安装加固TA,当加固TA安装完成后,加固应用在接收到运行指令后,将加密后的密钥和运行指令对应的加密代码传输给TEE系统中的加固TA。
REE系统中的加固应用与TEE系统中的加固TA可以通过共享内存进行数据传输,具体地,加固应用可以将加密后的密钥和运行指令对应的加密代码,通过共享内存传输给TEE系统中的加固TA。
TEE系统中的加固TA中保存有加固应用的执行逻辑,因为加固应用将加密后的密钥传输到了TEE系统中,在TEE系统中加固TA可以确定加密后的密钥的第一解密密钥,第一解密密钥用来对加密后的密钥进行解密。加固应用在TEE系统中确定加密后的密钥的第一解密密钥的过程,可以是预先保存有加密后的密钥对应的第一解密密钥,也可以是根据加固应用的标识信息及预先保存的算法生成对应的第一解密密钥。
加固TA根据第一解密密钥对加密后的密钥进行解密,确定解密后的密钥。加固TA根据解密后的密钥,确定加密代码的解密代码。加固TA可以是直接采用解密后的密钥对加密代码直接解密,获取解密代码。
TEE系统是主处理器上的一个隔离区域,因此攻击者如果攻击了REE系统,也无法获取到TEE系统中的应用代码和资源。TEE具有运行速度较快、能保证加固TA的完整性、存储的数据的完整性和私密性,用来执行解密代码可以在保证代码安全的基础上,保证解密代码的速度。
S103:将所述解密代码在REE系统中运行。
TEE系统中加固TA将解密代码通过共享内存传回REE系统,在REE系统中运行该运行指令对应的解密代码。
本发明实施例中在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥,对运行指令对应的加密代码进行解密,在REE系统中存储的代码是加固后的加密代码,仅对需要运行的加密代码进行解密,并且对加密代码的解密过程在TEE系统中,攻击者即使攻击了REE系统,也仅能获取当前运行的解密代码,并不能获取到TEE系统中的解密密钥,因此也就无法对REE系统内的加密代码和数据进行修改,从而提高了加固应用的应用代码的安全性,保护了数据安全。
实施例2:
为了进一步提高加固应用的应用代码和资源的安全性,在上述实施例的基础上,本发明实施例中,所述在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥包括:
所述加固应用将所述TEE系统中的加密后的密钥传输到SE(Secure Element,安全元件)中;
在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后密钥解密,确定解密后的密钥。
SE通常以芯片形式提供,为了防止外部恶意解析攻击,保护数据安全,在SE中具有加密逻辑电路及解密逻辑电路,因此在电子设备中安装SE,并在SE中对加固应用进行加固,可以进一步提高加固应用的应用代码的安全性。
SE具有高安全性,可以用来安全地进行关键密钥的存储,以及少量关键逻辑的执行,因此可以采用TEE和SE协同实现应用加固。
电子设备上安装加固应用时,除在REE系统保存一部分加固后的加密代码,及识别在TEE系统中是否预置有加固TA,还会识别在SE中是否预置有加固应用对应的加固SE应用,如果识别到存在预置的加固SE应用,则将TEE系统中的加密后的密钥传输到SE中,如果未识别到存在预置的加固SE应用,则加固应用可以向服务器请求在SE中安装加固SE应用,当加固SE应用安装完成后,将TEE系统中的加密后的密钥传输到SE中。加固SE应用可以为JavaCard的Applet应用。
加固TA可以通过调用接口与加固SE应用进行数据传输,该接口可以为GP标准中的TEE SE API接口,如果加固TA不支持接口,加固TA与加固SE应用之间传输的数据可以通过加固应用进行中转,加固TA与SE之间可以通过Open Mobile API或REE系统提供的API等进行通信,REE系统为Android系统时,REE系统提供的API可以为TelephonyManager接口。此外加固TA与加固SE应用之间通过安全通道连接,加固TA与加固SE应用之间的数据可以通过该安全通道进行传输。
加固应用将TEE系统中的加密后的密钥存储到SE中,可以是加固TA通过调用接口,将加密后的密钥存储到SE中。
加固SE应用中保存有应用加固的执行逻辑,加固应用在SE中可以通过加固SE应用确定加密后的密钥的第一解密密钥,第一解密密钥用来对加密后的密钥进行解密。加固SE应用根据第一解密密钥对加密后的密钥进行解密,确定解密后的密钥。加固SE应用根据解密后的密钥,确定加密代码的解密代码。
加固应用在SE中确定加密后的密钥的第一解密密钥的过程,可以是预先保存有加密后的密钥对应的第一解密密钥,也可以是根据加固应用的标识信息及预先保存的算法生成对应的第一解密密钥。
TEE系统中的加固TA和SE中的加固SE应用还可以与加固服务器中的云端应用通信,进行一些上报、联动操作,加固TA和加固SE应用与加固服务器云端应用的通信的认证的实现,可以为在加固SE应用与加固服务器间共享了一个密钥,采用如AES-GCM方式进行认证和加密,另外还可以在加固SE应用初始化时生成有加固SE应用单独的公私钥对,并将该公私钥对上报到加固服务器的云端应用,采用该公私钥对进行认证和加密。加固TA可以通过加固SE应用与云端应用实现通信的认证。
下面以一个具体的实施例对上述各实施例进行说明,如图2所示,为基于TEE和SE进行应用加固的架构示意图。加固应用包括REE系统中加固后的加密代码,TEE系统中的加固TA和SE中的加固SE应用,加密代码可以与加固TA进行数据交互,加固TA与加固SE应用之间可以进行数据交互。
由于本发明实施例中在SE中对加固应用进行加固,可以进一步提高加固应用的应用代码的安全性。
实施例3:
为了实现应用的加固,在上述各实施例的基础上,本发明实施例中,所述确定加密后的密钥的第一解密密钥包括:
根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或
根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
加固应用可以确定加密后的密钥对应的第一解密密钥,实现对加密后的密钥的解密,从而实现应用的加固与解密。
加固应用确定加密后的密钥对应的第一解密密钥的过程在TEE或SE中完成,具体地,可以由加固TA或加固SE应用完成。
如果是预先保存有加密后的密钥对应的第一解密密钥,则在TEE系统或SE中预先保存有加密后的密钥与解密密钥的对应关系,如果是在TEE系统中确定第一解密密钥,则加固TA在TEE中保存的加密后的密钥与解密密钥的对应关系查找加密后的密钥,从而确定加密后的密钥对应的第一解密密钥,如果是在SE中确定第一解密密钥,则加固SE应用在SE中保存的加密后的密钥与解密密钥的对应关系中查找加密后的密钥,从而确定加密后的密钥对应的第一解密密钥。
如果根据加固应用的标识信息及预先保存的算法生成对应的第一解密密钥,则加固TA或加固SE应用将标识信息及预先录入的第一根密钥,作为基于HMAC的第一派生密钥生成算法的输入值,将该基于HMAC的第一派生密钥生成算法的输出值确定为加密后的密钥的第一解密密钥。该预先录入的根密钥为非公开的密钥,该基于HMAC的第一派生密钥生成算法可以为仿照TLS1.2标准或TLS1.3标准的任意派生密钥生成算法,只要是与密钥在加密时对应的算法为相逆的算法即可,如果基于TLS1.2标准,则基于HMAC的第一派生密钥生成算法可以为PRF(PseudoRandom Function,伪随机函数)算法,如果基于TLS1.3标准,则基于HMAC的第一派生密钥生成算法可以为HKDF(HMAC-based Extract-and-Expand KeyDerivation Function,HMAC的提取和扩展密钥导出函数)算法。
在TEE系统或SE中获取的加固应用的标识信息,可以为加固应用传输至TEE系统或SE中的标识信息。
此外还需注意的是,如果该基于HMAC的第一派生密钥生成算法为仿照TLS1.2标准或TLS1.3标准的任意派生密钥生成算法,则该基于HMAC的第一派生密钥生成算法的输入值包括标识信息、第一根密钥及待生成的第一解密密钥的长度。
当然,根据标识信息、第一根密钥及基于HMAC的第一派生密钥生成算法确定加密后的密钥对应的第一解密密钥后,可以对该加密后的密钥与第一解密密钥的对应关系进行保存,则下次使用该加密代码时可以直接在对应关系中查找节省解密时间。
由于本发明实施例中,加固应用可以确定加密后的密钥对应的第一解密密钥,实现对加密后的密钥的解密,实现了应用的加固与解密。
实施例4:
为了进一步保证数据的安全,在上述各实施例的基础上,本发明实施例中,所述根据所述解密后的密钥,确定所述加密代码的解密代码包括:
采用所述解密后的密钥对存储在所述TEE系统中加密后的白盒表解密,得到解密后的白盒表;
根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
利用密钥生成的白盒对代码进行进一步加密,从而进一步保证了代码的安全。
如果在事先的应用加固时,并非直接用密钥对代码进行加密,而是将代码集成到白盒中,则在对加密代码进行解密时,需要首先获取用于对加密后的白盒表进行解密的密钥,然后才能根据解密后的白盒表,获取到解密代码。
当在TEE系统或SE中确定加密后的密钥后,为了确定加密代码的解密代码,加固TA或加固SE应用需要先采用解密后的密钥对存储在TEE系统中的加密后的白盒表解密,得到解密后的白盒表。所述采用密钥对加密后的白盒表解密的过程属于现有技术,在本发明实施例中不做赘述。
加固TA或加固SE应用根据解密后的白盒表中保存的加密代码与解密代码的对应关系,查找加密代码对应的解密代码,从而实现对加密代码的解密。
由于本发明实施例中利用密钥生成的白盒对代码进行进一步加密,进一步了保证了代码的安全。
实施例5:
为了进一步提高加固应用的应用代码的安全性,在上述各实施例的基础上,本发明实施例中,所述加固应用在REE系统中接收运行指令后,在所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中之前,所述方法还包括:
所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一MAC(Message Authentication Code,消息认证码)信息;
在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;
如果验证通过,进行后续步骤。
由于REE系统容易受到攻击者的攻击,造成REE系统内的代码或资源被篡改,因此加固应用在REE系统接收到运行指令后,需要先对加固应用的安全性进行验证,当验证通过时进行后续的解密过程,从而进一步提高了加固应用的应用代码的安全性。
当加固应用在REE系统中接收到运行指令后,先验证加固应用的安全性,如果验证通过进行后续的解密过程,当验证不通过时,不进行后续的解密过程。验证加固应用的安全性,可以是加固应用通过存储在TEE系统中的待验证的信息,验证加固应用的安全性。
在对加固应用进行验证时,加固应用将待验证的信息存储到TEE系统中,在TEE系统中根据待验证的信息,对加固应用进行验证,如果验证通过,则进行后续解密步骤。
待验证的信息包括加固应用的应用代码,加固应用的标识信息和加固应用的MAC信息。加固应用的应用代码可以是以应用安装包的形式存在,也可以是单独的dex、so等代码。加固应用的标识信息可以为bundle ID(Bundle identifier,应用的标识符),也可以为bundle ID与其版本信息共同确定的标识信息。加固服务器在对应用进行加固时生成第一MAC信息,并将第一MAC信息传输到REE系统中,第一MAC信息为最原始的应用代码确定的第一MAC信息,该第一MAC信息可以用于验证加固应用的安全性。
加固应用将待验证的信息存储到的TEE系统中的过程,与加固应用将加密后的密钥及加密代码存储到TEE系统中的过程相同,在本发明实施例中不做赘述。
加固TA或加固SE应用将验证通过与否的结果返回给REE系统中的加固应用,具体地,如果是加固TA进行验证,加固TA直接将验证通过与否的结果返回给加固应用,如果是加固SE应用进行验证,加固SE应用通过加固TA,将验证通过与否的结果返回给加固应用。
在本发明实施例中,进一步地,所述在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证,如果验证通过包括:
在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;
判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;
如果均为是,则确定验证通过;
如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
根据加固应用当前的应用代码,加固应用的标识信息,和加固应用的MAC信息,可以确定验证通过与否的结果,实现对加固应用的验证。
在TEE系统中预先保存有安全哈希算法,TEE系统中的加固TA可以根据加固应用的应用代码及预先保存的安全哈希算法,将应用代码作为安全哈希算法的输入,将该安全哈希算法的输出确定为应用代码的指纹信息。安全哈希算法可以是SHA-256等SHA(SecureHash Algorithm,安全哈希算法)系列算法。
因此TEE系统中的加固TA确定应用代码的指纹信息后,判断是否保存有之前的应用代码的指纹信息的验证结果,如果有,则继续判断验证结果是否为验证通过,如果是,则确定验证通过。也就是说如果保存有指纹信息对应的验证结果,且验证结果为验证通过,则可以直接确定验证通过,并确定加固应用安全。
如果未保存指纹信息对应的验证结果,和/或验证结果为验证不通过,则需要在SE中进一步验证,以确定加固应用是否安全。
进一步地验证的过程在SE中进行,在SE中加固SE应用根据指纹信息和标识信息,确定应用于验证的第二MAC信息。根据指纹信息和标识信息,确定第二MAC信息的过程与应用加固时生成第一MAC信息的过程需要相同,以保证验证结果的正确性。
在SE中生成用于验证的第二MAC信息后,加固SE应用判断第一MAC信息与第二MAC信息是否相同,如果是,则说明应用代码未发生改变,则确定验证通过,可以进行后续的解密过程,如果否,则说明有可能应用代码已经被修改,则验证不通过。
进一步地,在本次验证判断结束后,还可以TEE系统中保存指纹信息和标识信息的验证通过与否的结果,以便下次验证时进行复用。
如果加固应用接收到验证通过的结果,则继续进行后续步骤,将加密后的密钥及运行指令对应的加密代码传输到TEE系统中。如果加固应用接收到验证不通过的结果,则可以是对用户进行风险提示,如果TEE系统支持GP TEE标准的Trust UI,则可以在TEE系统中控制加固TA直接对用户进行风险提示。
由于本发明实施例中加固应用在REE系统接收到运行指令后,对加固应用的安全性进行验证,当验证通过时进行后续的解密过程,进一步提高了加固应用的应用代码的安全性。
实施例6:
为了实现加固应用的验证,在上述各实施例的基础上,本发明实施例中,所述根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息包括:
根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的HMAC(Hash MessageAuthentication Code,哈希消息认证码)算法,确定用于验证的第二MAC信息;或
根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
在SE中可以确定指纹信息和应用标识对应的解密密钥,根据解密密钥和指纹信息,确定用于验证的第二MAC信息,因此可以根据第一MAC信息与第二MAC信息的比较结果,确定加固应用是否通过验证。
如果在SE中预先保存有标识信息对应的解密密钥,则加固SE应用可以在标识信息与解密密钥的对应关系中查找加固应用的标识信息,从而确定标识信息对应的第二解密密钥。
如果在SE中根据标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法生成对应的第三解密密钥,则加固SE应用将标识信息及预先录入的第二根密钥,作为基于HMAC的第二派生密钥生成算法的输入值,将该基于HMAC的第二派生密钥生成算法的输出值确定为标识信息对应的第三解密密钥。该预先录入的根密钥为非公开的密钥,该基于HMAC的第二派生密钥生成算法可以为仿照TLS1.2标准或TLS1.3标准的任意派生密钥生成算法,只要是与标识信息对应的解密密钥在加密时对应的算法为相逆的算法即可,如果基于TLS1.2标准,则基于HMAC的第二派生密钥生成算法可以为PRF算法,如果基于TLS1.3标准,则基于HMAC的第二派生密钥生成算法可以为HKDF算法。
此外还需注意的是,如果该基于HMAC的第二派生密钥生成算法为仿照TLS1.2标准或TLS1.3标准的任意派生密钥生成算法,则该基于HMAC的第二派生密钥生成算法的输入值包括标识信息、第二根密钥及待生成的第三解密密钥的长度。
第一根密钥与第二根密钥可以相同可以不同,基于HMAC的第一派生密钥生成算法和基于HMAC的第二派生密钥生成算法可以相同可以不同。
第一解密密钥、第二解密密钥与第三解密密钥任两个之间可以相同可以不同,通常第一解密密钥与第二解密密钥不同,第一解密密钥与第三解密密钥不同,对于同一指纹信息来说,第二解密密钥与第三解密密钥相同。
如果基于HMAC的第一派生密钥生成算法生成的第一解密密钥,与第三解密密钥相同,则第一根密钥与第二根密钥相同,待生成的第一解密密钥的长度和待生成的第三解密密钥的长度相同,基于HMAC的第一派生密钥生成算法和基于HMAC的第二派生密钥生成算法也相同。
在SE中确定标识信息对应的解密密钥后,加固SE应用根据指纹信息、标识信息对应的解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。具体地,将指纹信息和标识信息对应的解密密钥,作为HMAC算法的两个输入,经过HMAC算法计算,将HMAC算法输出的MAC信息,确定为用于验证的第二MAC信息。
图3为本发明实施例提供的一种应用验证的流程示意图,包括以下步骤:
S301:加固TA接收验证请求及待验证的信息;
S302:计算待验证信息中的应用代码的指纹信息,判断加固应用是否已被验证过;如果是,进行S303;如果否,进行S304。
如果保存有指纹信息对应的验证结果,则认为加固应用已被验证过,如果未保存有指纹信息对应的验证结果,则认为加固应用未被验证过。
S303:判断加固应用对应的验证结果是否为验证通过,如果否,进行S304;如果是,进行S306。
S304:将指纹信息、加固应用的标识信息及第一MAC信息传入SE。
在SE中根据指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在SE中判断第一MAC信息与所述第二MAC信息相同,则验证通过,如果不同,则验证不通过。
S305:接收SE返回的验证结果,记录指纹信息与验证结果的对应关系。
S306:向加固应用返回验证结果,验证流程结束。
由于本发明实施例中在SE中可以确定指纹信息和应用标识对应的解密密钥,根据解密密钥和指纹信息,确定用于验证的第二MAC信息,因此可以根据第一MAC信息与第二MAC信息的比较结果,确定加固应用是否通过验证。
实施例7:
在上述各实施例的基础上,本发明实施例中,所述将解密后的解密代码在REE系统中运行后,所述方法还包括:
如果在所述解密代码中识别到VMP函数,将所述VMP函数存储到所述TEE系统中;
在所述TEE系统中确定所述VMP函数的私有指令;
如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;
如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
通常为了进一步保证应用代码和资源的安全,对应用中的核心代码,开发者一般加固时会采用VMP进行保护,即用私有指令进行重写原来执行代码指令,然后在运行时,由自定义的虚拟机去解析执行这些私有指令,以达到更好的加固效果。
在对加密代码进行解密,将解密代码在REE系统中运行后,如果在解密代码中识别到VMP函数,则需要在TEE系统中对VMP函数进行解析,确定VMP的私有指令。REE中的加固应用或TEE中的加固TA在执行代码时均有可能遇到VMP代码,如果是加固应用遇到VMP代码则加固应用需要识别到的VMP代码存储到TEE系统中。
TEE中的加固TA在解析VMP函数前,会在加固TA中新建一个函数栈帧frame,用于保存传入参数、栈帧寄存器、返回值等。加固TA获取该VMP函数传入参数数据,并存入该VMP函数对应的函数栈帧中。
加固TA解析出VMP函数的私有指令后,根据私有指令中包含的指令码,确定该私有指令的执行环境为REE系统还是TEE系统。
如果根据指令码指示在REE系统中执行,则根据获取到的传入参数数据,将传入参数数据及指令码传入REE系统,在REE系统中VMP函数对应的虚拟机根据传入参数数据,执行该私有指令,从而完成VMP函数的运行,将VMP函数的执行结果返回该VMP函数对应的函数栈帧中。
如果根据指令码指示在TEE系统中执行,则在TEE系统中VMP函数对应的虚拟机根据获取到的传入参数数据,执行该私有指令,从而完成VMP函数的运行,将VMP函数的执行结果返回该VMP函数对应的函数栈帧中。
加固将函数栈帧frame中保存的返回值对应的执行结果和栈帧寄存器对应控制流,返回给VMP函数的调用者,该调用者为识别到VMP函数的加固应用或加固TA。
由于本发明实施例中采用VMP对应用中的核心代码进行保护,进一步保证了应用代码和资源的安全,达到了更好的加固效果。
实施例8:
为了进一步保证数据的安全性,在上述各实施例的基础上,本发明实施例中,所述方法还包括:
判断所述加固应用的应用代码是否存在被篡改风险;
如果是,在所述REE系统中停止运行所述加固应用。
当加固应用确定应用代码存在被篡改风险时,在REE系统中停止运行加固应用,从而进一步保证了数据的安全性。
在加固后的应用中常常需要一些反调试反模拟器,root检查,设备指纹/设备绑定(device fingprinting/binding)等功能,来保护运行时的代码不被调试修改。因此加固应用判断应用代码是否存在被篡改风险具体可以是,反调试器、反模拟器等功能是否异常,root检查功能是否异常,设备指纹或设备绑定功能是否异常等。
该判断应用代码是否存在被篡改风险,需要在真实的用户设备上运行,而非在模拟唤醒下运行,从而可以检测可能存在的风险以及相应的应对策略,如手机等电子设备已root,则风险较高,相应的应对策略可以是提高检查的等级等。此外,还可以标示当前使用的真实的用户设备,并且每次判断的结果,如可能存在的风险以及相应的应对策略也可以给上报服务器,以使服务器在云端进行进一步地综合分析。
首先,加固TA获取用于进行判断的数据,数据的来源一方面由位于REE中的加固应用中的加固代码收集REE系统中调试器特征信息、模拟器特有信息、IMEI((InternationalMobile Equipment Identity,国际移动设备身份码)等信息,系统时钟漂移、传感器误差等系统指纹,模拟器特有信息包括相比应用初始时增加和减少的文件信息,加固应用将收集到的这些信息传入TEE中的加固TA。数据来源的另一方面,SE中的加固SE应用也会提供一些SE里的信息给TEE的TA应用,比如SE应用空卡序列号、ICCID(Integrated Circuit CardID,集成电路卡识别码)、IMSI(Iternational Mobile Subscriber Identity,国际移动用户识别码)、iOS中的Secure Enclave的UID,卡标准中的CIN(Card ImageNumber,卡图像数据)等ID信息。
通常情况下TEE系统中针对加固应用的不同功能,保存有功能对应的环境保护检测函数,当加固应用获取到不同功能的参数值后,将功能的参数值输入到TEE系统中,在TEE系统中根据功能的参数值,运行功能对应的环境保护检测函数,根据函数运行的输出结果,确定是否该项功能是否存在被篡改的风险。
在TEE中确定环境保护检测结果后,可以通知REE中的加固应用以及TA应用自身,如发现被调试或存在被篡改风险则,应该停止运行加固应用。
另一方面,加固TA将环境保护检测结果上报给服务端,加固TA上报环境保护检测结果给服务端可以是通过REE系统中的加固应用加固代码中转,或者直接调用TEE SocketAPI发送,服务端进行风控分析。此外,加固TA将环境保护检测结果上报给服务端时,可采取与服务器的共享密钥或者已上报的SE公私钥进行认证加密,以保证服务端接收到的数据为正确的检测结果。
由于本发明实施例中判断加固应用的应用代码是否存在被篡改风险,当加固应用确定应用代码存在被篡改风险时,在REE系统中停止运行加固应用,从而进一步保证了数据的安全性。
实施例9:
在上述各实施例的基础上,本发明实施例还提供了一种电子设备,如图4所示,包括:处理器401、存储器402和收发机403;
所述处理器401,用于执行读取存储器402中的程序,执行下列过程:
加固应用在REE系统中控制所述收发机403接收运行指令,所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。
基于同一发明构思,本发明实施例中还提供了一种电子设备,由于上述电子设备解决问题的原理与应用加固的方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
在图4中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器401代表的一个或多个处理器和存储器402代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。收发机403可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器401负责管理总线架构和通常的处理,存储器402可以存储处理器401在执行操作时所使用的数据。
可选的,处理器401可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
所述处理器401,具体用于所述加固应用将所述TEE系统中的加密后的密钥传输到SE中;在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
所述处理器401,具体用于根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
所述处理器401,具体用于采用所述解密后的密钥对存储在所述TEE系统中的加密后的白盒表解密,得到解密后的白盒表;根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
所述处理器401,还用于加固应用在REE系统中控制所述收发机403接收运行指令后,所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一MAC信息;在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;如果验证通过,所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中。
所述处理器401,具体用于在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;如果均为是,则确定验证通过;如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
所述处理器401,具体用于根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息;或根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
所述处理器401,还用于将解密后的解密代码在REE系统中运行后,如果在所述解密代码中识别到VMP函数,将所述VMP函数存储到所述TEE系统中;在所述TEE系统中确定所述VMP函数的私有指令;如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
所述处理器401,还用于所述加固应用判断所述加固应用的应用代码是否存在被篡改风险;如果是,在所述REE系统中停止运行所述加固应用。
在本发明实施例中,在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥确定加密代码的解密代码,加固代码运行在TEE系统中,而非运行在REE系统中,因此攻击者即使攻击了REE系统,也无法对TEE系统内的代码和数据进行修改,因此提高了加固应用的应用代码和资源的安全性,保护了数据安全。
实施例10:
在上述各实施例的基础上,本发明实施例还提供了一种电子设备,如图5所示,包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;
所述存储器503中存储有计算机程序,当所述程序被所述处理器501执行时,使得所述处理器501执行如下步骤:
加固应用在REE系统中接收运行指令;所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。
本发明实施例提供的电子设备可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理、服务器等电子设备。电子设备支持REE系统和TEE系统,电子设备上安装有加固后的加固应用,加固后的加固应用中包括加固后的加密代码。。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口502用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在本发明实施例中,处理器执行存储器上所存放的程序时,实现在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥确定加密代码的解密代码,加固代码运行在TEE系统中,而非运行在REE系统中,因此攻击者即使攻击了REE系统,也无法对TEE系统内的代码和数据进行修改,因此提高了加固应用的应用代码和资源的安全性,保护了数据安全。
实施例11:
在上述各实施例的基础上,本发明实施例还提供了一种计算机存储可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
加固应用在REE系统中接收运行指令;所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
在本发明实施例中提供的计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥确定加密代码的解密代码,加固代码运行在TEE系统中,而非运行在REE系统中,因此攻击者即使攻击了REE系统,也无法对TEE系统内的代码和数据进行修改,因此提高了加固应用的应用代码和资源的安全性,保护了数据安全。
图6为本发明实施例提供的一种应用加固装置示意图,该装置包括:
接收模块61,用于加固应用在REE系统中接收运行指令;
确定模块62,用于所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;
运行模块63,用于将所述解密代码在REE系统中运行。
所述确定模块62,具体用于所述加固应用将所述TEE系统中的加密后的密钥传输到SE中;在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
所述确定模块62,具体用于根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
所述确定模块62,具体用于采用所述解密后的密钥对存储在所述TEE系统中的加密后的白盒表解密,得到解密后的白盒表;根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
所述装置还包括:
验证模块,用于加固应用在REE系统中接收运行指令后,所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一MAC信息;在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;如果验证通过,触发确定模块62。
所述验证模块,具体用于在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;如果均为是,则确定验证通过;如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
所述验证模块,具体用于根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息;或根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
所述装置还包括:
执行模块,用于将解密后的解密代码在REE系统中运行后,如果在所述解密代码中识别到VMP函数,将所述VMP函数存储到所述TEE系统中;在所述TEE系统中确定所述VMP函数的私有指令;如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
所述装置还包括:
检测模块,用于判断所述加固应用的应用代码是否存在被篡改风险;如果是,在所述REE系统中停止运行所述加固应用。
本发明实施例中在TEE系统中确定加密后的密钥的第一解密密钥,根据第一解密密钥确定解密后的密钥,根据解密后的密钥确定加密代码的解密代码,加固代码运行在TEE系统中,而非运行在REE系统中,因此攻击者即使攻击了REE系统,也无法对TEE系统内的代码和数据进行修改,因此提高了加固应用的应用代码和资源的安全性,保护了数据安全。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (21)

1.一种应用加固的方法,其特征在于,该方法包括:
加固应用在富执行环境REE系统中接收运行指令;
所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;
将所述解密代码在REE系统中运行。
2.如权利要求1所述的方法,其特征在于,所述在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥包括:
所述加固应用将所述TEE系统中的加密后的密钥传输到安全元件SE中;
在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
3.如权利要求1或2所述的方法,其特征在于,所述确定加密后的密钥的第一解密密钥包括:
根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或
根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
4.如权利要求1所述的方法,其特征在于,所述根据所述解密后的密钥,确定所述加密代码的解密代码包括:
采用所述解密后的密钥对存储在所述TEE系统中加密后的白盒表解密,得到解密后的白盒表;
根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
5.如权利要求1所述的方法,其特征在于,所述加固应用在REE系统中接收运行指令后,在所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中之前,所述方法还包括:
所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一消息认证码MAC信息;
在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;
如果验证通过,进行后续步骤。
6.如权利要求5所述的方法,其特征在于,所述在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证,如果验证通过包括:
在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;
判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;
如果均为是,则确定验证通过;
如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
7.如权利要求6所述的方法,其特征在于,所述根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息包括:
根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的哈希消息认证码HMAC算法,确定用于验证的第二MAC信息;或
根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
8.如权利要求1所述的方法,其特征在于,所述将解密后的解密代码在REE系统中运行后,所述方法还包括:
如果在所述解密代码中识别到虚拟机加固VMP函数,将所述VMP函数存储到所述TEE系统中;
在所述TEE系统中确定所述VMP函数的私有指令;
如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;
如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
判断所述加固应用的应用代码是否存在被篡改风险;
如果是,在所述REE系统中停止运行所述加固应用。
10.一种应用加固的装置,其特征在于,该装置包括:
接收模块,用于加固应用在富执行环境REE系统中接收运行指令;
确定模块,用于所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;
运行模块,用于将所述解密代码在REE系统中运行。
11.一种电子设备,其特征在于,包括存储器、处理器和收发机;
所述处理器,用于读取所述存储器中的程序,执行下列过程:加固应用在富执行环境REE系统中控制所述收发机接收运行指令,所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到可信执行环境TEE系统中,在所述TEE系统中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥,根据所述解密后的密钥,确定所述加密代码的解密代码;将所述解密代码在REE系统中运行。
12.如权利要求11所述的电子设备,其特征在于,所述处理器,具体用于所述加固应用将所述TEE系统中的加密后的密钥传输到安全元件SE中;在所述SE中确定加密后的密钥的第一解密密钥,根据所述第一解密密钥对所述加密后的密钥解密,确定解密后的密钥。
13.如权利要求11或12所述的电子设备,其特征在于,所述处理器,具体用于根据预先保存的加密后的密钥与解密密钥的对应关系,确定所述加密后的密钥的第一解密密钥;或根据获取的所述加固应用的标识信息、预先录入的第一根密钥及预先保存的基于HMAC的第一派生密钥生成算法,确定所述加密后的密钥的第一解密密钥。
14.如权利要求11所述的电子设备,其特征在于,所述处理器,具体用于采用所述解密后的密钥对存储在所述TEE系统中的加密后的白盒表解密,得到解密后的白盒表;根据所述解密后的白盒表中保存的加密代码与解密代码的对应关系,查找所述加密代码对应的解密代码。
15.如权利要求11所述的电子设备,其特征在于,所述处理器,还用于加固应用在REE系统中控制所述收发机接收运行指令后,所述加固应用将待验证的信息传输到所述TEE系统中,其中所述待验证的信息包括:所述加固应用的应用代码、所述加固应用的标识信息和所述加固应用的第一消息认证码MAC信息;在所述TEE系统中根据所述待验证的信息,对所述加固应用进行验证;如果验证通过,所述加固应用将加密后的密钥及所述运行指令对应的加密代码传输到TEE系统中。
16.如权利要求15所述的电子设备,其特征在于,所述处理器,具体用于在所述TEE系统中根据所述应用代码及预先保存的安全哈希算法,确定所述应用代码的指纹信息;判断是否保存有所述指纹信息对应的验证结果,且所述验证结果是否为验证通过;如果均为是,则确定验证通过;如果任一判断结果为否,在SE中根据所述指纹信息和所述标识信息,确定用于验证的第二MAC信息,如果在所述SE中判断所述第一MAC信息与所述第二MAC信息相同,则确定验证通过。
17.如权利要求16所述的电子设备,其特征在于,所述处理器,具体用于根据预先保存的标识信息与解密密钥的对应关系,确定所述标识信息对应的第二解密密钥;根据所述指纹信息、所述第二解密密钥及预设的哈希消息认证码HMAC算法,确定用于验证的第二MAC信息;或根据所述标识信息、预先录入的第二根密钥及预先保存的基于HMAC的第二派生密钥生成算法,确定所述标识信息对应的第三解密密钥;根据所述指纹信息、所述第三解密密钥及预设的HMAC算法,确定用于验证的第二MAC信息。
18.如权利要求11所述的电子设备,其特征在于,所述处理器,还用于将解密后的解密代码在REE系统中运行后,如果在所述解密代码中识别到虚拟机加固VMP函数,将所述VMP函数存储到所述TEE系统中;在所述TEE系统中确定所述VMP函数的私有指令;如果所述私有指令中包含的指令码指示在所述REE系统中执行,获取所述私有指令的传入参数数据,在所述REE系统中根据所述传入参数数据,执行所述私有指令;如果所述私有指令中包含的指令码指示在所述TEE系统中执行,根据获取的所述私有指令的传入参数数据,执行所述私有指令。
19.如权利要求11所述的电子设备,其特征在于,所述处理器,还用于判断所述加固应用的应用代码是否存在被篡改风险;如果是,在所述REE系统中停止运行所述加固应用。
20.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
所述存储器中存储有计算机程序,当所述程序被所述处理器执行时,使得所述处理器执行权利要求1~9任一项所述方法的步骤。
21.一种计算机可读存储介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行权利要求1~9任一项所述方法的步骤。
CN201711434423.4A 2017-12-26 2017-12-26 一种应用加固的方法、装置、电子设备及存储介质 Pending CN109960903A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711434423.4A CN109960903A (zh) 2017-12-26 2017-12-26 一种应用加固的方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711434423.4A CN109960903A (zh) 2017-12-26 2017-12-26 一种应用加固的方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN109960903A true CN109960903A (zh) 2019-07-02

Family

ID=67022321

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711434423.4A Pending CN109960903A (zh) 2017-12-26 2017-12-26 一种应用加固的方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN109960903A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110690963A (zh) * 2019-09-25 2020-01-14 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
CN110933028A (zh) * 2019-10-24 2020-03-27 中移(杭州)信息技术有限公司 报文传输方法、装置、网络设备及存储介质
CN111090865A (zh) * 2019-12-17 2020-05-01 支付宝(杭州)信息技术有限公司 一种密钥授权方法和系统
CN111143247A (zh) * 2019-12-31 2020-05-12 海光信息技术有限公司 存储装置数据完整性保护方法及其控制器、片上系统
CN111339536A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 一种基于安全执行环境的数据验证方法及装置
CN111431718A (zh) * 2020-04-01 2020-07-17 中国人民解放军国防科技大学 基于tee扩展的计算机通用安全加密转换层方法及系统
CN111444553A (zh) * 2020-04-01 2020-07-24 中国人民解放军国防科技大学 支持tee扩展的安全存储实现方法及系统
CN111737659A (zh) * 2020-06-23 2020-10-02 杭州海康威视数字技术股份有限公司 基于tee实现代码加固的方法及装置
CN113821835A (zh) * 2021-11-24 2021-12-21 飞腾信息技术有限公司 密钥管理方法、密钥管理装置和计算设备
CN114357488A (zh) * 2022-01-04 2022-04-15 深圳市智百威科技发展有限公司 一种数据加密系统及方法
CN116049913A (zh) * 2022-05-24 2023-05-02 荣耀终端有限公司 数据保存方法、装置、电子设备及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077533A (zh) * 2014-07-17 2014-10-01 北京握奇智能科技有限公司 一种操作敏感数据的方法和设备
US8898769B2 (en) * 2012-11-16 2014-11-25 At&T Intellectual Property I, Lp Methods for provisioning universal integrated circuit cards
CN104992082A (zh) * 2015-08-10 2015-10-21 深圳数字电视国家工程实验室股份有限公司 软件授权方法、装置及电子设备
CN105678191A (zh) * 2016-03-02 2016-06-15 上海瓶钵信息科技有限公司 利用SoC内部存储提高系统安全性的方法、终端与系统
US20170046537A1 (en) * 2015-08-10 2017-02-16 Samsung Electronics Co., Ltd. Electronic device against side channel attacks
CN106464488A (zh) * 2015-08-28 2017-02-22 华为技术有限公司 信息传输方法及移动设备
CN107392055A (zh) * 2017-07-20 2017-11-24 深圳市金立通信设备有限公司 一种双系统安全芯片控制方法、终端、计算机可读存储介质及基于安全芯片的双系统架构
CN107395589A (zh) * 2017-07-18 2017-11-24 深圳市金立通信设备有限公司 指纹信息获取方法及终端

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898769B2 (en) * 2012-11-16 2014-11-25 At&T Intellectual Property I, Lp Methods for provisioning universal integrated circuit cards
CN104077533A (zh) * 2014-07-17 2014-10-01 北京握奇智能科技有限公司 一种操作敏感数据的方法和设备
CN104992082A (zh) * 2015-08-10 2015-10-21 深圳数字电视国家工程实验室股份有限公司 软件授权方法、装置及电子设备
US20170046537A1 (en) * 2015-08-10 2017-02-16 Samsung Electronics Co., Ltd. Electronic device against side channel attacks
CN106464488A (zh) * 2015-08-28 2017-02-22 华为技术有限公司 信息传输方法及移动设备
CN105678191A (zh) * 2016-03-02 2016-06-15 上海瓶钵信息科技有限公司 利用SoC内部存储提高系统安全性的方法、终端与系统
CN107395589A (zh) * 2017-07-18 2017-11-24 深圳市金立通信设备有限公司 指纹信息获取方法及终端
CN107392055A (zh) * 2017-07-20 2017-11-24 深圳市金立通信设备有限公司 一种双系统安全芯片控制方法、终端、计算机可读存储介质及基于安全芯片的双系统架构

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110690963A (zh) * 2019-09-25 2020-01-14 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
WO2021057181A1 (zh) * 2019-09-25 2021-04-01 支付宝(杭州)信息技术有限公司 基于fpga的密钥协商方法及装置
CN110933028A (zh) * 2019-10-24 2020-03-27 中移(杭州)信息技术有限公司 报文传输方法、装置、网络设备及存储介质
CN111090865A (zh) * 2019-12-17 2020-05-01 支付宝(杭州)信息技术有限公司 一种密钥授权方法和系统
CN111143247A (zh) * 2019-12-31 2020-05-12 海光信息技术有限公司 存储装置数据完整性保护方法及其控制器、片上系统
CN111143247B (zh) * 2019-12-31 2023-06-30 海光信息技术股份有限公司 存储装置数据完整性保护方法及其控制器、片上系统
CN111444553A (zh) * 2020-04-01 2020-07-24 中国人民解放军国防科技大学 支持tee扩展的安全存储实现方法及系统
CN111431718A (zh) * 2020-04-01 2020-07-17 中国人民解放军国防科技大学 基于tee扩展的计算机通用安全加密转换层方法及系统
CN111431718B (zh) * 2020-04-01 2022-12-27 中国人民解放军国防科技大学 基于tee扩展的计算机通用安全加密转换层方法及系统
CN111339536A (zh) * 2020-05-15 2020-06-26 支付宝(杭州)信息技术有限公司 一种基于安全执行环境的数据验证方法及装置
CN111737659A (zh) * 2020-06-23 2020-10-02 杭州海康威视数字技术股份有限公司 基于tee实现代码加固的方法及装置
CN113821835A (zh) * 2021-11-24 2021-12-21 飞腾信息技术有限公司 密钥管理方法、密钥管理装置和计算设备
CN114357488A (zh) * 2022-01-04 2022-04-15 深圳市智百威科技发展有限公司 一种数据加密系统及方法
CN116049913A (zh) * 2022-05-24 2023-05-02 荣耀终端有限公司 数据保存方法、装置、电子设备及计算机可读存储介质
CN116049913B (zh) * 2022-05-24 2023-11-03 荣耀终端有限公司 数据保存方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN109960903A (zh) 一种应用加固的方法、装置、电子设备及存储介质
Wang et al. Enabling security-enhanced attestation with Intel SGX for remote terminal and IoT
CN103038745B (zh) 扩展完整性测量
CN104462965B (zh) 应用程序完整性验证方法及网络设备
CN107679393B (zh) 基于可信执行环境的Android完整性验证方法和装置
EP2795829B1 (en) Cryptographic system and methodology for securing software cryptography
JP2019505887A (ja) 信頼できる実行環境を有するモバイル装置
CN105718807B (zh) 基于软tcm和可信软件栈的安卓系统及其可信认证系统与方法
WO2020192406A1 (zh) 数据存储、验证方法及装置
CN106055936B (zh) 可执行程序数据包加密/解密方法及装置
CN103905461B (zh) 一种基于可信第三方的云服务行为可信证明方法和系统
CN106612180A (zh) 实现会话标识同步的方法及装置
Kaur et al. A security assessment of HCE-NFC enabled e-wallet banking android apps
WO2021012978A1 (zh) 检测硬件的方法、装置、设备及存储介质
CN111191195A (zh) 一种用于保护apk的方法和装置
CN107992729A (zh) 一种控制方法、终端及用户识别模块卡
CN107196907A (zh) 一种安卓so文件的保护方法及装置
CN104104650B (zh) 数据文件访问方法及终端设备
Gallery et al. Trusted computing: Security and applications
Liu et al. $ LiveForen $: Ensuring Live Forensic Integrity in the Cloud
CN108416224A (zh) 一种数据加解密方法及装置
Yalew et al. TruApp: A TrustZone-based authenticity detection service for mobile apps
CN109299944B (zh) 一种交易过程中的数据加密方法、系统及终端
Cooijmans et al. Secure key storage and secure computation in Android
CN110602051B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190702