CN115756314A - Nvram数据处理方法、电子设备和可读存储介质 - Google Patents
Nvram数据处理方法、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN115756314A CN115756314A CN202211391004.8A CN202211391004A CN115756314A CN 115756314 A CN115756314 A CN 115756314A CN 202211391004 A CN202211391004 A CN 202211391004A CN 115756314 A CN115756314 A CN 115756314A
- Authority
- CN
- China
- Prior art keywords
- nvram
- data
- instruction
- flash
- module
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 353
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000013500 data storage Methods 0.000 claims description 17
- 230000003068 static effect Effects 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 4
- 238000013524 data verification Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 241000153282 Theope Species 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种NVRAM数据处理方法、电子设备和可读存储介质,属于NVRAM技术领域。NVRAM数据处理方法包括:通过TPM生成NVRAM数据处理操作对应的第一处理指令,第一处理指令包括第二处理指令;通过NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块;通过第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,命令包括写指令对应的写命令或者读指令对应的读命令;通过第一flash驱动模块执行命令对应的数据处理,数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。本申请保障FTPM在电子设备的各阶段均可以写入或者读取NVRAM数据,提升FTPM功能有效率。
Description
技术领域
本申请属于NVRAM技术领域,具体涉及一种NVRAM数据处理方法、电子设备和可读存储介质。
背景技术
可信平台模块(TrusTed PlaTform Module,TPM)是一种含有密码运算和存储部件的小型芯片系统,其用于安全地存储用于验证平台安全性的信息,比如密码、证书或加密密钥等信息。而随着精简指令集计算机(Advanced RISC(Reduced Instruction SetComputer,ARM)技术与云计算的发展,用于解决ARM相关的技术安全可信问题的ARM信任区(TrustZone)可信技术应运而生。为了兼容TPM,ARM平台中利用TrustZone技术可以实现一种基于固件的可信平台模块(firmware based TrusTed PlaTform Module,FTPM)以实现与TPM相同的功能。其中,FTPM参与的数据过程中,FTPM需要将持久化的数据存储至非易失性随机访问存储器(Non-Volatile Random Access Memory,NVRAM)。
目前,基于TrustZone的电子设备通常包括:富执行环境(rich executionenvironment,REE)和可信执行环境(trusted executionenvironment,TEE)。TEE中运行的TEE操作系统(Operating System,OS)可以支持Linux文件系统作为NVRAM存储介质。可以理解为支持FTPM将持久化的NVRAM数据存储至Linux文件系统。
但是,由于Linux文件系统只能在电子设备的操作系统(包括TEE OS)启动运行后被访问,而FTPM作为电子设备启动过程中的一个重要安全组件,其也需要在操作系统启动之前运行。因此,采用Linux文件系统作为NVRAM存储介质的方式,使得FTPM在操作系统运行之前的阶段无法写入或者读取NVRAM数据,导致FTPM的功能使用受限,降低FTPM功能有效率。
发明内容
本申请实施例的目的是提供一种NVRAM数据处理方法、电子设备和可读存储介质,能够解决FTPM的功能使用受限,降低FTPM功能有效率的问题。
为了解决上述技术问题,本申请是这样实现的:
第一方面,本申请实施例提供了一种NVRAM数据处理方法,应用于电子设备,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;所述方法包括:
在所述TPM接收到NVRAM数据处理操作时,通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令,所述第一处理指令包括第二处理指令,所述第二处理指令包括所述NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令;
通过所述NVRAM驱动模块获取并解析所述第一处理指令得到所述第二处理指令,将所述第二处理指令发送至所述第二flash驱动模块;
通过所述第二flash驱动模块将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,所述命令包括所述写指令对应的写命令或者所述读指令对应的读命令;
通过所述第一flash驱动模块执行所述命令对应的数据处理,所述数据处理包括所述写命令对应的在所述目标存储空间写入NVRAM数据的处理,或者所述读命令对应的从所述目标存储空间读取NVRAM数据的处理。
可选地,在所述第二处理指令包括所述写指令的情况下,所述第二处理指令包括待写入的NVRAM数据;所述方法还包括:
通过所述第二flash驱动模块对所述待写入的NVRAM数据进行加密处理,得到NVRAM写入数据;
通过所述第二flash驱动模块将所述NVRAM写入数据存储至共享内存,基于所述NVRAM写入数据在所述共享内存中的地址以及所述写命令生成第一安全监控呼叫SMC指令;
所述通过所述第二flash驱动模块将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,包括:通过所述第二flash驱动模块将所述第一SMC指令通过所述ATF发送至所述第一flash驱动模块。
可选地,所述通过所述第一flash驱动模块执行所述命令对应的数据处理,包括:
通过所述第一flash驱动模块基于所述第一SMC指令从所述共享内存中读取所述NVRAM写入数据;
通过所述第一flash驱动模块在所述目标存储空间中写入所述NVRAM写入数据。
可选地,所述通过所述第二flash驱动模块对所述待写入的NVRAM数据进行加密处理,得到NVRAM写入数据,包括:
通过所述第二flash驱动模块采用文件存储密钥对所述待写入的NVRAM数据进行加密处理,得到NVRAM密文数据;
通过所述第二flash驱动模块基于密钥加密数据对所述文件存储密钥进行加密处理,得到加密密钥,所述密钥加密数据包括所述电子设备的物理标识码、所述电子设备的处理器的物理标识码和所述FTPM TA的通用唯一识别码;
通过所述第二flash驱动模块生成NVRAM写入数据,所述NVRAM写入数据包括所述NVRAM密文数据和所述加密密钥。
可选地,所述通过所述第二flash驱动模块基于密钥加密数据对所述文件存储密钥进行加密处理,得到加密密钥,包括:
通过所述第二flash驱动模块基于所述电子设备的物理标识码、静态字符串和所述处理器的物理标识码采用密钥相关的哈希运算消息认证码HMAC算法,得到安全存储密钥;
通过所述第二flash驱动模块基于所述安全存储密钥和所述FTPM TA的通用唯一识别码采用所述HMAC算法,得到可信应用存储密钥;
通过所述第二flash驱动模块基于所述可信应用存储密钥对所述文件存储密钥进行加密处理,得到加密密钥。
可选地,在所述第二处理指令包括所述读指令的情况下,所述方法还包括:
通过所述第一flash驱动模块将NVRAM读取数据存储至所述共享内存,基于所述NVRAM读取数据在所述共享内存中的地址生成第二SMC指令,所述NVRAM读取数据为所述第一flash驱动模块执行所述读命令对应的数据处理以从所述目标存储空间中读取的NVRAM数据;
通过所述第一flash驱动模块将所述第二SMC指令通过所述ATF发送至所述第二flash驱动模块。
可选地,所述方法还包括:
通过所述第二flash驱动模块基于所述第二SMC指令从所述共享内存中读取所述NVRAM读取数据;
通过所述第二flash驱动模块对所述NVRAM读取数据进行解密处理,得到NVRAM明文数据,将所述NVRAM明文数据发送至所述NVRAM驱动模块,以供所述电子设备使用所述NVRAM明文数据。
可选地,在通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令之前,所述方法还包括:
通过所述REE加载统一可扩展固件接口UEFI固件;
通过所述UEFI固件加载OPTEE客户端,分配共享内存;
通过所述REE加载FTPM驱动以启动所述TPM;
在通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令之后,所述方法还包括:
通过所述REE运行的OPTEE客户端将所述第一处理指令存储至共享内存,基于所述第一处理指令在所述共享内存中的地址生成第三SMC指令,将所述第三SMC指令通过所述ATF发送至所述NVRAM驱动模块;
所述通过所述NVRAM驱动模块获取并解析所述第一处理指令得到所述第二处理指令,包括:通过所述NVRAM驱动模块基于所述第三SMC指令从所述共享内存中读取所述第一处理指令,解析所述第一处理指令得到所述第二处理指令。
可选地,所述REE运行有Linux操作系统,所述第一flash驱动模块运行于所述Linux操作系统的内核;所述TEE运行有TEE操作系统TEE OS,所述第二flash驱动模块运行于所述TEE OS的内核。
第二方面,本申请实施例提供了一种电子设备,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;
所述TPM用于在接收到NVRAM数据处理操作时,生成所述NVRAM数据处理操作对应的第一处理指令,所述第一处理指令包括第二处理指令,所述第二处理指令包括所述NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令;
所述NVRAM驱动模块用于获取并解析所述第一处理指令得到所述第二处理指令,将所述第二处理指令发送至所述第二flash驱动模块;
所述第二flash驱动模块用于将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,所述命令包括所述写指令对应的写命令或者所述读指令对应的读命令;
所述第一flash驱动模块用于执行所述命令对应的数据处理,所述数据处理包括所述写命令对应的在所述目标存储空间写入NVRAM数据的处理,或者所述读命令对应的从所述目标存储空间读取NVRAM数据的处理。
第三方面,本申请实施例提供了一种电子设备,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;
所述电子设备还包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的NVRAM数据处理方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的NVRAM数据处理方法的步骤。
第六方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
在本申请实施例中,在电子设备的REE中的TPM接收到NVRAM数据处理操作,生成NVRAM数据处理操作对应的第一处理指令之后,电子设备可以先通过TEE中FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。进而通过TEE的第二flash驱动模块向REE的第一flash驱动模块传输第二处理指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,向电子设备的flash存储模块中目标存储空间内写入NVRAM数据,或者,从flash存储模块的目标存储空间内读取NVRAM数据。其中,第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。第二处理指令对应的命令包括写指令对应的写命令或者读指令对应的读命令。
该技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
附图说明
图1是本申请提供的一种电子设备的框图;
图2是本申请实施例提供的一种密钥加密方法的原理示意图;
图3是本申请实施例提供的一种NVRAM数据处理方法的流程图之一;
图4是本申请实施例提供的一种NVRAM数据处理方法的流程图之二;
图5是本申请实施例提供的一种NVRAM数据处理方法的流程图之三;
图6是本申请实施例提供的一种NVRAM数据处理方法的流程图之四;
图7是本申请实施例提供的一种NVRAM数据处理方法的流程图之五;
图8是本申请实施例提供的一种NVRAM数据处理方法的流程图之六;
图9是本申请提供的另一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
为了便于理解,下述先本申请所涉及的部分名词。
TEE:运行在安全世界(Secure World,SW)为TEE OS提供执行环境。
REE:运行正常世界(Normal World,NW)为普通操作系统提供执行环境。普通操作系统包括:Linux OS,Windows OS等。
TrustZone:是ARMv6版本后处理器上的一种安全架构,其将处理器(centralprocessing unit,CPU)的工作状态分为SWS和NWS。TrustZone目的在于构建一个安全框架来抵挡各种可能的攻击,保证CPU运行安全。
TEE OS:在TEE中运行的操作系统,称为可信操作系统,如开源的OPTEE(OPTEE-OS)。
REE OS:在REE中运行的基础固件和操作系统等。如统一可扩展固件接口(UnifiedExtensible Firmware Interface,UEFI)、Uboot、Linux OS、Windows OS等。
FTPM可信应用(Trust Appliation,TA):FTPM在实现过程中,运行于TEE OS中的部分模块,主要用于提供FTPM计算逻辑的实现。
ARM可信固件(ARM Trusted Firmware,ATF):ARM官方提供的底层固件,该固件统一了ARM底层接口标准,不同厂商,可根据芯片特性自定义接口实现ATF的代码。
UEFI:基本输入输出系统(Basic Input Output System,BIOS)的一种实现方式。固化在存储芯片中的程序,一般用于完成计算机硬件初始化、硬件自检、为操作系统提供硬件管理接口等功能。
RPMB(Replay Protected Memory Block):RPMB Partition是eMMC中的一个具有安全特性的分区。
请参考图1,其示出了本申请提供的一种电子设备的框图。可选地,本申请实施例提供的电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,非移动电子设备可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。如图1所示,电子设备100包括:
REE 101、TEE 102和ARM ATF 103。ARM ATF 103简称ATF 103。REE 101包括:TPM1011、第一flash驱动模块1012和flash存储模块。flash存储模块中目标存储空间用于存储NVRAM数据。TEE 102包括第二flash驱动模块1021和FTPM TA 1022的NVRAM驱动模块10221。
其中,TPM 1011又称为TPM设备1011。目标存储空间可以为flash存储模块中被划分的一块固定的存储空间,该目标存储空间被配置为存储NVRAM数据的专有存储空间。第一flash驱动模块1012中存储有目标存储空间的地址。可选地,flash存储模块可以为串行外设接口(Serial Peripheral Interface,SPI)。例如NOR Flash。
TPM 1011用于在接收到NVRAM数据处理操作时,生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。第一处理指令可以称为TPM指令。第二处理指令可以称为NVRAM指令,其包括写NVRAM指令或者读NVRAM指令。写NVRAM指令用于指示将待写入的NVRAM数据写入至目标存储空间。写NVRAM指令可以包括待写入的NVRAM数据。读NVRAM指令用于指示将目标存储空间内存储的NVRAM数据读出。
本申请实施例中,NVRAM数据处理操作可以包括NVRAM存储处理操作和NVRAM读取处理操作。在一种应用场景中,用户可以通过电子设备运行的TPM设备执行对TPM设备需要持久化存储的NVRAM数据的存储操作。或者,用户可以通过TPM设备执行对目标存储空间存储的NVRAM数据的读取操作。在另一种应用场景中,TPM设备在执行完成第一处理时可以自动接收到NVRAM数据存储操作,以将经过第一处理后生成的需要持久化存储的NVRAM数据存储至flash存储模块。或者,TPM设备在执行第二处理时可以自动接收到NVRAM数据读取操作,以将第二处理所需的NVRAM数据从flash存储模块中读取。
NVRAM驱动模块10221用于获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块1021。
第二flash驱动模块1021用于将第二处理指令对应的命令通过ATF 103发送至第一flash驱动模块1012。命令包括写指令对应的写命令或者读指令对应的读命令。其中,TEE102运行有TEE OS,第二flash驱动模块1021可以运行于TEE OS的内核,由TEE OS的内核对第二flash驱动模块1021提供支持。第二flash驱动模块1021在接收到第二处理指令后,生成第二处理指令对应的命令,并将命令通过ATF 103发送至第一flash驱动模块1012。
第一flash驱动模块1012用于执行命令对应的数据处理。数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。本申请一些实施例中,第一flash驱动模块1012可以根据其存储的目标存储空间的地址执行命令对应的数据处理。
其中,REE 101运行有REE OS,第一flash驱动模块1012可以运行于REE OS的内核,由REE OS的内核对第一flash驱动模块1012提供支持。该REE OS可以为Linux操作系统。可选地,写命令可以包括待写入的NVRAM数据。第一flash驱动模块1012在接收到写命令后,可以解析写命令得到写命令中由写指令提供的待写入的NVRAM数据,并执行写命令对应的数据处理,以在目标存储空间写入NVRAM数据。可选地,请继续参考图1,REE运行有Linux操作系统,第一flash驱动模块运行于Linux操作系统的内核;TEE运行有TEE操作系统TEE OS,第二flash驱动模块运行于TEE OS的内核。
本申请实施例中,TEE中FTPM TA的NVRAM驱动模块可以根据TPM生成的用于读取或者写入NVRAM数据的第一处理指令,向TEE的第二flash驱动模块传输第一处理指令包括的针对NVRAM数据的写指令或者读指令。TEE的第二flash驱动模块可以向REE的第一flash驱动模块传输写指令对应的命令或者读指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,以向flash存储模块中写入NVRAM数据,或者,从flash存储模块中读取NVRAM数据。
本申请技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
进一步地,相关技术中,TEE中运行的TEE OS也支持RPMB作为NVRAM存储介质。但是,RPMB通常在移动终端中配置较多,而在ARM服务器上配置较少,且不易通过设备扩展来为ARM服务器配置RPMB。因而,采用RPMB作为NVRAM存储介质具有一定的电子设备类型的局限性。而各类电子设备中均具有flash,因而相较于相关技术,采用电子设备的flash作为NVRAM存储介质的普适性较高。
本申请实施例中,NVRAM数据处理操作包括NVRAM存储处理操作和NVRAM读取处理操作。相应的,第二处理指令包括:NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。本申请实施例以第二处理指令分别包括写指令和读指令这两种情况进行进一步说明。
针对存储NVRAM数据的情况:第二处理指令包括写指令和待写入的NVRAM数据。
第二flash驱动模块1021还用于:对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据。将NVRAM写入数据存储至共享内存,基于NVRAM写入数据在共享内存中的地址以及写命令生成第一安全监控呼叫(SecureMonitor Call,SMC)指令。将第一SMC指令通过ATF103发送至第一flash驱动模块1012。
其中,第二flash驱动模块1021可以在获取第二处理指令后,解析第二处理指令得到待写入的NVRAM数据,以对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据。可选地,第二flash驱动模块1021对待写入的NVRAM数据进行加密处理的算法可以包括AES、RC4、DES、3DES、RC5、RC6等。
本申请实施例中,共享内存可以是电子设备在UEFI阶段中通过加载UEFI固件,使得UEFI固件为REE 101和TEE 102交互分配的专有内存。第二flash驱动模块1021将NVRAM写入数据存储至共享内存,并记录NVRAM写入数据在共享内存中的地址。其中,该地址可以包括NVRAM写入数据在共享内存中的首地址以及NVRAM写入数据的数据长度。第二flash驱动模块1021基于NVRAM写入数据在共享内存中的地址以及写命令生成第一SMC指令。第一SMC指令包括NVRAM写入数据在共享内存中的地址以及写命令。
相应可选地,第一flash驱动模块1012还用于:基于第一SMC指令从共享内存中读取NVRAM写入数据,在目标存储空间中写入NVRAM写入数据,以执行写命令对应的数据处理。
其中,第一flash驱动模块1012可以在通过ATF 103接收到第一SMC指令后,解析第一SMC指令得到NVRAM写入数据在共享内存中的地址以及写命令。第一flash驱动模块1012基于该地址从共享内存中读取NVRAM写入数据,执行写命令对应的数据处理,以在flash存储模块内目标存储空间中写入NVRAM写入数据。
这样,由于增加了TEE OS安全存储机制,即第二flash驱动模块可以对待写入的NVRAM数据进行加密处理,以使得在flash存储模块中存储的NVRAM数据为加密处理后的NVRAM写入数据。因此,提升了flash存储模块中存储的NVRAM数据的安全性。
如前所述,第二flash驱动模块1021对待写入的NVRAM数据进行加密处理得到NVRAM写入数据的实现过程中可以采用的加密算法有多种,本申请实施例以下述一种加密过程情况进行示例性说明。
可选地,第二flash驱动模块1021还用于:采用文件存储密钥对待写入的NVRAM数据进行加密处理,得到NVRAM密文数据。基于密钥加密数据对文件存储密钥进行加密处理,得到加密密钥。生成NVRAM写入数据,NVRAM写入数据包括NVRAM密文数据和加密密钥。
其中,密钥加密数据包括电子设备的物理标识码、电子设备的处理器的物理标识码和FTPM TA的通用唯一识别码。文件存储密钥可以采用随机数生成。可选地,第二flash驱动模块1021采用文件存储密钥对待写入的NVRAM数据进行加密处理的算法可以包括AES、RC4、DES、3DES、RC5、RC6、AES_CBC算法等。基于密钥加密数据对文件存储密钥进行加密处理的算法可以包括密钥相关的哈希运算消息认证码(Hash-based Message AuthenticationCode,HMAC)、AES、RC4、DES、3DES、RC5、RC6等。
示例地,如图2所示,第二flash驱动模块1021还用于:基于电子设备的物理标识码(HUK)、静态字符串(String_for_ssk_gen)和电子设备的处理器的物理标识码(Chip_ID)采用HMAC算法,得到安全存储密钥(Secure Storage KEY,SSK)。基于安全存储密钥和FTPM TA的通用唯一识别码(UUID)采用HMAC算法,得到可信应用存储密钥(Trusted ApplicantStorage KEY,TSK)。基于可信应用存储密钥对文件存储密钥(FEK)进行加密处理,得到加密密钥(enc_fek)。需要说明的是,静态字符串可以为固定字符。图2中以基于可信应用存储密钥采用AES_CBC算法对文件存储密钥进行加密处理为例进行示意性说明。
可选地,第一flash驱动模块1012还用于执行写命令对应的数据处理之后,生成处理状态。基于处理状态生成第四SMC指令,通过ATF 103将第四SMC指令传输至第二flash驱动模块1021。第二flash驱动模块1021还用于将接收到的第四SMC指令传输至NVRAM驱动模块10221,以电子设备示警写命令的执行情况。其中,处理状态包括但不限于:写入完成状态或者未写入成功状态。写入完成状态表明NVRAM数据写入成功,即写命令执行成功。未写入成功状态表明NVRAM数据写入未成功,即写命令执行失败。
针对存储NVRAM数据的情况:第二处理指令包括读指令。
可选地,第一flash驱动模块1012还用于:将NVRAM读取数据存储至共享内存,基于NVRAM读取数据在共享内存中的地址生成第二SMC指令,将第二SMC指令通过ATF 103发送至第二flash驱动模块1021。
其中,NVRAM读取数据为第一flash驱动模块执行读命令对应的数据处理以从目标存储空间中读取的NVRAM数据。示例地,第一flash驱动模块基于目标存储空间在flash存储模块中的地址,从目标存储空间中读取其存储的NVRAM数据。
需要说明的是,在flash存储模块中存储的NVRAM数据为NVRAM写入数据,即第二flash驱动模块1021具有对待写入的NVRAM数据进行加密处理的功能的情况下,NVRAM读取数据为加密处理后的数据。
可选地,第二flash驱动模块1021还用于:基于第二SMC指令从共享内存中读取NVRAM读取数据。对NVRAM读取数据进行解密处理,得到NVRAM明文数据,将NVRAM明文数据发送至NVRAM驱动模块10221,以供电子设备使用NVRAM明文数据。
其中,第二flash驱动模块1021在通过ATF 103获取到第二SMC指令后,可以解析第二SMC指令得到NVRAM读取数据在共享内存中的地址。基于该地址从共享内存中读取NVRAM读取数据。第二flash驱动模块1021可以基于与加密算法相对应的解密算法对NVRAM读取数据进行解密处理,得到NVRAM明文数据。
在flash存储模块存储的NVRAM写入数据包括NVRAM密文数据和加密密钥的情况下,NVRAM读取数据包括NVRAM密文数据和加密密钥。
相应可选地,第二flash驱动模块1021还可以用于:对加密密钥进行解密处理得到文件存储密钥。基于文件存储密钥对NVRAM读取数据中NVRAM密文数据进行解密处理,得到NVRAM明文数据。
示例地,第二flash驱动模块1021还用于:基于电子设备的物理标识码(HUK)、静态字符串(String_for_ssk_gen)和电子设备的处理器的物理标识码(Chip_ID)采用HMAC算法,得到安全存储密钥。基于安全存储密钥和FTPM TA的通用唯一识别码(UUID)采用HMAC算法,得到可信应用存储密钥。基于可信应用存储密钥对加密密钥进行解密处理,得到文件存储密钥(FEK)。基于文件存储密钥对NVRAM读取数据中NVRAM密文数据进行解密处理,得到NVRAM明文数据。
本申请一些实施例中,电子设备100还可以包括:UEFI固件和OPTEE客户端。可选地,REE 101运行有Linux操作系统,第一flash驱动模块1012运行于Linux操作系统的内核。TEE 102运行有TEE操作系统TEE OS,第二flash驱动模块1021运行于TEE OS的内核。
电子设备的REE 101用于加载UEFI固件,以启动UEFI固件,执行电子设备的上电过程。UEFI固件用于在被REE 101加载之后,加载OPTEE客户端,分配共享内存,加载FTPM驱动以启动TPM 1011。
TPM 1011还用于在生成第一处理指令之后,将第一处理指令发送至OPTEE客户端。OPTEE客户端用于在被加载之后,将接收的第一处理指令存储至共享内存,基于第一处理指令在共享内存中的地址生成第三SMC指令,将第三SMC指令通过ATF 103发送至NVRAM驱动模块10221。
NVRAM驱动模块10221还用于基于第三SMC指令从共享内存中读取第一处理指令,解析第一处理指令得到第二处理指令。即NVRAM驱动模块10221获取第一处理指令的过程包括:NVRAM驱动模块10221基于第三SMC指令从共享内存中读取第一处理指令。
其中,NVRAM驱动模块10221在通过ATF 103获取到第三SMC指令后,解析第三SMC指令得到第一处理指令在共享内存中的地址,基于该地址从共享内存中读取第一处理指令。
可选地,OPTEE客户端还可以对接收到的第一处理指令进行安全验证,以保证电子设备中传输的各数据的安全性。OPTEE客户端还用于:对第一处理指令进行数据验证,在数据验证成功的情况下,将第一处理指令存储至共享内存。在数据验证不成功的情况下,可以不执行将第一处理指令存储至共享内存的步骤。可选地,OPTEE客户端对第一处理指令进行数据验证的过程可以包括:采用TPM规范中TPM指令规则,验证第一处理指令的指令格式是否正确。
综上所述,本申请实施例提供的电子设备中,REE的TPM用于在接收到NVRAM数据处理操作时,生成NVRAM数据处理操作对应的第一处理指令。该第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。TEE的FTPM TA中NVRAM驱动模块用于获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。TEE的第二flash驱动模块用于将第二处理指令对应的命令通过ATF发送至REE的第一flash驱动模块,命令包括写指令对应的写命令或者读指令对应的读命令。REE的第一flash驱动模块用于执行命令对应的数据处理,数据处理包括写命令对应的在flash存储模块中目标存储空间写入NVRAM数据的处理,或者读命令对应的从在flash存储模块中目标存储空间读取NVRAM数据的处理。
该技术方案中,TEE中FTPM TA的NVRAM驱动模块可以根据TPM生成的用于读取或者写入NVRAM数据的第一处理指令,向TEE的第二flash驱动模块传输第一处理指令包括的针对NVRAM数据的写指令或者读指令。TEE的第二flash驱动模块可以向REE的第一flash驱动模块传输写指令对应的命令或者读指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,以向flash存储模块中写入NVRAM数据,或者,从flash存储模块中读取NVRAM数据。本申请技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
进一步地,相关技术中,TEE中运行的TEE OS也支持RPMB作为NVRAM存储介质。但是,RPMB通常在移动终端中配置较多,而在ARM服务器上配置较少,且不易通过设备扩展来为ARM服务器配置RPMB。因而,采用RPMB作为NVRAM存储介质具有一定的电子设备类型的局限性。而各类电子设备中均具有flash,因而相较于相关技术,采用电子设备的flash作为NVRAM存储介质的普适性较高。
请参考图3,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。如图3所示,NVRAM数据处理方法包括:
步骤301、在REE的TPM接收到NVRAM数据处理操作时,通过REE的TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。
第一处理指令可以称为TPM指令。第二处理指令可以称为NVRAM指令,其包括写NVRAM指令或者读NVRAM指令。写NVRAM指令用于指示将待写入的NVRAM数据写入至目标存储空间。读NVRAM指令用于指示将目标存储空间内存储的NVRAM数据读出。
本申请实施例中,NVRAM数据处理操作可以包括NVRAM存储处理操作和NVRAM读取处理操作。在一种应用场景中,用户可以通过电子设备运行的TPM设备执行对TPM设备需要持久化存储的NVRAM数据的存储操作。或者,用户可以通过TPM设备执行对目标存储空间存储的NVRAM数据的读取操作。在另一种应用场景中,TPM设备在执行完成第一处理时可以自动接收到NVRAM数据存储操作,以将经过第一处理后生成的需要持久化存储的NVRAM数据存储至flash存储模块。或者,TPM设备在执行第二处理时可以自动接收到NVRAM数据读取操作,以将第二处理所需的NVRAM数据从flash存储模块中读取。
步骤302、通过TEE内FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。
步骤303、通过TEE的第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,命令包括写指令对应的写命令或者读指令对应的读命令。
其中,TEE 102运行有TEE OS,第二flash驱动模块1021可以运行于TEE OS的内核,由TEE OS的内核对第二flash驱动模块1021提供支持。第二flash驱动模块1021在接收到第二处理指令后,生成第二处理指令对应的命令,并将命令通过ATF 103发送至第一flash驱动模块1012。
步骤304、通过REE的第一flash驱动模块执行命令对应的数据处理,数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。
本申请一些实施例中,电子设备通过第一flash驱动模块可以根据其存储的目标存储空间的地址执行命令对应的数据处理。其中,REE运行有REE OS,第一flash驱动模块可以运行于REE OS的内核,由REE OS的内核对第一flash驱动模块提供支持。该REE OS可以为Linux操作系统。可选地,写命令可以包括待写入的NVRAM数据。电子设备通过第一flash驱动模块在接收到写命令后,可以解析写命令得到写命令中由写指令提供的待写入的NVRAM数据,并执行写命令对应的数据处理,以在目标存储空间写入NVRAM数据。
本申请实施例中,电子设备的TEE中FTPM TA的NVRAM驱动模块可以根据TPM生成的用于读取或者写入NVRAM数据的第一处理指令,向TEE的第二flash驱动模块传输第一处理指令包括的针对NVRAM数据的写指令或者读指令。TEE的第二flash驱动模块向REE的第一flash驱动模块传输写指令对应的命令或者读指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,以向flash存储模块中写入NVRAM数据,或者,从flash存储模块中读取NVRAM数据。
本申请技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
进一步地,相关技术中,TEE中运行的TEE OS也支持RPMB作为NVRAM存储介质。但是,RPMB通常在移动终端中配置较多,而在ARM服务器上配置较少,且不易通过设备扩展来为ARM服务器配置RPMB。因而,采用RPMB作为NVRAM存储介质具有一定的电子设备类型的局限性。而各类电子设备中均具有flash,因而相较于相关技术,采用电子设备的flash作为NVRAM存储介质的普适性较高。
本申请实施例中,NVRAM数据处理操作包括NVRAM存储处理操作和NVRAM读取处理操作,即对NVRAM数据处理包括对NVRAM数据的存储处理和对NVRAM数据的读取处理。本申请实施例以对NVRAM数据的存储处理和对NVRAM数据的读取处理两种处理情况为例,对本申请NVRAM数据处理方法进行进一步说明。
针对存储NVRAM数据的情况:第二处理指令包括写指令和待写入的NVRAM数据。
请参考图4,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。如图4所示,NVRAM数据处理方法包括:
步骤401、在TPM接收到NVRAM数据处理操作时,通过REE的TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令和待写入的NVRAM数据。
该步骤的解释和实现方式可以参考前述步骤301中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤402、通过TEE内FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。
该步骤的解释和实现方式可以参考前述步骤302中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤403、通过TEE的第二flash驱动模块对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据。
其中,第二flash驱动模块可以在获取第二处理指令后,解析第二处理指令得到待写入的NVRAM数据,以对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据。可选地,第二flash驱动模块对待写入的NVRAM数据进行加密处理的算法可以包括AES、RC4、DES、3DES、RC5、RC6等。
如前所述,第二flash驱动模块对待写入的NVRAM数据进行加密处理得到NVRAM写入数据的实现过程中可以采用的加密算法有多种,本申请实施例以下述一种加密过程情况进行示例性说明。
可选地,电子设备通过第二flash驱动模块对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据的过程可以包括以下步骤4031至步骤4033。
在步骤4031中,通过TEE的第二flash驱动模块采用文件存储密钥对待写入的NVRAM数据进行加密处理,得到NVRAM密文数据。
本申请实施例中,文件存储密钥可以采用随机数生成。可选地,第二flash驱动模块采用文件存储密钥对待写入的NVRAM数据进行加密处理的算法可以包括AES、RC4、DES、3DES、RC5、RC6、AES_CBC算法等。
在步骤4032中,通过TEE的第二flash驱动模块基于密钥加密数据对文件存储密钥进行加密处理,得到加密密钥。
本申请实施例中,密钥加密数据包括电子设备的物理标识码、电子设备的处理器的物理标识码和FTPM TA的通用唯一识别码。可选地,基于密钥加密数据对文件存储密钥进行加密处理的算法可以包括密钥相关的哈希运算消息认证码(Hash-based MessageAuthentication Code,HMAC)、AES、RC4、DES、3DES、RC5、RC6等。
示例地,电子设备通过第二flash驱动模块基于密钥加密数据对文件存储密钥进行加密处理,得到加密密钥的过程包括:
通过第二flash驱动模块基于电子设备的物理标识码、静态字符串和处理器的物理标识码采用HMAC算法,得到安全存储密钥。通过第二flash驱动模块基于安全存储密钥和FTPM TA的通用唯一识别码采用HMAC算法,得到可信应用存储密钥。通过第二flash驱动模块基于可信应用存储密钥对文件存储密钥进行加密处理,得到加密密钥。可选地,通过第二flash驱动模块基于可信应用存储密钥采用AES_CBC算法对文件存储密钥进行加密处理,得到加密密钥。
在步骤4033中,通过TEE的第二flash驱动模块生成NVRAM写入数据,NVRAM写入数据包括NVRAM密文数据和加密密钥。
步骤404、通过TEE的第二flash驱动模块将NVRAM写入数据存储至共享内存,基于NVRAM写入数据在共享内存中的地址以及写命令生成第一SMC指令。
本申请实施例中,共享内存可以是电子设备在UEFI阶段中通过加载UEFI固件,使得UEFI固件为REE和TEE交互分配的专有内存。电子设备通过第二flash驱动模块将NVRAM写入数据存储至共享内存,并记录NVRAM写入数据在共享内存中的地址。其中,该地址可以包括NVRAM写入数据在共享内存中的首地址以及NVRAM写入数据的数据长度。电子设备通过第二flash驱动模块基于NVRAM写入数据在共享内存中的地址以及写命令生成第一SMC指令。第一SMC指令包括NVRAM写入数据在共享内存中的地址以及写命令。
步骤405、通过TEE的第二flash驱动模块将第一SMC指令通过ATF发送至第一flash驱动模块。
步骤406、通过REE的第一flash驱动模块基于第一SMC指令从共享内存中读取NVRAM写入数据。
本申请实施例中,电子设备通过第一flash驱动模块可以在通过ATF接收到第一SMC指令后,解析第一SMC指令得到NVRAM写入数据在共享内存中的地址以及写命令。并且,电子设备通过第一flash驱动模块基于该地址从共享内存中读取NVRAM写入数据。
步骤407、通过REE的第一flash驱动模块在目标存储空间中写入NVRAM写入数据。
该步骤的解释和实现方式可以参考前述步骤304中相应部分的解释和实现方式。本申请实施例对此不做赘述。
可选地,电子设备通过第一flash驱动模块在目标存储空间中写入NVRAM写入数据之后,可以生成处理状态。通过第一flash驱动模块基于处理状态生成第四SMC指令,通过ATF将第四SMC指令传输至第二flash驱动模块。电子设备通过第二flash驱动模块将接收到的第四SMC指令传输至NVRAM驱动模块,以电子设备示警写命令的执行情况。其中,处理状态包括但不限于:写入完成状态或者未写入成功状态。写入完成状态表明NVRAM数据写入成功,即写命令执行成功。未写入成功状态表明NVRAM数据写入未成功,即写命令执行失败。
针对存储NVRAM数据的情况:第二处理指令包括读指令。
请参考图5,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。如图5所示,NVRAM数据处理方法包括:
步骤501、在TPM接收到NVRAM数据处理操作时,通过REE的TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据读取操作对应的读指令。
该步骤的解释和实现方式可以参考前述步骤301中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤502、通过TEE内FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。
该步骤的解释和实现方式可以参考前述步骤302中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤503、通过TEE的第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,命令包括读指令对应的读命令。
该步骤的解释和实现方式可以参考前述步骤303中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤504、通过REE的第一flash驱动模块执行命令对应的数据处理,以从目标存储空间读取NVRAM数据,得到NVRAM读取数据。
该步骤的解释和实现方式可以参考前述步骤304中相应部分的解释和实现方式。本申请实施例对此不做赘述。
需要说明的是,在flash存储模块中存储的NVRAM数据可以为NVRAM写入数据,即NVRAM读取数据为加密处理后的数据。
步骤505、通过REE的第一flash驱动模块将NVRAM读取数据存储至共享内存,基于NVRAM读取数据在共享内存中的地址生成第二SMC指令,将第二SMC指令通过ATF发送至第二flash驱动模块。
步骤506、通过TEE的第二flash驱动模块基于第二SMC指令从共享内存中读取NVRAM读取数据。
本申请实施例中,第二flash驱动模块在通过ATF获取到第二SMC指令后,可以解析第二SMC指令得到NVRAM读取数据在共享内存中的地址。基于该地址从共享内存中读取NVRAM读取数据。
步骤507、通过TEE的第二flash驱动模块对NVRAM读取数据进行解密处理,得到NVRAM明文数据,将NVRAM明文数据发送至NVRAM驱动模块,以供电子设备使用NVRAM明文数据。
本申请实施例中,第二flash驱动模块可以基于与加密算法相对应的解密算法对NVRAM读取数据进行解密处理,得到NVRAM明文数据。
在flash存储模块存储的NVRAM写入数据包括NVRAM密文数据和加密密钥的情况下,NVRAM读取数据包括NVRAM密文数据和加密密钥。
可选地,第二flash驱动模块通过第二flash驱动模块对NVRAM读取数据进行解密处理,得到NVRAM明文数据的过程可以包括:
通过第二flash驱动模块对加密密钥进行解密处理得到文件存储密钥,基于文件存储密钥对NVRAM读取数据中NVRAM密文数据进行解密处理,得到NVRAM明文数据。
示例地,电子设备通过第二flash驱动模块基于电子设备的物理标识码、静态字符串和电子设备的处理器的物理标识码采用HMAC算法,得到安全存储密钥。基于安全存储密钥和FTPM TA的通用唯一识别码采用HMAC算法,得到可信应用存储密钥。基于可信应用存储密钥对加密密钥进行解密处理,得到文件存储密钥。基于文件存储密钥对NVRAM读取数据中NVRAM密文数据进行解密处理,得到NVRAM明文数据。
本申请实施例中,由于增加了TEE OS安全存储机制,即第二flash驱动模块可以对待写入的NVRAM数据进行加密处理,以使得在flash存储模块中存储的NVRAM数据为加密处理后的NVRAM写入数据。因此,提升了flash存储模块中存储的NVRAM数据的安全性。
请参考图6,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。如图6所示,NVRAM数据处理方法包括:
UEFI阶段:
步骤601、通过REE加载UEFI固件。
本申请一些实施例中,电子设备加载UEFI固件,以启动UEFI固件,执行电子设备上电过程。
步骤602、通过REE的UEFI固件加载OPTEE客户端,分配共享内存。
本申请一些实施例中,电子设备在启动UEFI固件后,电子设备依次经历UEFI阶段中安全验证(SEC)、EFI前期初始化(PEI)阶段后,进入驱动执行环境(DXE)阶段。电子设备在DXE阶段的早期,通过UEFI固件对电子设备的内存进行初始化管理。在对电子设备的内存进行初始化管理的过程中,电子设备通过UEFI固件加载OPTEE客户端,并分配用于TEE和REE交互的共享内存。
TPM设备启动阶段:
步骤603、通过REE加载FTPM驱动以启动TPM。
本申请一些实施例中,电子设备通过REE运行的Linux操作系统加载FTPM驱动,以启动TPM,使得TPM处于可用状态。
NVRAM数据处理阶段:
步骤604、在TPM接收到NVRAM数据处理操作时,通过REE的TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。
该步骤的解释和实现方式可以参考前述步骤304中相应部分的解释和实现方式。本申请实施例对此不做赘述。
需要说明的是,本申请一些实施例中,通过TPM生成NVRAM数据处理操作对应的第一处理指令后,可以将第一处理指令发送至REE运行的OPTEE客户端。示例地,电子设备通过TPM将第一处理指令发送至REE运行的OPTEE客户端的守护进程tee-supplicant。
步骤605、通过REE运行的OPTEE客户端将第一处理指令存储至共享内存,基于第一处理指令在共享内存中的地址生成第三SMC指令,将第三SMC指令通过ATF发送至FTPM TA的NVRAM驱动模块。
本申请一些实施例中,通过REE运行的OPTEE客户端将接收到第一处理指令进行验证处理。在验证成功的情况下,将第一处理指令存储至共享内存。在验证不成功的情况下,不执行将第一处理指令存储至共享内存的步骤。
示例地,电子设备通过REE运行的OPTEE客户端的守护进程tee-supplicant,将第一处理指令存储至共享内存,基于第一处理指令在共享内存中的地址生成第三SMC指令,将第三SMC指令通过ATF发送至FTPM TA的NVRAM驱动模块。
步骤606、通过TEE的NVRAM驱动模块基于第三SMC指令从共享内存中读取第一处理指令,解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。
步骤607、通过TEE的第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,命令包括写指令对应的写命令或者读指令对应的读命令。
该步骤的解释和实现方式可以参考前述步骤303中相应部分的解释和实现方式。本申请实施例对此不做赘述。
步骤608、通过REE的第一flash驱动模块执行命令对应的数据处理。数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。
该步骤的解释和实现方式可以参考前述步骤304中相应部分的解释和实现方式。本申请实施例对此不做赘述。
综上所述,本申请实施例提供的NVRAM数据处理方法,在电子设备的REE中的TPM接收到NVRAM数据处理操作,生成NVRAM数据处理操作对应的第一处理指令之后,电子设备可以先通过TEE中FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。进而通过TEE的第二flash驱动模块向REE的第一flash驱动模块传输第二处理指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,向电子设备的flash存储模块中目标存储空间内写入NVRAM数据,或者,从flash存储模块的目标存储空间内读取NVRAM数据。其中,第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。第二处理指令对应的命令包括写指令对应的写命令或者读指令对应的读命令。
该技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
进一步地,相关技术中,TEE中运行的TEE OS也支持RPMB作为NVRAM存储介质。但是,RPMB通常在移动终端中配置较多,而在ARM服务器上配置较少,且不易通过设备扩展来为ARM服务器配置RPMB。因而,采用RPMB作为NVRAM存储介质具有一定的电子设备类型的局限性。而各类电子设备中均具有flash,因而相较于相关技术,采用电子设备的flash作为NVRAM存储介质的普适性较高。
请参考图7,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。NVRAM数据处理方法可以由电子设备的REE执行。如图7所示,NVRAM数据处理方法包括:
步骤701、在TPM接收到NVRAM数据处理操作时,REE通过TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。第一处理指令供TEE通过NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块,通过第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,命令包括写指令对应的写命令或者读指令对应的读命令。
步骤702、REE通过第一flash驱动模块执行命令对应的数据处理,数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。
可选地,REE通过第一flash驱动模块执行命令对应的数据处理,包括:
REE通过第一flash驱动模块基于第一SMC指令从共享内存中读取NVRAM写入数据,第一SMC指令为TEE通过第二flash驱动模块将NVRAM写入数据存储至共享内存,基于NVRAM写入数据在共享内存中的地址以及写命令生成的指令,NVRAM写入数据为TEE通过第二flash驱动模块对待写入的NVRAM数据进行加密处理后得到的数据。
REE通过第一flash驱动模块在目标存储空间中写入NVRAM写入数据。
可选地,在第二处理指令包括读指令的情况下,NVRAM数据处理方法包括:
REE通过第一flash驱动模块将NVRAM读取数据存储至共享内存,基于NVRAM读取数据在共享内存中的地址生成第二SMC指令,NVRAM读取数据为第一flash驱动模块执行读命令对应的数据处理以从目标存储空间中读取的NVRAM数据;
REE通过第一flash驱动模块将第二SMC指令通过ATF发送至第二flash驱动模块。
可选地,在通过TPM生成NVRAM数据处理操作对应的第一处理指令之前,NVRAM数据处理方法还包括:
REE加载UEFI固件;
REE通过UEFI固件加载OPTEE客户端,分配共享内存;
REE加载FTPM驱动以启动TPM;
在通过TPM生成NVRAM数据处理操作对应的第一处理指令之后,方法还包括:
REE运行的OPTEE客户端将第一处理指令存储至共享内存,基于第一处理指令在共享内存中的地址生成第三SMC指令,将第三SMC指令通过ATF发送至NVRAM驱动模块,第三SMC指令用于供TEE通过NVRAM驱动模块基于第三SMC指令从共享内存中读取第一处理指令。
可选地,REE运行有Linux操作系统,第一flash驱动模块运行于Linux操作系统的内核。
请参考图8,其示出了本申请实施例提供的一种NVRAM数据处理方法的流程图。NVRAM数据处理方法应用于本申请实施例提供的电子设备。例如,应用于图1所示的电子设备。NVRAM数据处理方法可以由电子设备的TEE执行。如图8所示,NVRAM数据处理方法包括:
步骤801、TEE通过FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。第一处理指令是REE的TPM在接收到NVRAM数据处理操作时,REE通过TPM生成NVRAM数据处理操作对应的第一处理指令。第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。
步骤802、TEE通过第二flash驱动模块将第二处理指令对应的命令通过ATF发送至REE的第一flash驱动模块,以使得REE通过第一flash驱动模块执行命令对应的数据处理,数据处理包括写命令对应的在目标存储空间写入NVRAM数据的处理,或者读命令对应的从目标存储空间读取NVRAM数据的处理。
可选地,在第二处理指令包括写指令的情况下,第二处理指令包括待写入的NVRAM数据;NVRAM数据处理方法包括:
TEE通过第二flash驱动模块对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据;
TEE通过第二flash驱动模块将NVRAM写入数据存储至共享内存,基于NVRAM写入数据在共享内存中的地址以及写命令生成第一SMC指令;
TEE通过第二flash驱动模块将第二处理指令对应的命令通过ATF发送至第一flash驱动模块,包括:通过第二flash驱动模块将第一SMC指令通过ATF发送至第一flash驱动模块。
可选地,TEE通过第二flash驱动模块对待写入的NVRAM数据进行加密处理,得到NVRAM写入数据,包括:
TEE通过第二flash驱动模块采用文件存储密钥对待写入的NVRAM数据进行加密处理,得到NVRAM密文数据;
TEE通过第二flash驱动模块基于密钥加密数据对文件存储密钥进行加密处理,得到加密密钥,密钥加密数据包括电子设备的物理标识码、电子设备的处理器的物理标识码和FTPM TA的通用唯一识别码;
TEE通过第二flash驱动模块生成NVRAM写入数据,NVRAM写入数据包括NVRAM密文数据和加密密钥。
可选地,TEE通过第二flash驱动模块基于密钥加密数据对文件存储密钥进行加密处理,得到加密密钥,包括:
TEE通过第二flash驱动模块基于电子设备的物理标识码、静态字符串和处理器的物理标识码采用密钥相关的哈希运算消息认证码HMAC算法,得到安全存储密钥;
TEE通过第二flash驱动模块基于安全存储密钥和FTPM TA的通用唯一识别码采用HMAC算法,得到可信应用存储密钥;
TEE通过第二flash驱动模块基于可信应用存储密钥对文件存储密钥进行加密处理,得到加密密钥。
可选地,NVRAM数据处理方法还包括:
TEE通过第二flash驱动模块基于第二SMC指令从共享内存中读取NVRAM读取数据,第二SMC指令为REE通过第一flash驱动模块将NVRAM读取数据存储至共享内存,基于NVRAM读取数据在共享内存中的地址生成第二SMC指令,NVRAM读取数据为第一flash驱动模块执行读命令对应的数据处理以从目标存储空间中读取的NVRAM数据;
TEE通过第二flash驱动模块对NVRAM读取数据进行解密处理,得到NVRAM明文数据,将NVRAM明文数据发送至NVRAM驱动模块,以供电子设备使用NVRAM明文数据。
可选地,TEE通过NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,包括:TEE通过NVRAM驱动模块基于第三SMC指令从共享内存中读取第一处理指令,解析第一处理指令得到第二处理指令。
可选地,TEE运行有TEE操作系统TEE OS,第二flash驱动模块运行于TEE OS的内核。
需要说明的是,本申请实施例中各方法侧实施例和各装置侧实施例均可以相互参考。其中,各方法侧实施例包括但不限于图3至图8所示的实施例,装置侧实施例包括但不限于图1所示的实施例。
综上所述,本申请实施例提供的NVRAM数据处理方法,在电子设备的REE中的TPM接收到NVRAM数据处理操作,生成NVRAM数据处理操作对应的第一处理指令之后,电子设备可以先通过TEE中FTPM TA的NVRAM驱动模块获取并解析第一处理指令得到第二处理指令,将第二处理指令发送至第二flash驱动模块。进而通过TEE的第二flash驱动模块向REE的第一flash驱动模块传输第二处理指令对应的命令,以使得第一flash驱动模块执行接收到的命令对应的处理操作,向电子设备的flash存储模块中目标存储空间内写入NVRAM数据,或者,从flash存储模块的目标存储空间内读取NVRAM数据。其中,第一处理指令包括第二处理指令,第二处理指令包括NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令。第二处理指令对应的命令包括写指令对应的写命令或者读指令对应的读命令。
该技术方案中,将电子设备的flash存储模块作为NVRAM存储介质,以通过FTPM TA使用flash存储模块的部分存储空间存储需要持久化的NVRAM数据。由于flash存储模块在电子设备的各个工作阶段均可以被访问,该各个工作阶段包括操作系统运行之前的UEFI启动阶段、Uboot启动阶段等。因此,保障了FTPM在电子设备的各工作阶段均可以写入或者读取NVRAM数据,保障了FTPM在电子设备早期启动中的介入使用,提升FTPM功能有效率。并且,采用Linux文件系统作为NVRAM存储介质的方式中,由于Linux文件系统具有一定的被攻破的风险,因此存储于Linux文件系统中的NVRAM数据具有一定的安全风险。而使用独立的flash作为NVRAM存储介质,避免了因Linux文件系统被破坏使得NVRAM数据无法留存的问题,保障了NVRAM数据的安全性。
可选的,如图9所示,本申请实施例还提供一种电子设备,该电子设备900包括:TEE、REE和ARM ATF,REE包括TPM、第一flash驱动模块和flash存储模块,flash存储模块中目标存储空间用于存储NVRAM数据。TEE包括第二flash驱动模块和FTPM TA的NVRAM驱动模块。电子设备900还包括处理器901,存储器902,存储在存储器902上并可在所述处理器901上运行的程序或指令,该程序或指令被处理器901执行时实现上述NVRAM数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备900内各个部件的功能,可以参考前述实施例提供的电子设备100内各对应部分的功能,在此不做赘述。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述NVRAM数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述NVRAM数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (12)
1.一种NVRAM数据处理方法,其特征在于,应用于电子设备,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;所述方法包括:
在所述TPM接收到NVRAM数据处理操作时,通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令,所述第一处理指令包括第二处理指令,所述第二处理指令包括所述NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令;
通过所述NVRAM驱动模块获取并解析所述第一处理指令得到所述第二处理指令,将所述第二处理指令发送至所述第二flash驱动模块;
通过所述第二flash驱动模块将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,所述命令包括所述写指令对应的写命令或者所述读指令对应的读命令;
通过所述第一flash驱动模块执行所述命令对应的数据处理,所述数据处理包括所述写命令对应的在所述目标存储空间写入NVRAM数据的处理,或者所述读命令对应的从所述目标存储空间读取NVRAM数据的处理。
2.根据权利要求1所述的方法,其特征在于,在所述第二处理指令包括所述写指令的情况下,所述第二处理指令包括待写入的NVRAM数据;所述方法还包括:
通过所述第二flash驱动模块对所述待写入的NVRAM数据进行加密处理,得到NVRAM写入数据;
通过所述第二flash驱动模块将所述NVRAM写入数据存储至共享内存,基于所述NVRAM写入数据在所述共享内存中的地址以及所述写命令生成第一安全监控呼叫SMC指令;
所述通过所述第二flash驱动模块将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,包括:通过所述第二flash驱动模块将所述第一SMC指令通过所述ATF发送至所述第一flash驱动模块。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一flash驱动模块执行所述命令对应的数据处理,包括:
通过所述第一flash驱动模块基于所述第一SMC指令从所述共享内存中读取所述NVRAM写入数据;
通过所述第一flash驱动模块在所述目标存储空间中写入所述NVRAM写入数据。
4.根据权利要求2或3所述的方法,其特征在于,所述通过所述第二flash驱动模块对所述待写入的NVRAM数据进行加密处理,得到NVRAM写入数据,包括:
通过所述第二flash驱动模块采用文件存储密钥对所述待写入的NVRAM数据进行加密处理,得到NVRAM密文数据;
通过所述第二flash驱动模块基于密钥加密数据对所述文件存储密钥进行加密处理,得到加密密钥,所述密钥加密数据包括所述电子设备的物理标识码、所述电子设备的处理器的物理标识码和所述FTPM TA的通用唯一识别码;
通过所述第二flash驱动模块生成NVRAM写入数据,所述NVRAM写入数据包括所述NVRAM密文数据和所述加密密钥。
5.根据权利要求4所述的方法,其特征在于,所述通过所述第二flash驱动模块基于密钥加密数据对所述文件存储密钥进行加密处理,得到加密密钥,包括:
通过所述第二flash驱动模块基于所述电子设备的物理标识码、静态字符串和所述处理器的物理标识码采用密钥相关的哈希运算消息认证码HMAC算法,得到安全存储密钥;
通过所述第二flash驱动模块基于所述安全存储密钥和所述FTPM TA的通用唯一识别码采用所述HMAC算法,得到可信应用存储密钥;
通过所述第二flash驱动模块基于所述可信应用存储密钥对所述文件存储密钥进行加密处理,得到加密密钥。
6.根据权利要求2所述的方法,其特征在于,在所述第二处理指令包括所述读指令的情况下,所述方法还包括:
通过所述第一flash驱动模块将NVRAM读取数据存储至所述共享内存,基于所述NVRAM读取数据在所述共享内存中的地址生成第二SMC指令,所述NVRAM读取数据为所述第一flash驱动模块执行所述读命令对应的数据处理以从所述目标存储空间中读取的NVRAM数据;
通过所述第一flash驱动模块将所述第二SMC指令通过所述ATF发送至所述第二flash驱动模块。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述第二flash驱动模块基于所述第二SMC指令从所述共享内存中读取所述NVRAM读取数据;
通过所述第二flash驱动模块对所述NVRAM读取数据进行解密处理,得到NVRAM明文数据,将所述NVRAM明文数据发送至所述NVRAM驱动模块,以供所述电子设备使用所述NVRAM明文数据。
8.根据权利要求1所述的方法,其特征在于,在通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令之前,所述方法还包括:
通过所述REE加载统一可扩展固件接口UEFI固件;
通过所述UEFI固件加载OPTEE客户端,分配共享内存;
通过所述REE加载FTPM驱动以启动所述TPM;
在通过所述TPM生成所述NVRAM数据处理操作对应的第一处理指令之后,所述方法还包括:
通过所述REE运行的OPTEE客户端将所述第一处理指令存储至共享内存,基于所述第一处理指令在所述共享内存中的地址生成第三SMC指令,将所述第三SMC指令通过所述ATF发送至所述NVRAM驱动模块;
所述通过所述NVRAM驱动模块获取并解析所述第一处理指令得到所述第二处理指令,包括:通过所述NVRAM驱动模块基于所述第三SMC指令从所述共享内存中读取所述第一处理指令,解析所述第一处理指令得到所述第二处理指令。
9.根据权利要求1所述的方法,其特征在于,所述REE运行有Linux操作系统,所述第一flash驱动模块运行于所述Linux操作系统的内核;所述TEE运行有TEE操作系统TEE OS,所述第二flash驱动模块运行于所述TEE OS的内核。
10.一种电子设备,其特征在于,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;
所述TPM用于在接收到NVRAM数据处理操作时,生成所述NVRAM数据处理操作对应的第一处理指令,所述第一处理指令包括第二处理指令,所述第二处理指令包括所述NVRAM数据存储操作对应的写指令或者NVRAM数据读取操作对应的读指令;
所述NVRAM驱动模块用于获取并解析所述第一处理指令得到所述第二处理指令,将所述第二处理指令发送至所述第二flash驱动模块;
所述第二flash驱动模块用于将所述第二处理指令对应的命令通过所述ATF发送至所述第一flash驱动模块,所述命令包括所述写指令对应的写命令或者所述读指令对应的读命令;
所述第一flash驱动模块用于执行所述命令对应的数据处理,所述数据处理包括所述写命令对应的在所述目标存储空间写入NVRAM数据的处理,或者所述读命令对应的从所述目标存储空间读取NVRAM数据的处理。
11.一种电子设备,其特征在于,所述电子设备包括:可信执行环境TEE、富执行环境REE和ARM可信固件ATF,所述REE包括可信平台模块TPM、第一flash驱动模块和flash存储模块,所述flash存储模块中目标存储空间用于存储NVRAM数据,所述TEE包括第二flash驱动模块和基于固件的可信平台模块FTPM可信应用TA的非易失性随机访问存储器NVRAM驱动模块;
所述电子设备还包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至9任一项所述的NVRAM数据处理方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1至9任一项所述的NVRAM数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391004.8A CN115756314A (zh) | 2022-11-07 | 2022-11-07 | Nvram数据处理方法、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211391004.8A CN115756314A (zh) | 2022-11-07 | 2022-11-07 | Nvram数据处理方法、电子设备和可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756314A true CN115756314A (zh) | 2023-03-07 |
Family
ID=85357467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211391004.8A Pending CN115756314A (zh) | 2022-11-07 | 2022-11-07 | Nvram数据处理方法、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756314A (zh) |
-
2022
- 2022-11-07 CN CN202211391004.8A patent/CN115756314A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10339327B2 (en) | Technologies for securely binding a platform manifest to a platform | |
CN109669734B (zh) | 用于启动设备的方法和装置 | |
US9904557B2 (en) | Provisioning of operating systems to user terminals | |
US8364975B2 (en) | Methods and apparatus for protecting data | |
US8375437B2 (en) | Hardware supported virtualized cryptographic service | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
US10878101B2 (en) | Trusted booting by hardware root of trust (HRoT) device | |
US10303880B2 (en) | Security device having indirect access to external non-volatile memory | |
EP3757848A1 (en) | Converged cryptographic engine | |
CN111201553B (zh) | 一种安全元件及相关设备 | |
US20110252223A1 (en) | Encryption acceleration | |
US7836309B2 (en) | Generic extensible pre-operating system cryptographic infrastructure | |
CN114296873B (zh) | 一种虚拟机镜像保护方法、相关器件、芯片及电子设备 | |
US20210243030A1 (en) | Systems And Methods To Cryptographically Verify An Identity Of An Information Handling System | |
KR101953444B1 (ko) | 하드웨어 수준 보안을 보장하는 가상화 기반 소프트웨어 보안 방법 및 이를 이용하는 장치 | |
CN110674525A (zh) | 一种电子设备及其文件处理方法 | |
US11646890B2 (en) | Enclave population | |
JP2001051858A (ja) | 基本入出力システム(bios)サービスを安全に使用するためのシステムおよび方法 | |
CN113221141B (zh) | 钱包加密存储方法、签名方法、计算机设备和存储介质 | |
CN116204211A (zh) | 一种信息处理方法、装置、设备和计算机可读存储介质 | |
CN115756314A (zh) | Nvram数据处理方法、电子设备和可读存储介质 | |
CN114154443A (zh) | 芯片授权和验证方法、装置和电子设备 | |
CN114579337A (zh) | 用于在用户设备中生成核心转储的方法和系统 | |
CN109583196B (zh) | 一种密钥生成方法 | |
CN114491544A (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 |