CN116257889A - 数据完整性保护方法及相关装置 - Google Patents

数据完整性保护方法及相关装置 Download PDF

Info

Publication number
CN116257889A
CN116257889A CN202111507923.2A CN202111507923A CN116257889A CN 116257889 A CN116257889 A CN 116257889A CN 202111507923 A CN202111507923 A CN 202111507923A CN 116257889 A CN116257889 A CN 116257889A
Authority
CN
China
Prior art keywords
data
integrity
execution environment
trusted execution
protection 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
Application number
CN202111507923.2A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202111507923.2A priority Critical patent/CN116257889A/zh
Priority to PCT/CN2022/136827 priority patent/WO2023104013A1/zh
Publication of CN116257889A publication Critical patent/CN116257889A/zh
Pending legal-status Critical Current

Links

Images

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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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
    • 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

Landscapes

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

Abstract

本申请实施例提供了一种数据完整性保护方法及相关装置,该方法应用于处理器,该处理器包括可信执行环境和非可信执行环境,该可信执行环境中包括基于软件实现的数据完整性保护模块;该方法包括:通过该数据完整性保护模块对第一数据进行完整性校验;该第一数据为从内存读取到该可信执行环境中的数据。本申请能够增加可信执行环境中数据的安全保护。

Description

数据完整性保护方法及相关装置
技术领域
本发明涉及信息安全技术领域,尤其涉及一种数据完整性保护方法及相关装置。
背景技术
机密计算技术是一种新兴的保护数据使用过程中安全的关键技术,能够覆盖端、边、云等计算全场景,提供内存数据保护、数据安全存储、敏感数据处理与监测等多种安全防护能力。机密计算技术将逐步发展成为一种在全球范围内逐步普及的标准化安全技术。不同的硬件厂商基于不同的CPU架构也纷纷推出了各自的机密计算硬件解决方案。
当前业界许多主流的机密计算架构在解决数据在安全域与非安全域的隔离,提供可信执行环境TEE的同时,通常都会结合内存加密技术,对内存进行整体加密,为运行态的内存数据提供机密性保护。然而,内存加密技术可以被盲目随机腐败攻击(blinded randomcorruption attack,BRCA)攻击成功,仍然存在数据保护缺陷。
发明内容
本申请公开了一种数据完整性保护方法及相关装置,能够增加数据的安全保护。
第一方面,本申请提供一种数据完整性保护方法,该方法应用于处理器,该处理器包括可信执行环境和非可信执行环境,该可信执行环境中包括基于软件实现的数据完整性保护模块;前述方法包括:通过前述数据完整性保护模块对第一数据进行完整性校验;前述第一数据为从内存读取到前述可信执行环境中的数据。
本申请通过在可信执行环境中部署数据完整性保护模块,以用于对可信执行环境中的数据,特别是对可信执行环境中来自内存的数据进行完整性校验,从而实现了可信执行环境中数据的完整性保护,提高数据的安全性。本申请的方案可以是在全内存加密技术的基础上增加的数据的完整性校验方案,可以有效防止数据被攻击,进一步提高数据的安全防护。另外,相比于现有方案,本申请无需对硬件进行改动,降低了硬件成本。
一种可能的实施方式中,前述数据完整性保护模块部署在前述可信执行环境的虚拟化管理软件中。
本申请中,可信执行环境中部署有虚拟化管理软件,该虚拟化管理软件在软件栈中的权限等级最高,那么,该数据完整性保护模块部署在该虚拟化管理软件中,其在软件栈中的权限等级也是最高的。因此,该数据完整性保护模块可以对可信执行环境中操作系统和应用程序的数据进行完整性校验,并且无法被低权限等级的恶意软件攻击和篡改。
一种可能的实施方式中,前述数据完整性保护模块部署在前述可信执行环境的操作系统软件中。
本申请中,可信执行环境中的可信操作系统在软件栈中的权限等级较高,那么,该数据完整性保护模块部署在该可信操作系统中,其在软件栈中的权限等级也是比较高的。因此,该数据完整性保护模块可以对可信执行环境中应用程序的数据进行完整性校验,并且无法被低权限等级的恶意软件攻击和篡改。
一种可能的实施方式中,前述通过前述数据完整性保护模块对第一数据进行完整性校验,包括:
通过前述数据完整性保护模块执行如下操作:
计算前述第一数据的完整性度量值;
在前述完整性度量值与前述第一数据的完整性度量基准值匹配的情况下,确定前述第一数据的完整性校验通过。
本申请通过将计算得到的完整性度量值与完整性度量基准值是否匹配来判断完整性校验是否通过,从而可以有效防护数据被攻击篡改。
一种可能的实施方式中,前述通过前述数据完整性保护模块对第一数据进行完整性校验之前,还包括:
通过前述数据完整性保护模块监测前述可信执行环境中的数据变化情况;
在监测到前述可信执行环境中第一次出现前述第一数据的情况下,通过前述数据完整性保护模块计算前述第一数据的完整性度量基准值,并存储前述第一数据的完整性度量基准值。
本申请对于首次出现的数据计算其完整性度量基准值,以用于后续的完整性校验。
一种可能的实施方式中,前述方法还包括:
通过前述数据完整性保护模块监测前述可信执行环境中的数据变化情况;
在监测到前述第一数据的值出现合法变更的情况下,通过前述数据完整性保护模块重新计算前述第一数据的完整性度量基准值,并将已存储的前述第一数据的完整性度量基准值替换为前述重新计算得到的完整性度量基准值。
本申请中,对于合法变更的数据,重新计算数据的完整性基准值并替换原来的基准值进行保存,以用于后续的校验,保证了数据完整性校验可以有效完成。
一种可能的实施方式中,前述第一数据为前述可信执行环境中涉及系统安全的数据。
本申请通过提取出涉及系统安全的数据来进行完整性校验,相比于对监测到的所有数据进行完整性校验,在保证了数据安全性的同时可以减少计算复杂性,节省处理资源。
第二方面,本申请提供了一种装置,该装置包括处理器,前述处理器包括可信执行环境和非可信执行环境,前述可信执行环境中包括基于软件实现的数据完整性保护模块;前述数据完整性保护模块用于:对第一数据进行完整性校验;前述第一数据为从内存读取到前述可信执行环境中的数据。
可选的,上述装置可以是系统芯片等。
一种可能的实施方式中,前述数据完整性保护模块部署在前述可信执行环境的虚拟化管理软件中。
一种可能的实施方式中,前述数据完整性保护模块部署在前述可信执行环境的操作系统软件中。
一种可能的实施方式中,前述数据完整性保护模块具体用于:
计算前述第一数据的完整性度量值;
在前述完整性度量值与前述第一数据的完整性度量基准值匹配的情况下,确定前述第一数据的完整性校验通过。
一种可能的实施方式中,前述数据完整性保护模块还用于:
监测前述可信执行环境中的数据变化情况;
在监测到前述可信执行环境中第一次出现前述第一数据的情况下,计算前述第一数据的完整性度量基准值,并存储前述第一数据的完整性度量基准值。
一种可能的实施方式中,前述数据完整性保护模块还用于:
监测前述可信执行环境中的数据变化情况;
在监测到前述第一数据的值出现合法变更的情况下,重新计算前述第一数据的完整性度量基准值,并将已存储的前述第一数据的完整性度量基准值替换为前述重新计算得到的完整性度量基准值。
一种可能的实施方式中,前述第一数据为前述可信执行环境中涉及系统安全的数据。
第三方面,本申请提供一种电子设备,该电子设备包括:如上述第二方面任一项所述的装置,以及耦合于该装置的分立器件。
该电子设备可以是计算机终端或服务器设备等。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现上述第一方面任意一项所述的方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机程序,当该计算机程序被计算机执行时,使得该计算机实现上述第一方面任意一项所述的方法。
可以理解地,上述提供的第二方面所述的装置、第三方面所述的电子设备、第四方面所述的计算机存储介质以及第五方面所述的计算机程序产品均用于执行上述第一方面中任一项所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1和图2所示为一种计算机系统的结构示意图;
图3和图4所示为本申请实施例提供的一种计算机系统的结构示意图;
图5所示为本申请实施例提供的一种数据完整性保护模块的框架示意图;
图6所示为本申请实施例提供的一种数据完整性保护方法的流程示意图。
具体实施方式
下面结合附图对本申请的实施例进行描述。
首先介绍一下本申请实施例涉及的技术术语。
1、可信执行环境(trusted execution environment,TEE)。
TEE为基于处理器硬件构建的一个安全区域。该安全区域是一个独立的环境,是与处理器的主操作系统所在的非安全区域并行运行的物理区域。该非安全区域也可以称为非可信执行环境。TEE中包括可信操作系统和可信应用程序。该可信操作系统是受信任的、安全的操作系统。该可信应用程序为受信任的、安全的应用程序。该处理器可以确保TEE中的计算机程序和数据的机密性和完整性都得到保护。在TEE中运行的可信应用程序可以访问该处理器和内存。处理器中的可信执行环境和非可信执行环境通过硬件隔离,以保护可信执行环境中的组件不受非可信执行环境中运行的用户安装的应用程序的影响。
上述处理器可以是中央处理器(central processing unit,CPU)或者基板管理控制器(base-board management controller,BMC)等。
2、内存加密引擎(memory encryption engine,MEE)。
MEE是一个位于处理器与内存之间的硬件加密引擎,可以在数据从处理器缓存或寄存器等写往片外存储设备如内存或硬盘之前,对数据进行加密。
3、消息认证码(message authentication code,MAC)。
该消息认证码为经过特定算法后产生的信息,可以用于检查数据的完整性,以及作为身份验证。具体的,消息认证码可以用来检查在数据在传递过程中是否被更改过,也可以作为数据来源的身份验证。
4、MAC算法。
MAC算法可以验证数据的完整性,并且可以验证数据确实是由原始发送方发送的。MAC算法中,MAC值一般和原始数据一起传输,原始数据可以选择加密,也可以选择不加密。通信双方会以相同的方式生成MAC值,然后进行比较,一旦两个MAC值相同表示MAC验证正确,否则验证失败。
参阅图1,图1所示为一种计算机系统100。该计算机系统100包括处理器110、内存加密模块120、安全隔离模块130和内存140。
处理器110包括可信执行环境111和非可信执行环境112。可信执行环境111和非可信执行环境112之间通过硬件隔离。可信执行环境111中包括可信应用程序1111和可信操作系统1112。非可信执行环境112中包括应用程序1121和主操作系统1122。该可信操作系统1112主要用于管理可信执行环境111中的硬件资源和软件资源。该主操作系统1122主要用于管理非可信执行环境112中的硬件资源和软件资源。
内存加密模块120可以是用硬件实现的加密模块,主要用于在来自处理器110的数据存储到内存140之前,对数据进行加密。示例性地,该内存加密模块120可以是上述介绍的内存加密引擎MEE,可以结合全内存加密技术对内存中的数据进行整体加密,为运行态的内存数据提供机密性保护。
安全隔离模块130可以用于保护可信执行环境111,使得非可信执行环境112无法非法访问可信执行环境111。示例性地,该安全隔离模块130可以是基于信任区(TrustZone)安全隔离技术实现的硬件隔离。
内存140是计算机的中的内存储器或主存储器,用于暂时存放处理器中的运算数据,并可以与硬盘等外部存储器交换的数据。
一种可能的实施方式中,上述计算机系统100的可信执行环境111中部署有虚拟化环境,该虚拟化环境中部署有虚拟化管理软件,示例性地可以参加图2所示的虚拟化管理软件1113。虚拟化管理软件1113是虚拟化环境中用来建立与执行虚拟机(virtual machine,VM)的软件或固件。虚拟化管理软件1113可以访问计算机系统100中的磁盘和内存等物理设备,另外还可以协调这些硬件资源的访问同时在各个虚拟机之间施加防护。当计算机系统100启动并执行虚拟化管理软件1113时,它会加载所有虚拟机的操作系统,同时会分配给每一台虚拟机适量的内存,CPU,网络和磁盘等资源。示例性地,该虚拟化管理软件1113可以是虚拟机监视器(virtual machine monitor,VMM)或者可以是管理程序Hypervisor等。
现有的计算机系统中,可信执行环境的应用程序在运行的过程中需要将数据暂存到内存,虽然有内存加密引擎对该存储到内存的数据进行加密保护,但是内存加密引擎的加密技术可以被盲目随机腐败攻击(blinded random corruption attack,BRCA)攻击成功。被攻击成功的数据再读回可信执行环境中后,会威胁可信执行环境中的数据安全。示例性的,在BRCA攻击中,攻击者可以选定进程的用户标识(user identifier,UID)进行暴力破解。因为进程的UID通常为一个32位的整数,经过2^32次暴力破解后,攻击者就有机会将一个用户权限的进程的UID修改为0。而UID为0意味着进程从用户权限的状态变成了内核权限的状态,即实现了恶意提权。修改后的UID重新读回可信执行环境中后,会导致数据被恶意获取或者劫持等等。
为了使得计算机系统中可信执行环境中的数据更加安全,本申请实施例提供了一种数据完整性保护方法。为了更好的理解本申请实施例提供的一种数据完整性保护方法,下面对本申请实施例适用的计算机系统进行示例性地描述。
参见图3,图3示例性示出了本申请实施例适用的计算机系统200。该计算机系统200相比于上述图1所示的计算机系统100,在可信操作系统2112中部署了数据完整性保护模块21121,即该数据完整性保护模块21121为基于软件实现的。该数据完整性保护模块21121部署在可信操作系统2112中,该数据完整性保护模块21121的权限等级与可信操作系统2112的权限等级相同。在该可信执行环境211中,该可信操作系统2112在软件栈中的权限等级最高,那么,该数据完整性保护模块21121在软件栈中的权限等级也是最高的。因此,该数据完整性保护模块21121可以对可信执行环境211中的数据进行完整性校验,并且无法被低权限等级的恶意软件攻击和篡改。该数据包括对从内存240读取到可信执行环境211中的数据。图3中其它模块的描述可以参见上述图1中的对应描述,此处不再赘述。
另一种可能的实施方式中,参见图4,图4示例性示出了本申请实施例适用的另一种计算机系统200。该计算机系统200相比于上述图2所示的计算机系统100,在虚拟化管理软件2113中部署了数据完整性保护模块21131,即该数据完整性保护模块21131为基于软件实现的。该数据完整性保护模块21131部署在虚拟化管理软件2113中,该数据完整性保护模块21131的权限等级与虚拟化管理软件2113的权限等级相同。在该可信执行环境211中,该虚拟化管理软件2113在软件栈中的权限等级最高,那么,该数据完整性保护模块21131在软件栈中的权限等级也是最高的。因此,该数据完整性保护模块21131可以对可信执行环境211中的数据进行完整性校验,并且无法被低权限等级的恶意软件攻击和篡改。该数据包括对从内存240读取到可信执行环境211中的数据。图4中其它模块的描述可以参见上述图1和图2中的对应描述,此处不再赘述。
另一种可能的实施方式中,对于上述图4所示的计算机系统200,数据完整性保护模块也可以是部署在可信操作系统2112中。
参见图5,图5示例性示出了上述数据完整性保护模块的框架示意图。图5所示数据完整性保护模块500包括监测模块501、数据识别模块502、度量值计算模块503、校验触发模块504、比较模块505以及处置模块506。
监测模块501可以用于监测可信执行环境中是否产生新的数据。该新的数据包括新进程的创建产生的数据或初始化的数据等。监测模块501还可以用于监测可信执行环境中的数据的变化情况,例如监测数据的值是否出现变更等。
数据识别模块502可以用于从监测模块501监测到的数据中提取出涉及系统安全的数据。该涉及系统安全的数据例如可以是进程的UID、进程所属组的身份标识(groupidentifier,GID)、权限参数(例如能力(capability)的参数)或者页表等数据。具体实现中,数据识别模块502可以基于预先设置好的关键词从监测到的数据中提取出涉及系统安全的数据。示例性地,可以通过正则表达式等方式从监测到的数据中提取出涉及系统安全的数据。
通过数据识别模块502提取出涉及系统安全的数据来进行完整性校验,相比于对监测到的所有数据进行完整性校验,在保证了数据安全性的同时可以减少计算复杂性,节省处理资源。一种可能的实施方式中,数据完整性保护模块500也可以不包括数据识别模块502,即对监测到的数据均进行完整性校验,同样可以提高可信执行环境中数据的安全性。
度量值计算模块503可以用于计算数据的完整性度量值。示例性地,可以通过MAC算法计算数据的完整性度量值,具体的,基于MAC算法计算的得到的数据的MAC值即为数据的完整性度量值。或者,可以通过哈希算法计算数据的完整性度量值,具体的,基于哈希算法计算的得到的数据的哈希值即为数据的完整性度量值。
度量值计算模块503对可信执行环境新产生的数据计算得到的完整性度量值作为该新产生数据的完整性度量基准值,并将该完整性度量基准值保存到可信执行环境中的存储空间中。该存储空间可以是该可信执行环境中的加密存储空间。一个数据的完整性度量基准值为判断该数据是否完整的标准。在后续的校验过程中,度量值计算模块503会再次计算该数据的完整性度量值,只有该再次计算得到的完整性度量值与该数据的完整性度量基准值相等,该数据的完整性校验才通过。
校验触发模块504可以用于定时触发对可信执行环境中的数据的校验。
示例性地,该校验触发模块504可以是一个定时模块,可以配置具体的触发数据校验的定时周期,以使得每隔一个定时周期就触发一次数据的完整性校验。示例性地,该定时周期可以是10秒、30秒或者一分钟等,本申请对该具体的定时周期不做限制。
另一种可能的实现方式中,该校验触发模块504可以是设置有预设触发条件的触发模块,例如,该预设触发条件可以是数据从内存读回可信执行环境等。那么,只要监测到有数据从内存读回可信执行环境,就可以触发对该读回的数据进行完整性校验。
比较模块505用于实现数据的完整性度量值与该数据的完整性度量基准值的比较。
处置模块506用于基于完整性校验的结果做出相应的处理操作。示例性地,若数据的完整性校验通过,则处置模块506可以记录该完整性校验通过的结果。若数据的完整性校验不通过,即数据的完整性出现异常,则处置模块506可以记录该异常的结果,并执行一些异常的处理操作。该异常的处理操作例如可以是丢弃异常的数据或者关闭使用异常数据的进程等。该处置模块506会记录具体执行的异常处理操作。
可以理解的是,上述数据完整性保护模块500为了实现上述对应的功能,其包含了执行各个功能相应的软件模块。需要说明的是,本申请实施例对软件模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
基于上述介绍本申请实施例适用的计算机系统,本申请实施例提供的数据完整性保护方法包括:通过数据完整性保护模块对可信执行环境中的数据进行完整性校验。示例性地,该数据完整性保护模块可以是上述数据完整性保护模块500。
为了便于描述,下面以第一数据为例介绍。在具体实现中,该第一数据随着某个进程的创建或者应用程序的初始化等情况首次出现在计算机系统的可信执行环境中。上述数据完整性保护模块监测到该首次出现的第一数据后,计算该第一数据的完整性度量基准值。然后,保存该第一数据的完整性度量基准值。示例性的,可以通过上述监测模块501监测到该第一数据,然后通过上述度量值计算模块503计算该第一数据的完整性度量基准值。
可能的实现方式中,上述第一数据可以是数据完整性保护模块监测到的原始的数据,或者,可以是从该监测到的原始的数据中提取出来的涉及系统安全的数据。示例性地,可以通过上述数据识别模块502实现该第一数据的提取。具体的,数据识别模块502可以基于该第一数据的关键词(例如UID或者GID等)从上述监测模块501监测到的数据中提取出涉及系统安全的第一数据。示例性地,可以通过正则表达式等方式从监测到的数据中提取出该第一数据。
对于上述第一数据,可以随着进程的运行被发送到计算机系统的内存中暂存。可选的,该第一数据被存储到内存中之前可以被计算机系统中的内存加密模块(例如上述图1中介绍的内存加密模块120)进行加密,然后将加密的第一数据存储到内存中。该第一数据在内存中完成其任务之后,会被读回可信执行环境。可选的,内存中的第一数据可以先经过内存加密模块解密后再发送到可信执行环境。为了确保读回可信执行环境中的第一数据的安全性,上述数据完整性保护模块可以对该读回的第一数据进行完整性校验。
示例性地,上述校验触发模块504监测到第一数据从内存读回可信执行环境,或者该校验触发模块中设定的数据校验的定时周期到期,则可以触发调用上述度量值计算模块503计算该读回的第一数据的完整性度量值。然后,比较模块505获取存储的该第一数据的完整性度量基准值,将其与计算得到的第一数据的完整性度量值进行比较。若该两个值相同,则该第一数据的完整性校验通过,即确定了该第一数据的完整性完好,没有被攻击或篡改。若该两个值不同,则表明读回的该第一数据存在异常,那么,可以通过上述处置模块506基于该完整性异常的校验结果,对该读回的第一数据进行对应的异常处理。具体的异常处理可以参见前述关于该处置模块506的对应的描述,此处不再赘述。
一种可能的实现方式中,由于上述第一数据的值在进程运行的过程中可以出现合法的变更,为了有效地实现数据的完整性校验,那么该第一数据对应的完整性度量基准值也需要跟着更新。因此,示例性地,可以通过上述监测模块501来监测该第一数据的变化情况。在该监测模块501监测到该第一数据的值出现合法变更的情况下,调用上述度量值计算模块503计算变更之后的第一数据的完整性度量值。并将该计算得到的完整性度量值作为该第一数据新的完整性度量基准值,然后将原来存储的第一数据的完整性度量基准值替换为该新的完整性度量基准值。在该第一数据后续的完整性校验中,采用该新的完整性度量基准值作为判断标准。
为了便于理解本申请实施例提供的数据完整性保护方法,可以示例性地参见图6。图6示例性示出了该方法的流程示意图。该方法包括但不限于如下流程:
①监测模块监测到新的目标数据;
②数据识别模块从上述目标数据提取涉及系统安全的数据;
③度量值计算模块计算该涉及系统安全的数据的完整性度量基准值并存储;
④监测模块监测到上述目标数据的值出现合法变更;
⑤校验触发模块调用度量值计算模块重新计算该涉及系统安全的数据的完整性度量值;
⑥比较模块判断计算得到的度量值与度量基准值是否匹配;
⑦处置模块进行异常处理;
⑧完整性校验通过。
具体的,首先,监测模块监测到新的目标数据,数据识别模块从该目标数据提取涉及系统安全的数据。然后,度量值计算模块计算该涉及系统安全的数据的完整性度量基准值并存储。监测模块同时会监测该目标数据书否出现合法变更,若出现合法变更,则会再次调用数据识别模块从变更后的目标数据提取涉及数据安全的数据,已重新进行完整性度量基准值的计算,然后用新计算得到的完整性度量基准值替换原来的完整性度量基准值进行存储。另外,在计算得到前述涉及系统安全的数据的完整性度量基准值后,校验触发模块也会同时启动。一旦满足完整性校验的触发条件,该校验触发模块调用度量值计算模块重新计算该涉及系统安全的数据的完整性度量值。然后,比较模块会判断该新计算得到的完整性度量与对应的完整性度量基准值是否匹配。若不匹配,则处置模块进行异常处理。若匹配,则该涉及系统安全的数据的完整性校验通过。
关于上述图6所示流程的具体实现可以参见前面的描述,此处不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述数据完整性保护方法及其可能的方法实施例中任一实施例所述的方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述数据完整性保护方法及其可能的方法实施例中任一实施例所述的方法将被实现。
本申请实施例还提供一种电子设备,该电子设备包括上述本申请实施例提供的计算机系统,以及耦合于该计算机系统的分立器件。
综上所述,本申请通过在可信执行环境中部署数据完整性保护模块,以用于对可信执行环境中的数据,特别是对可信执行环境中来自内存的数据进行完整性校验,从而实现了可信执行环境中数据的完整性保护,提高数据的安全性。本申请的方案可以是在全内存加密技术的基础上增加的数据的完整性校验方案,可以有效防止数据被攻击,进一步提高数据的安全防护。另外,相比于现有方案,本申请无需对硬件进行改动,降低了硬件成本。
此外,本申请采用的定时校验机制,相比于每次读写都触发完整性校验带来的高性能开销,对于需要花费分钟级的时间才能攻击成功的暴力破解的BRCA类等攻击场景,合理的定时校验机制结合内存加密,可以在保证了系统安全性的同时,有效的提升了性能。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (17)

1.一种数据完整性保护方法,其特征在于,所述方法应用于处理器,所述处理器包括可信执行环境和非可信执行环境,所述可信执行环境中包括基于软件实现的数据完整性保护模块;所述方法包括:
通过所述数据完整性保护模块对第一数据进行完整性校验;所述第一数据为从内存读取到所述可信执行环境中的数据。
2.根据权利要求1所述的方法,其特征在于,所述数据完整性保护模块部署在所述可信执行环境的虚拟化管理软件中。
3.根据权利要求1所述的方法,其特征在于,所述数据完整性保护模块部署在所述可信执行环境的操作系统软件中。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述通过所述数据完整性保护模块对第一数据进行完整性校验,包括:
通过所述数据完整性保护模块执行如下操作:
计算所述第一数据的完整性度量值;
在所述完整性度量值与所述第一数据的完整性度量基准值匹配的情况下,确定所述第一数据的完整性校验通过。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述通过所述数据完整性保护模块对第一数据进行完整性校验之前,还包括:
通过所述数据完整性保护模块监测所述可信执行环境中的数据变化情况;
在监测到所述可信执行环境中第一次出现所述第一数据的情况下,通过所述数据完整性保护模块计算所述第一数据的完整性度量基准值,并存储所述第一数据的完整性度量基准值。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
通过所述数据完整性保护模块监测所述可信执行环境中的数据变化情况;
在监测到所述第一数据的值出现合法变更的情况下,通过所述数据完整性保护模块重新计算所述第一数据的完整性度量基准值,并将已存储的所述第一数据的完整性度量基准值替换为所述重新计算得到的完整性度量基准值。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述第一数据为所述可信执行环境中涉及系统安全的数据。
8.一种装置,其特征在于,所述装置包括处理器,所述处理器包括可信执行环境和非可信执行环境,所述可信执行环境中包括基于软件实现的数据完整性保护模块;
所述数据完整性保护模块用于:
对第一数据进行完整性校验;所述第一数据为从内存读取到所述可信执行环境中的数据。
9.根据权利要求8所述的装置,其特征在于,所述数据完整性保护模块部署在所述可信执行环境的虚拟化管理软件中。
10.根据权利要求8所述的装置,其特征在于,所述数据完整性保护模块部署在所述可信执行环境的操作系统软件中。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述数据完整性保护模块具体用于:
计算所述第一数据的完整性度量值;
在所述完整性度量值与所述第一数据的完整性度量基准值匹配的情况下,确定所述第一数据的完整性校验通过。
12.根据权利要求8-11任一项所述的装置,其特征在于,所述数据完整性保护模块还用于:
监测所述可信执行环境中的数据变化情况;
在监测到所述可信执行环境中第一次出现所述第一数据的情况下,计算所述第一数据的完整性度量基准值,并存储所述第一数据的完整性度量基准值。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述数据完整性保护模块还用于:
监测所述可信执行环境中的数据变化情况;
在监测到所述第一数据的值出现合法变更的情况下,重新计算所述第一数据的完整性度量基准值,并将已存储的所述第一数据的完整性度量基准值替换为所述重新计算得到的完整性度量基准值。
14.根据权利要求8-13任一项所述的装置,其特征在于,所述第一数据为所述可信执行环境中涉及系统安全的数据。
15.一种电子设备,其特征在于,包括:如权利要求8至14任一项所述的装置,以及耦合于所述装置的分立器件。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1-7任意一项所述的方法。
17.一种计算机程序产品,其特征在于,包括计算机程序,当该计算机程序被计算机执行时,使得所述计算机实现如权利要求1-7任意一项所述的方法。
CN202111507923.2A 2021-12-10 2021-12-10 数据完整性保护方法及相关装置 Pending CN116257889A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111507923.2A CN116257889A (zh) 2021-12-10 2021-12-10 数据完整性保护方法及相关装置
PCT/CN2022/136827 WO2023104013A1 (zh) 2021-12-10 2022-12-06 数据完整性保护方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111507923.2A CN116257889A (zh) 2021-12-10 2021-12-10 数据完整性保护方法及相关装置

Publications (1)

Publication Number Publication Date
CN116257889A true CN116257889A (zh) 2023-06-13

Family

ID=86684900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111507923.2A Pending CN116257889A (zh) 2021-12-10 2021-12-10 数据完整性保护方法及相关装置

Country Status (2)

Country Link
CN (1) CN116257889A (zh)
WO (1) WO2023104013A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024078159A1 (zh) * 2022-10-09 2024-04-18 华为技术有限公司 完整性度量方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107679393B (zh) * 2017-09-12 2020-12-04 中国科学院软件研究所 基于可信执行环境的Android完整性验证方法和装置
CN113468535B (zh) * 2020-03-31 2024-06-25 华为技术有限公司 可信度量方法及相关装置
CN112434306B (zh) * 2020-12-11 2024-04-16 中国科学院信息工程研究所 可信度量方法,装置,系统,电子设备及存储介质
CN113190831A (zh) * 2021-05-27 2021-07-30 中国人民解放军国防科技大学 一种基于tee的操作系统应用完整性度量方法及系统
CN113312640B (zh) * 2021-05-31 2022-05-24 天津理工大学 一种基于可信计算的软件数据完整性多方共识方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024078159A1 (zh) * 2022-10-09 2024-04-18 华为技术有限公司 完整性度量方法及装置

Also Published As

Publication number Publication date
WO2023104013A1 (zh) 2023-06-15

Similar Documents

Publication Publication Date Title
US10922441B2 (en) Device and method for data security with a trusted execution environment
CN108573144B (zh) 安全的执行上下文数据
US10516533B2 (en) Password triggered trusted encryption key deletion
US8677482B2 (en) Hardware security for software processes
Dunn et al. Cloaking malware with the trusted platform module
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
US8601273B2 (en) Signed manifest for run-time verification of software program identity and integrity
US9514300B2 (en) Systems and methods for enhanced security in wireless communication
US8364973B2 (en) Dynamic generation of integrity manifest for run-time verification of software program
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
Morbitzer et al. Extracting secrets from encrypted virtual machines
US20120324236A1 (en) Trusted Snapshot Generation
KR20170095161A (ko) 시큐어 시스템 온 칩
CN110233817B (zh) 一种基于云计算的容器安全系统
KR20040094724A (ko) 멀티-토큰 실 및 실 해제
CN108595983B (zh) 一种基于硬件安全隔离执行环境的硬件架构、及应用上下文完整性度量方法
CN109446799B (zh) 内存数据保护方法、安全组件和计算机设备及存储介质
Fisher et al. Trust and trusted computing platforms
WO2023104013A1 (zh) 数据完整性保护方法及相关装置
Jha et al. Trusted platform module-based privacy in the public cloud: challenges and future perspective
Zhao et al. Gracewipe: Secure and Verifiable Deletion under Coercion.
CN114816549B (zh) 一种保护bootloader及其环境变量的方法及系统
CN108345804B (zh) 一种可信计算环境中的存储方法和装置
US9177160B1 (en) Key management in full disk and file-level encryption
Suciu et al. DroidSentry: Efficient code integrity and control flow verification on TrustZone devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication