CN111967065B - 一种数据保护方法、处理器及电子设备 - Google Patents

一种数据保护方法、处理器及电子设备 Download PDF

Info

Publication number
CN111967065B
CN111967065B CN202010828279.8A CN202010828279A CN111967065B CN 111967065 B CN111967065 B CN 111967065B CN 202010828279 A CN202010828279 A CN 202010828279A CN 111967065 B CN111967065 B CN 111967065B
Authority
CN
China
Prior art keywords
page data
written
physical address
metadata
page
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.)
Active
Application number
CN202010828279.8A
Other languages
English (en)
Other versions
CN111967065A (zh
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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202010828279.8A priority Critical patent/CN111967065B/zh
Publication of CN111967065A publication Critical patent/CN111967065A/zh
Application granted granted Critical
Publication of CN111967065B publication Critical patent/CN111967065B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及一种数据保护方法、处理器及电子设备,属于计算机技术领域。该方法包括:硬件加速模块接收安全处理器发送的内存页换入请求;从待换入页面的源地址中取出待写入页面数据,基于待写入页面数据生成消息认证码,以及根据预先建立的对应关系,获得目的物理地址对应的元数据地址,并从元数据地址取出元数据,元数据为将待写入页面数据从内存换出时基于待写入页面数据生成的,其中包括消息认证码;基于待写入页面数据生成消息认证码以及元数据中的消息认证码,对待写入页面数据进行安全验证;在待写入页面数据通过安全验证后,将待写入页面数据写入目的物理地址指向的地址空间。该方法可以提高内存页面换入/换出的效率。

Description

一种数据保护方法、处理器及电子设备
技术领域
本申请属于计算机技术领域,具体涉及一种数据保护方法、处理器及电子设备。
背景技术
虚拟化技术是云计算的核心技术之一,通过虚拟化,能够灵活的将一台计算机的资源按照需求划分成为多台虚拟机,并提供给多个不同的用户同时使用,从而有效提高了硬件资源的利用率,降低使用成本。虚拟化的好坏关系着虚拟机(Virtual Machine,VM)的稳定、性能和安全,而虚拟化中的安全涉及到内存、存储、输入/输出(Input/Output,I/O)等各个方面,其中对内存的保护格外重要,计算机中所有程序的运行都是在内存中进行的,但是由于内存大小的限制,在内存不足时,必须将某些数据从内存移动到磁盘中去,这个过程叫做换出,在启动一个新的进程时,将该进程从磁盘移动到内存空间中,这个过程叫换入。
现有技术中,当处理器中的主中央处理器(Central Processing Unit,CPU,为处理器中的处理器核)需要对内存页换入/换出时,向集成芯片(System On Chip,SOC)中的安全处理器(Platform Security Processor,PSP)发出内存页换入/换出请求(该请求中携带有源地址和目的地址)。安全处理器接收到内存页换出请求时,从存放待换出页面的源地址中取出页面数据,并对其进行加密,然后将其写到指定的目的地址;换入时,从待换入页面的源地址获取内存页数据,然后对其进行解密,然后再将解密的内存页数据写入指定的目的地址。现有内存页面换出/换入时,需要依赖安全处理器来对换出的页面数据进行加密,以及对换入的页面数据进行解密,由于安全处理器在对数据进行加解密时是采用软件程序的方式进行加解密,会占用大量的运算资源,从而导致换入/换出效率不高。
发明内容
鉴于此,本申请的目的在于提供一种数据保护方法、处理器及电子设备,以改善现有依赖安全处理器来对换出的页面数据进行加密以及对换入的页面数据进行解密导致的换入/换出效率不高的问题。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种数据保护方法,应用于处理器,所述处理器包括:安全处理器和硬件加速模块,所述方法包括:所述硬件加速模块接收所述安全处理器发送的内存页换入请求,所述内存页换入请求包括待换入页面的源地址、存放所述待换入页面的目的物理地址;所述硬件加速模块从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据,其中,所述元数据为将所述待写入页面数据从内存换出时基于所述待写入页面数据生成的,其中包括消息认证码;所述硬件加速模块基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证;在所述待写入页面数据通过安全验证后,所述硬件加速模块将所述待写入页面数据写入所述目的物理地址指向的地址空间。本申请实施例中,通过在处理器中,增加硬件加速模块,协助安全处理器进行数据的换入和换出操作,以提高内存页面换入/换出效率,同时也不再是采用简单的加解密的方式来保证数据的安全性,而是通过在换出时生成包括消息认证码MAC的元数据,在换入时,基于待换入页面数据生成的MAC以及换出时生成的MAC对待换入页面数据进行安全校验,只有校验通过后,才写入,提高了数据的安全性。
结合第一方面实施例的一种可能的实施方式,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证,包括:将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,则表征所述待写入页面数据通过安全验证。本申请实施例中,将基于待写入页面数据生成的消息认证码与元数据中的消息认证码进行比对,便可快速实现对待写入页面数据的安全验证,提高了效率。
结合第一方面实施例的一种可能的实施方式,所述待写入页面数据为虚拟机数据,所述元数据还包括所述待写入页面数据对应的虚拟机物理地址;所述方法还包括:所述硬件加速模块根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述目的物理地址对应的虚拟机物理地址;相应地,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证,包括:基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证。本申请实施例中,当待写入页面数据为虚拟机数据,通过进一步将虚拟机物理地址也纳入考虑之内,在对待换入页面数据进行校验时,基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证,以进一步提高数据的安全性。
结合第一方面实施例的一种可能的实施方式,基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证,包括:将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对,以及将所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,且所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址一致,则表征所述待写入页面数据通过安全验证。本申请实施例中,将基于待写入页面数据生成的消息认证码与元数据中的消息认证码进行比对,以及将目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址进行比对,便可快速实现对待写入页面数据的安全验证,提高了效率。
结合第一方面实施例的一种可能的实施方式,所述内存页换入请求还包括:地址空间识别符号ASID;基于所述待写入页面数据生成消息认证码,包括:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待写入页面数据进行加密,并基于所述初始向量对加密后的待写入页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。本申请实施例中,通过在内存页换入请求中携带ASID,使得在基于待写入页面数据生成MAC时,可以根据ASID来动态的选取与之对应的加密密钥和用于哈希算法的初始向量来生成,提高了数据的安全性,减少被篡改的风险。
结合第一方面实施例的一种可能的实施方式,获取与所述ASID对应的加密密钥,包括:根据所述ASID获得初始密钥;将所述初始密钥与内存的物理地址进行非线性变换,得到所述加密密钥。本申请实施例中,还通过将根据ASID获得的初始密钥与内存的物理地址进行非线性变换,来作为加密密钥,以进一步增强安全性。
结合第一方面实施例的一种可能的实施方式,所述方法还包括:所述硬件加速模块接收所述安全处理器发送的内存页换出请求,所述内存页换出请求包括:待换出页面的源物理地址和存放所述待换出页面的目的地址;所述硬件加速模块从所述待换出页面的源物理地址中取出待换出页面数据,并将所述待换出页面数据写入所述目的地址指向的地址空间;以及基于所述待换出页面数据生成消息认证码,并根据预先建立的***物理地址与元数据地址的对应关系,获得所述源物理地址对应的元数据地址,并将基于所述待换出页面数据生成的消息认证码作为元数据的一部分写入所述元数据地址指向的地址空间。本申请实施例中,在换出时,基于待换出页面数据生成消息认证码,并将其作为元数据的一部分存储到元数据地址指向的地址空间,以便于在换入时,基于待换入页面数据生成的MAC以及换出时生成的MAC对待换入页面数据进行安全校验,保证了数据的安全性。
结合第一方面实施例的一种可能的实施方式,所述待换出页面数据为虚拟机数据,所述方法还包括:根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述源物理地址对应的虚拟机物理地址;将所述源物理地址对应的虚拟机物理地址作为所述元数据的一部分写入所述元数据地址指向的地址空间。本申请实例中,待换出页面数据为虚拟机数据,在换出时,将源物理地址对应的虚拟机物理地址也作为元数据的一部分写入元数据地址指向的地址空间,使得在换入时,将虚拟机物理地址也纳入考虑之内,基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证,以进一步提高数据的安全性。
结合第一方面实施例的一种可能的实施方式,所述内存页换出请求还包括:地址空间识别符号ASID;基于所述待换出页面数据生成消息认证码,包括:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待换出页面数据进行加密,并基于所述初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。本申请实施例中,通过在内存页换出请求中携带ASID,使得在基于待换出页面数据生成MAC时,可以根据ASID来动态的选取与之对应的加密密钥和用于哈希算法的初始向量来生成,提高了数据的安全性,减少被篡改的风险。
第二方面,本申请实施例还提供了一种处理器,包括:安全处理器,硬件加速模块;所述硬件加速模块,用于接收所述安全处理器发送的内存页换入请求,所述内存页换入请求包括待换入页面的源地址、存放所述待换入页面的目的物理地址;用于从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据,其中,所述元数据为将所述待写入页面数据从内存换出时基于所述待写入页面数据生成的,其中包括消息认证码;用于基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证;并在所述待写入页面数据通过安全验证后,还用于将所述待写入页面数据写入所述目的物理地址指向的地址空间。
结合第一方面实施例的一种可能的实施方式,所述硬件加速模块,用于将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,则表征所述待写入页面数据通过安全验证。
结合第一方面实施例的一种可能的实施方式,所述待写入页面数据为虚拟机数据,所述元数据还包括所述待写入页面数据对应的虚拟机物理地址;所述硬件加速模块,还用于根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述目的物理地址对应的虚拟机物理地址;相应地,所述硬件加速模块,用于基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证。
结合第一方面实施例的一种可能的实施方式,所述硬件加速模块,用于将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对,以及将所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,且所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址一致,则表征所述待写入页面数据通过安全验证。
结合第一方面实施例的一种可能的实施方式,所述内存页换入请求还包括:地址空间识别符号ASID;所述硬件加速模块,用于:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待写入页面数据进行加密,并基于所述初始向量对加密后的待写入页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
结合第一方面实施例的一种可能的实施方式,所述硬件加速模块,用于:根据所述ASID获得初始密钥;将所述初始密钥与内存的物理地址进行非线性变换,得到所述加密密钥。
结合第一方面实施例的一种可能的实施方式,所述硬件加速模块,还用于:接收所述安全处理器发送的内存页换出请求,所述内存页换出请求包括:待换出页面的源物理地址和存放所述待换出页面的目的地址;从所述待换出页面的源物理地址中取出待换出页面数据,并将所述待换出页面数据写入所述目的地址指向的地址空间;以及基于所述待换出页面数据生成消息认证码,并根据预先建立的***物理地址与元数据地址的对应关系,获得所述源物理地址对应的元数据地址,并将基于所述待换出页面数据生成的消息认证码作为元数据的一部分写入所述元数据地址指向的地址空间。
结合第一方面实施例的一种可能的实施方式,所述待换出页面数据为虚拟机数据,所述硬件加速模块,用于:根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述源物理地址对应的虚拟机物理地址;将所述源物理地址对应的虚拟机物理地址作为所述元数据的一部分写入所述元数据地址指向的地址空间。
结合第一方面实施例的一种可能的实施方式,所述内存页换出请求还包括:地址空间识别符号ASID;所述硬件加速模块,用于:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待换出页面数据进行加密,并基于所述初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
第三方面,本申请实施例还提供了一种电子设备,包括:内存和如上述第二方面实施例和/或结合第二方面实施例的任一种可能的实施方式提供的所述的处理器,所述内存与所述处理器连接。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种处理器与内存的交互示意图。
图2示出了本申请实施例提供的一种硬件加速模块结构示意图。
图3示出了本申请实施例提供的一种虚拟机页面换出过程的原理示意图数据保护方法的。
图4示出了本申请实施例提供的一种虚拟机页面换入过程的原理示意图。
图5示出了本申请实施例提供的一种数据保护方法的流程示意图。
图6示出了本申请实施例提提的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
鉴于现有内存页面换出/换入时,需要依赖安全处理器来对换出的页面数据进行加密,以及对换入的页面数据进行解密,由于安全处理器在对数据进行加解密时是采用软件程序的方式进行加解密,会占用大量的运算资源,从而导致换入/换出效率不高。基于此,本申请实施例提供了一种数据保护方法,通过在处理器中增加硬件加速模块,协助安全处理器进行数据的换入和换出操作,以提高内存页面换入/换出效率。
为了便于理解,下面将结合图1所示的处理器与内存的交互示意图进行说明。该处理器包括:处理器核(如CPU核)、安全子***(例如处理器中的PSP(Platform SecurityProcessor)子***)、硬件加速模块和内存控制器(Universal Memory Controller,UMC)。通过使用硬件加速模块来基于待迁出数据生成的元数据(Metadata)以及完成对待迁入数据的校验等操作,以减轻安全处理器的负担,提高内存页面换入/换出的效率。
处理器核与安全处理器和内存控制器连接,安全处理器还与硬件加速模块和内存控制器连接。其中,硬件加速模块和安全处理器可以是独立的两个集成芯片(SOC),作为一种实施方式,该硬件加速模块可以是集成在安全子***中,以尽可能的减少电路的体积,此时该安全子***包括:作为安全子***中的控制处理器的安全处理器和硬件加速模块。
其中,内存用于暂时存放处理器需要的运算数据,以及与硬盘等外部存储器交换的数据,该内存可以是双倍速率同步动态随机存储器(Double Data Rate,DDR),也还可以是其他的存储器,如随机存取存储器(Random Access Memory,RAM),动态随机存储器(Dynamic Random Access Memory,DRAM)等。
上述的处理器可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、加速处理器(Accelerated Processing Unit)等,也还可以是其他类型的处理器,如网络处理器(Network Processor,NP)、应用处理器,当然在某些产品中,应用处理器就是CPU。
本申请实施例中,处理器中的处理器核的数量为至少一个,以提高运算能力及提高***的稳定性等,即便是某个处理器核损坏时,也能保证稳定运行。可选地,至少一个处理器核上部署有虚拟机(Virtual Machine,VM)和虚拟机监视器(Virtual MachineMonitor VMM)。硬件虚拟化技术中,使用VMM来隔离虚拟***与宿主硬件。VMM也可称为虚拟机管理器,其可直接运行在***硬件上,也可以运行在宿主操作***上。VMM实现了从虚拟资源到物理资源的映射,并利用本地物理资源进行计算。当虚拟***访问***资源时,VMM将接管这个请求,并将处理结果返回给虚拟机***,这样就实现了多个硬件设备的虚拟,保证虚拟***的有效隔离。其中,需要说明的是,本申请实施例提供的数据保护方法并不限于虚拟机内存页的换入/换出保护,也可以适用于非虚拟机内存页的换入/换出保护,因此不能将图1中实例的包含虚拟机和虚拟机监视器的场景理解成是对本申请的限制。
安全处理器在接收到CPU核(处理器核)发送的指令时,若识别出该指令为内存页面换入/换出指令后,向硬件加速模块发送内存页面换入/换出请求,以协助CPU核完成换入页面的解密和完整性校验、以及换出页面的加密和完整性保护。该内存页面换入/换出请求中需要携带有完成换入/换出操作所需的相关信息,包括但不限于以下信息:
待换入页面的源地址,或者,待换出页面的源物理地址(为内存***物理地址(System Physical Address,SPA);
存放待换入页面的目的物理地址(为内存***物理地址SPA),或者,存放待换出页面的目的地址;
用于获取加密密钥的地址空间识别符号(Address Space Identifier,ASID)也即索引值,其可以是虚拟机标签,根据***需要而定,可以携带在待换出页面的源物理地址或存放待换入页面的目的物理地址中;
用以表示内存页面换入/换出方向的标识:换入,或者,换出;
用以表示是否需要加密或解密的标识位,可以用地址中的一个bit位表示;
用以表示待换出或等写入数据是否为虚拟机数据的标识位,可以用地址中的一个bit位表示;
以及其它消息传递所必要信息。
其中,安全处理器在向硬件加速模块发送内存页换入/换出请求之前,还可以将以下信息下发给硬件加速模块:
事先建立的***物理地址SPA与元数据(Metadata)地址的对应关系(如关系表或关系数组);
事先建立的***物理地址SPA与虚拟机物理地址(Guest Physical Address,GPA)的对应关系(如关系表或关系数组);
以及事先建立的ASID与密钥信息、初始向量的对应关系(如关系表或关系数组)。
其中,***物理地址与元数据地址的对应关系,用于在换出时,基于待换出页面的源物理地址查找对应的元数据地址,以便于将基于待换出页面数据生成的消息认证码(Message Authentication Code,MAC)作为元数据的一部分写入元数据地址指向的地址空间,以及在换入时,基于存放待换入页面的目的物理地址,查找对应的元数据地址,并从中获取在换出时生成的元数据,以便于基于获取的元数据中的消息认证码以及基于待写入页面数据生成消息认证码,对待写入页面数据进行安全验证。
其中,***物理地址与虚拟机物理地址的对应关系,用于当待写入页面数据或待换出页面数据为虚拟机数据时,还基于待换出页面的源物理地址查找对应的虚拟机地址(根据安全虚拟机的管理要求,SPA只能和唯一的GPA对应),以便于将其作为元数据的一部分写入元数据地址指向的地址空间,以及在在换入时,基于存放待换入页面的目的物理地址,查找对应的虚拟机地址,以便于将其与元数据中的虚拟机地址进行比对来验证待写入数据的安全性。
其中,建立的ASID与密钥信息、初始向量的对应关系,用于在换入或换出时,基于换入或换出中的ASID获取对应的密钥信息、初始向量,以便于基于待换入页面数据或待换出页面生成消息认证码。例如,根据该对应关系,获取内存页换入/换出请求中携带的ASID对应的密钥信息和用于哈希计算的初始向量,然后利用该密钥信息对待写入页面数据或者待换出页面数据进行加密,并基于初始向量对加密后的待写入页面数据或者待换出页面数据进行哈希运算,便可得到消息认证码。
其中,该硬件加速模块,包括但不限于以下功能:
根据***物理地址(SPA)进行虚拟机物理地址(GPA)的查找功能,硬件加速模块根据SPA和GPA的对应关系,通过查找对应关系的方式,获得安全处理器配置的SPA对应的GPA,该GPA作为元数据的一部分被存入Metadata的内存地址当中,或者用于对待写入数据页面数据进行校验使用;根据***物理地址(SPA)进行元数据地址的查找功能,元数据作为虚拟机的保护数据被存储到内存当中,元数据在内存中的位置与其他数据相同,以页的形式进行管理;根据待换出的页面数据,生成MAC,将其作为元数据的一部分被存储到上述Metadata的内存地址当中;按照一定方法得到或者计算出生成消息认证码MAC所使用的key;对要换入的页面生成MAC并与从上述Metadata的内存地址中取出的页面换出之前生成的MAC进行对比,以确定换入内存的数据是否可靠;数据搬移功能,将内存数据从源地址搬移到目的地址。
其中,如图2所示,该硬件加速模块包括:
存储器直接访问控制器(Direct Memory Access Controller,DMAC),其可以访问内存,向内存写入数据或从内存读出数据;
地址转换模块,用于根据***物理地址与元数据地址的对应关系以及***物理地址与虚拟机物理地址的对应关系,找到SPA对应的GPA以及Metadata地址;
比较模块,用于将基于待写入页面数据生成的MAC与元数据中的MAC码进行比对,以及将目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址进行比对;
以及MAC值生成模块,用于基于待换入页面数据以及待换出页面数据生成MAC。
其中,存储器直接访问控制器与分别地址转换模块、比较模块、MAC值生成模块连接。
当CPU核需要对内存页面数据换出时,向SOC中的安全子***发出内存页面换出指令,安全处理器(为安全子***中的控制处理器)收到CPU核发出的内存页面换出指令,并识别出该指令为内存页面换出指令后,向硬件加速模块发送内存页面换出请求,其中,该内存页面请求包括:待换出页面的源物理地址和存放待换出页面的目的地址。硬件加速模块,用于接收安全处理器发送的内存页换出请求,并识别出为换出时,从待换出页面的源物理地址中取出待换出页面数据,并将待换出页面数据写入目的地址指向的地址空间,以及还用于基于待换出页面数据生成消息认证码并根据预先建立的***物理地址与元数据地址的对应关系,获得源物理地址对应的元数据地址,并将基于待换出页面数据生成的消息认证码作为元数据的一部分写入元数据地址指向的地址空间。
其中,基于待换出页面数据生成消息认证码的过程可以是:获取预先配置的加密密钥和用于哈希算法的初始向量,然后利用该加密密钥对待换出页面数据进行加密,并基于初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,哈希值即为消息认证码MAC;或者,为了进一步增加数据的安全性,其过程也可以是将预先配置的加密密钥与内存的物理地址进行非线性变换(如将ASID对应的加密密钥与内存的物理地址进行混淆),得到最终的加密密钥,并利用最终的加密密钥对待换出页面数据进行加密,以及基初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值。该种实施方式下,不同内存页之间所使用的加密密钥和用于哈希算法的初始向量是一样的。
作为一种实施方式,也可以是采用动态的加密密钥以及初始向量来对待换出页面数据进行加密,及哈希运算,即不同的内存页换出请求对应的加密密钥以及初始向量不同,以此来提高安全性,此时,该内存页换出请求还包括:地址空间识别符号ASID,一种实施方式下,该ASID可以携带在待换出页面的源物理地址中;相应地,可以根据预先配置的ASID与密钥信息、初始向量的对应关系,来获得ASID对应的加密密钥和用于哈希算法的初始向量,然后利用加密密钥对待换出页面数据进行加密,并基于初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值。在该种实施方式下,还可以将根据ASID对应的加密密钥与内存的物理地址进行非线性变换(如将ASID对应的加密密钥与内存的物理地址进行混淆),得到最终的加密密钥,并以此来对待换出页面数据进行加密。
其中,若为需要对换出的数据进行加密,则还可以采用约定的密码对其进行加密,如待换出页面的源物理地址中用于指示是否加密的bit位为高(如1),则表示需要加密,反之则不加密,当然也可以反过来,如该bit位为低(如0),则表示需要加密,反之则不加密。
可选地,若待换出页面数据为虚拟机数据,则还可以根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得源物理地址对应的虚拟机物理地址(其中,待换出页面数据即为该虚拟机物理地址对应的虚拟机的数据),将源物理地址对应的虚拟机物理地址作为元数据的一部分写入元数据地址指向的地址空间。该种实施方式下的虚拟机页面换出过程的原理示意图如图2所示。其中,可以根据待换出页面的源物理地址中用于指示是否为虚拟机数据的bit位的高低来判断待换出页面数据是否为虚拟机数据,如该bit位为高(如1),则表示为虚拟机数据,反之则为普通数据,当然也可以反过来,如该bit位为低(如0),则表示为虚拟机数据,反之则为普通数据。需要说明的是,即便是待换出的页面数据为虚拟机数据,一种实施方式下,也可以不用根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得源物理地址对应的虚拟机物理地址,将源物理地址对应的虚拟机物理地址作为元数据的一部分写入元数据地址指向的地址空间。因此不能将图3所示的情形理解成是对本申请的限制。
当CPU核需要对内存页面数据换入时,向SOC中的安全子***发出内存页面换入指令,安全处理器(为安全子***中的控制处理器)收到CPU核发出的内存页面换入指令,并识别出该指令为内存页面换入指令后,向硬件加速模块发送内存页面换入请求,其中,该内存页面请求包括:待换入页面的源地址、存放待换入页面的目的物理地址。硬件加速模块用于接收安全处理器发送的内存页换入请求,从待换入页面的源地址中取出待写入页面数据,然后基于待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得目的物理地址对应的元数据地址,并从元数据地址取出元数据(其中,元数据为将待写入页面数据从内存换出时基于待写入页面数据生成的,其中包括消息认证码);最后,硬件加速模块还用于基于待写入页面数据生成消息认证码以及元数据中的消息认证码,对待写入页面数据进行安全验证,在待写入页面数据通过安全验证后,硬件加速模块将待写入页面数据写入目的物理地址指向的地址空间。
其中,基于待换入页面数据生成消息认证码的过程可以是:获取预先配置的加密密钥和用于哈希算法的初始向量,然后利用该加密密钥对待换入页面数据进行加密,并基于初始向量对加密后的待换入页面数据进行哈希运算,生成哈希值,其中,哈希值即为消息认证码MAC;或者,为了进一步增加数据的安全性,其过程也可以是将预先配置的加密密钥与内存的物理地址进行非线性变换(如将ASID对应的加密密钥与内存的物理地址进行混淆),得到最终的加密密钥,并利用最终的加密密钥对待换入页面数据进行加密,以及基初始向量对加密后的待换入页面数据进行哈希运算,生成哈希值。该种实施方式下,不同内存页之间所使用的加密密钥和用于哈希算法的初始向量是一样的。
作为一种实施方式,也可以是采用动态的加密密钥以及初始向量来对待换入页面数据进行加密,及哈希运算,即不同的内存页换入请求对应的加密密钥以及初始向量不同,以此来提高安全性,此时,该内存页换入请求还包括:地址空间识别符号ASID,一种实施方式下,该ASID可以携带在存放待换入页面的目的物理地址中,相应地,可以根据预先配置的ASID与密钥信息、初始向量的对应关系,来获得ASID对应的加密密钥和用于哈希算法的初始向量,然后利用加密密钥对待换入页面数据进行加密,并基于初始向量对加密后的待换入页面数据进行哈希运算,生成哈希值。在该种实施方式下,还可以将根据ASID对应的加密密钥与内存的物理地址进行非线性变换(如将ASID对应的加密密钥与内存的物理地址进行混淆),得到最终的加密密钥,并以此来对待换入页面数据进行加密。
其中,一种实施方式下,基于待写入页面数据生成消息认证码以及元数据中的消息认证码,对待写入页面数据进行安全验证的过程可以是:将基于待写入页面数据生成的消息认证码与元数据中的消息认证码进行比对,其中,若基于待写入页面数据生成的消息认证码与元数据中的消息认证码一致,则表征待写入页面数据通过安全验证。此外,也可以是采用别的方式来基于待写入页面数据生成的消息认证码与元数据中的消息认证码对待写入页面数据进行安全验证,例如,采用相同的规格标准,分别对基于待写入页面数据生成的消息认证码和元数据中的消息认证码进行同样格式转换(如将二进制的MAC转换成16进制的MAC,以提高比对的效率),然后再进行比对,若两者一致,则表征待写入页面数据通过安全验证。
若待写入页面数据为虚拟机数据,一种实施方式下,元数据中还可以包括待写入页面数据对应的虚拟机物理地址,相应地,硬件加速模块还用于根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得目的物理地址对应的虚拟机物理地址,此时,基于待写入页面数据生成消息认证码以及元数据中的消息认证码,对待写入页面数据进行安全验证,变更为:基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证。
可选地,基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证的过程可以是:将基于待写入页面数据生成的消息认证码与元数据中的消息认证码进行比对,以及将目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址进行比对;其中,若基于待写入页面数据生成的消息认证码与元数据中的消息认证码一致,且目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址一致,则表征待写入页面数据通过安全验证。该种实施方式下的虚拟机页面换入过程的原理示意图如图4所示。
其中,硬件加速模块,基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证的过程还可以是:先采用相同的规格标准,分别对基于待写入页面数据生成的消息认证码和元数据中的消息认证码进行同样格式转换(如将二进制的MAC转换成16进制的MAC,以提高比对的效率),然后再比较转换后的基于待写入页面数据生成消息认证码与转换后的元数据中的消息认证码是否一致,以及将目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址进行比对;其中,若转换后的基于待写入页面数据生成的消息认证码与转换后的元数据中的消息认证码一致,且目的物理地址对应的虚拟机物理地址与元数据中的虚拟机物理地址一致,则表征待写入页面数据通过安全验证。
其中,在对待换出/换入页面数据进行加密时,所采用的加密算法可以采用目前已知的算法,如可以采用数据加密标准(Data Encryption Standard,DES)算法、高级加密标准(Advanced Encryption Standard,AES)算法、基于口令加密(Password BaseEncryption,PBE)算法、RSA算法等。
其中,在对加密后的待换出/换入页面数据进行哈希计算时,所采用的哈希计算可以是目前已知的算法,例如,MD5信息摘要算法(MD5Message-Digest Algorithm)算法和安全散列算法(Secure Hash Algorithm,SHA)算法等。
其中,该硬件加速模块还可以根据需要对待换出页面数据进行加密,以及对待换入页面数据进行解密等。
本申请实施例中,通过在处理器中,增加硬件加速模块,协助安全处理器进行数据的换入和换出操作,以提高内存页面换入/换出效率,同时也不再是采用简单的加解密的方式来保证数据的安全性,而是通过在换出时生成包括MAC的元数据(Metadata),在换入时,基于待换入页面数据生成MAC以及换出时生成的MAC对待换入页面数据进行安全校验,只有校验通过后,才写入,提高了数据的安全性;此外,当待换出页面数据以及待换入页面数据为虚拟机数据时,还在原有基础上,通过进一步将虚拟机物理地址也纳入考虑之内,在对待换入页面数据进行校验时,基于待写入页面数据生成消息认证码、元数据中的消息认证码、目的物理地址对应的虚拟机物理地址、元数据中的虚拟机物理地址,对待写入页面数据进行安全验证,以进一步提高数据的安全性。
本申请实施例还提供了一种应用于处理器的数据保护方法,下面将结合图5,对本申请实施例提供的数据保护方法进行说明。
步骤S101:接收所述安全处理器发送的内存页换入请求。
硬件加速模块接收安全处理器发送的内存页换入请求,内存页换入请求包括待换入页面的源地址、存放待换入页面的目的物理地址。
步骤S102:从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据。
所述硬件加速模块从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据,其中,所述元数据为将所述待写入页面数据从内存换出时基于所述待写入页面数据生成的,其中包括消息认证码。
步骤S103:基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证。
所述硬件加速模块基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证。
步骤S104:在所述待写入页面数据通过安全验证后,将所述待写入页面数据写入所述目的物理地址指向的地址空间。
在所述待写入页面数据通过安全验证后,所述硬件加速模块将所述待写入页面数据写入所述目的物理地址指向的地址空间。
其中,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证的过程可以是:将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,则表征所述待写入页面数据通过安全验证。
所述待写入页面数据为虚拟机数据,一种实施方式下,所述元数据还包括所述待写入页面数据对应的虚拟机物理地址,所述方法还包括:所述硬件加速模块根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述目的物理地址对应的虚拟机物理地址;相应地,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证的过程变更为:基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证。
其中,基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证的过程可以是:将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对,以及将所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,且所述目的物理地址对应的虚拟机物理地址与所述元数据中的虚拟机物理地址一致,则表征所述待写入页面数据通过安全验证。
可选地,所述内存页换入请求还包括:地址空间识别符号ASID,此时,基于所述待写入页面数据生成消息认证码的过可以是:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待写入页面数据进行加密,并基于所述初始向量对加密后的待写入页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。可选地,一种实施方式下,可以是将根据所述ASID获得初始密钥直接作为加密密钥对在待写入页面数据进行加密,此外,还可以是将根据所述ASID获得初始密钥与内存的物理地址进行非线性变换,得到最终的加密密钥。
此外,所述方法还包括:所述硬件加速模块接收所述安全处理器发送的内存页换出请求,所述内存页换出请求包括:待换出页面的源物理地址和存放所述待换出页面的目的地址;所述硬件加速模块从所述待换出页面的源物理地址中取出待换出页面数据,并将所述待换出页面数据写入所述目的地址指向的地址空间;以及基于所述待换出页面数据生成消息认证码,并根据预先建立的***物理地址与元数据地址的对应关系,获得所述源物理地址对应的元数据地址,并将基于所述待换出页面数据生成的消息认证码作为元数据的一部分写入所述元数据地址指向的地址空间。
若所述待换出页面数据为虚拟机数据,可选地,所述方法还包括:根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述源物理地址对应的虚拟机物理地址;将所述源物理地址对应的虚拟机物理地址作为所述元数据的一部分写入所述元数据地址指向的地址空间。
可选地,所述内存页换出请求还包括:地址空间识别符号ASID;基于所述待换出页面数据生成消息认证码的过程可以是:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待换出页面数据进行加密,并基于所述初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。可选地,一种实施方式下,可以是将根据所述ASID获得初始密钥直接作为加密密钥对在待换出页面数据进行加密,此外,还可以是将根据所述ASID获得初始密钥与内存的物理地址进行非线性变换,得到最终的加密密钥。
本申请实施例所提供的数据保护方法,其实现原理及产生的技术效果和装置方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
如图6所示,图6示出了本申请实施例提供的一种电子设备的结构框图。所述电子设备包括:上述的处理器、内存以及磁盘等。处理器与内存和磁盘均连接。其中,磁盘用于存放从内存中换出的待换出页面数据,内存用于存放从磁盘中换入的待换入页面数据。其中,上述的电子设备,包括但不限于计算机、平板电脑、服务器等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露方法,也可以通过其它的方式实现。以上所描述的方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (17)

1.一种数据保护方法,其特征在于,应用于处理器,所述处理器包括:安全处理器和硬件加速模块,所述方法包括:
所述硬件加速模块接收所述安全处理器发送的内存页换入请求,所述内存页换入请求包括待换入页面的源地址、存放所述待换入页面的目的物理地址;
所述硬件加速模块从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据,其中,所述元数据为将所述待写入页面数据从内存换出时基于所述待写入页面数据生成的,其中包括消息认证码;
所述硬件加速模块基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证;
在所述待写入页面数据通过安全验证后,所述硬件加速模块将所述待写入页面数据写入所述目的物理地址指向的地址空间。
2.根据权利要求1所述的方法,其特征在于,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证,包括:
将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对;
其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,则表征所述待写入页面数据通过安全验证。
3.根据权利要求1所述的方法,其特征在于,所述待写入页面数据为虚拟机数据,所述元数据还包括所述待写入页面数据对应的虚拟机物理地址;所述方法还包括:
所述硬件加速模块根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述目的物理地址对应的虚拟机物理地址;相应地,基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证,包括:
基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证。
4.根据权利要求1所述的方法,其特征在于,所述内存页换入请求还包括:地址空间识别符号ASID;基于所述待写入页面数据生成消息认证码,包括:
获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;
利用所述加密密钥对所述待写入页面数据进行加密,并基于所述初始向量对加密后的待写入页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
5.根据权利要求4所述的方法,其特征在于,获取与所述ASID对应的加密密钥,包括:
根据所述ASID获得初始密钥;
将所述初始密钥与内存的物理地址进行非线性变换,得到所述加密密钥。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述硬件加速模块接收所述安全处理器发送的内存页换出请求,所述内存页换出请求包括:待换出页面的源物理地址和存放所述待换出页面的目的地址;
所述硬件加速模块从所述待换出页面的源物理地址中取出待换出页面数据,并将所述待换出页面数据写入所述目的地址指向的地址空间;以及基于所述待换出页面数据生成消息认证码,并根据预先建立的***物理地址与元数据地址的对应关系,获得所述源物理地址对应的元数据地址,并将基于所述待换出页面数据生成的消息认证码作为元数据的一部分写入所述元数据地址指向的地址空间。
7.根据权利要求6所述的方法,其特征在于,所述待换出页面数据为虚拟机数据,所述方法还包括:
根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述源物理地址对应的虚拟机物理地址;
将所述源物理地址对应的虚拟机物理地址作为所述元数据的一部分写入所述元数据地址指向的地址空间。
8.根据权利要求6或7所述的方法,其特征在于,所述内存页换出请求还包括:地址空间识别符号ASID;基于所述待换出页面数据生成消息认证码,包括:
获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;
利用所述加密密钥对所述待换出页面数据进行加密,并基于所述初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
9.一种处理器,其特征在于,包括:
安全处理器;
硬件加速模块,用于接收所述安全处理器发送的内存页换入请求,所述内存页换入请求包括待换入页面的源地址、存放所述待换入页面的目的物理地址;用于从所述待换入页面的源地址中取出待写入页面数据,基于所述待写入页面数据生成消息认证码,以及根据预先建立的***物理地址与元数据地址的对应关系,获得所述目的物理地址对应的元数据地址,并从所述元数据地址取出元数据,其中,所述元数据为将所述待写入页面数据从内存换出时基于所述待写入页面数据生成的,其中包括消息认证码;用于基于所述待写入页面数据生成消息认证码以及所述元数据中的消息认证码,对所述待写入页面数据进行安全验证;并在在所述待写入页面数据通过安全验证后,还用于将所述待写入页面数据写入所述目的物理地址指向的地址空间。
10.根据权利要求9所述的处理器,其特征在于,所述硬件加速模块,用于将基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码进行比对;其中,若基于所述待写入页面数据生成的消息认证码与所述元数据中的消息认证码一致,则表征所述待写入页面数据通过安全验证。
11.根据权利要求9所述的处理器,其特征在于,所述待写入页面数据为虚拟机数据,所述元数据还包括所述待写入页面数据对应的虚拟机物理地址;所述硬件加速模块,还用于根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述目的物理地址对应的虚拟机物理地址;相应地,所述硬件加速模块,用于基于所述待写入页面数据生成消息认证码、所述元数据中的消息认证码、所述目的物理地址对应的虚拟机物理地址、所述元数据中的虚拟机物理地址,对所述待写入页面数据进行安全验证。
12.根据权利要求9所述的处理器,其特征在于,所述内存页换入请求还包括:地址空间识别符号ASID;所述硬件加速模块,用于:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待写入页面数据进行加密,并基于所述初始向量对加密后的待写入页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
13.根据权利要求12所述的处理器,其特征在于,所述硬件加速模块,用于:根据所述ASID获得初始密钥;将所述初始密钥与内存的物理地址进行非线性变换,得到所述加密密钥。
14.根据权利要求9所述的处理器,其特征在于,所述硬件加速模块,还用于:接收所述安全处理器发送的内存页换出请求,所述内存页换出请求包括:待换出页面的源物理地址和存放所述待换出页面的目的地址;从所述待换出页面的源物理地址中取出待换出页面数据,并将所述待换出页面数据写入所述目的地址指向的地址空间;以及基于所述待换出页面数据生成消息认证码,并根据预先建立的***物理地址与元数据地址的对应关系,获得所述源物理地址对应的元数据地址,并将基于所述待换出页面数据生成的消息认证码作为元数据的一部分写入所述元数据地址指向的地址空间。
15.根据权利要求14所述的处理器,其特征在于,所述待换出页面数据为虚拟机数据,所述硬件加速模块,用于:根据预先建立的***物理地址与虚拟机物理地址的对应关系,获得所述源物理地址对应的虚拟机物理地址;将所述源物理地址对应的虚拟机物理地址作为所述元数据的一部分写入所述元数据地址指向的地址空间。
16.根据权利要求14或15所述的处理器,其特征在于,所述内存页换出请求还包括:地址空间识别符号ASID;所述硬件加速模块,用于:获取与所述ASID对应的加密密钥和用于哈希算法的初始向量;利用所述加密密钥对所述待换出页面数据进行加密,并基于所述初始向量对加密后的待换出页面数据进行哈希运算,生成哈希值,其中,所述哈希值即为所述消息认证码。
17.一种电子设备,其特征在于,包括:内存和如权利要求9-16任一项所述的处理器,所述内存与所述处理器连接。
CN202010828279.8A 2020-08-17 2020-08-17 一种数据保护方法、处理器及电子设备 Active CN111967065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010828279.8A CN111967065B (zh) 2020-08-17 2020-08-17 一种数据保护方法、处理器及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010828279.8A CN111967065B (zh) 2020-08-17 2020-08-17 一种数据保护方法、处理器及电子设备

Publications (2)

Publication Number Publication Date
CN111967065A CN111967065A (zh) 2020-11-20
CN111967065B true CN111967065B (zh) 2023-10-27

Family

ID=73387763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010828279.8A Active CN111967065B (zh) 2020-08-17 2020-08-17 一种数据保护方法、处理器及电子设备

Country Status (1)

Country Link
CN (1) CN111967065B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201752B (zh) * 2021-11-29 2022-10-18 海光信息技术股份有限公司 一种安全隔离虚拟机的页表管理方法、装置及相关设备
CN114564724A (zh) * 2021-12-30 2022-05-31 海光信息技术股份有限公司 虚拟机内存完整性保护方法、装置、电子设备及存储介质
CN117785371A (zh) * 2022-09-20 2024-03-29 成都华为技术有限公司 一种页面换入方法以及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片
CN111241564A (zh) * 2017-08-04 2020-06-05 海光信息技术有限公司 内存页面交换方法和安全处理器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241564A (zh) * 2017-08-04 2020-06-05 海光信息技术有限公司 内存页面交换方法和安全处理器
CN109670345A (zh) * 2018-12-21 2019-04-23 成都海光集成电路设计有限公司 内存页面换入换出的保护方法、加速器模块和soc芯片

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
内存地址转换技术在电子数据取证中的应用;郑志翔;贺一峰;;河南科技(15);全文 *
内存页面交换文件定位优化方法;侯昉;王禹;赵跃龙;;计算机工程与应用(04);全文 *

Also Published As

Publication number Publication date
CN111967065A (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
US10686605B2 (en) Technologies for implementing mutually distrusting domains
CN111967065B (zh) 一种数据保护方法、处理器及电子设备
CN110447032B (zh) 管理程序与虚拟机之间的存储器页转换监测
US9262342B2 (en) Process authenticated memory page encryption
CN111090869B (zh) 一种数据加密方法、处理器及计算机设备
US10536274B2 (en) Cryptographic protection for trusted operating systems
US10372628B2 (en) Cross-domain security in cryptographically partitioned cloud
US10691627B2 (en) Avoiding redundant memory encryption in a cryptographic protection system
CN112433817B (zh) 信息配置方法、直接存储访问方法及相关装置
CN106716435B (zh) 设备与安全处理环境之间的接口
JP2011048661A (ja) 仮想サーバ暗号化システム
KR101653193B1 (ko) 보안 처리 환경으로부터의 기능의 오프로딩
CN111949372B (zh) 一种虚拟机迁移方法、通用处理器及电子设备
US11494219B2 (en) Encryption and remote attestation of containers
CN116450281A (zh) 访问处理方法、虚拟机标识配置方法、芯片及计算机设备
CN112416526B (zh) 一种直接存储访问方法、装置及相关设备
CN112416525B (zh) 设备驱动初始化方法、直接存储访问方法及相关装置
CN107239682A (zh) 一种基于云计算的计算机互联网信息安全控制***
CN118133326B (zh) 一种基于芯片的数据加密传输***
US12013954B2 (en) Scalable cloning and replication for trusted execution environments
CN113343265B (zh) 一种密钥配置方法、装置和相关设备
US20240202289A1 (en) Using Ownership Identifiers in Metadata in a Memory for Protecting Encrypted Data Stored in the Memory
CN118133326A (zh) 一种基于芯片的数据加密传输***
CN117194284A (zh) 一种内存访问方法、初始化方法及其相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
CB02 Change of applicant information

Address after: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant after: Haiguang Information Technology Co.,Ltd.

Address before: 300450 Tianjin Binhai New Area Huayuan Industrial Zone Haitai West Road 18 North 2-204 Industrial Incubation-3-8

Applicant before: HAIGUANG INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant