CN109670345A - 内存页面换入换出的保护方法、加速器模块和soc芯片 - Google Patents
内存页面换入换出的保护方法、加速器模块和soc芯片 Download PDFInfo
- Publication number
- CN109670345A CN109670345A CN201811569698.3A CN201811569698A CN109670345A CN 109670345 A CN109670345 A CN 109670345A CN 201811569698 A CN201811569698 A CN 201811569698A CN 109670345 A CN109670345 A CN 109670345A
- Authority
- CN
- China
- Prior art keywords
- swapping
- page
- request
- memory pages
- accelerator 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供内存页面换入换出的保护方法、内存页面换入换出加速器模块、SOC芯片以及计算机可读取存储介质。内存页面换入换出的保护方法包括:请求接收步骤,换入换出加速器模块从操作请求主体接收有关内存页面的换入换出请求;判断步骤,换入换出加速器模块基于换入换出请求中的特定信息来判断该请求为换入请求还是换出请求;以及页面处理步骤,换入换出加速器模块在判断为换出请求的情况下,通过DMA方式从内存中读取待换出页面,并对待换出页面进行加密,而在判断为换入请求的情况下,通过DMA方式从外部存储设备读取待换入页面,并对待换入页面进行解密。能够对换入换出的内存页面做全面、高效保护。
Description
技术领域
本发明涉及计算机领域的处理器安全,尤其涉及内存页面换入换出的保护方法、内存页面换入换出加速器模块、SOC芯片以及计算机可读取存储介质,更具体而言,在内存页面换入换出时,能够高效地对换出的内存页面做加密和完整性保护,对换入的页面做解密和完整性校验。
背景技术
计算机中所有程序的运行都是在内存中进行的,内存的使用状况对计算机性能的影响非常大。在计算机中通常有多个进程在同时运行,为了减少启动时间,操作系统会尽量保留该进程所占的内存。但是由于内存大小的限制,在内存不足时,必须将某些数据从内存移动到磁盘中去,这个过程叫做换出,在启动一个新的进程时,将该进程从磁盘移动到内存空间中,这个过程叫换入。现有技术中,对于内存数据的换入换出,存在页式存储管理方法,将进程的逻辑地址空间划分为若干页面,例如一个页面的存储空间为4K,并且将物理内存也划分为若干页面,每一页面的存储空间例如同样为4K,通过在物理地址与逻辑地址之间建立映射关系,这样就能够以页面为单位进行换入换出。
随着大数据的日益增长,云计算的需求也呈现爆发式增长。在云计算中,虚拟化技术起着核心作用,虚拟化的好坏关系着虚拟机(VM)的稳定、性能和安全;虚拟化中的安全涉及到内存、存储、IO等各个方面,其中对内存的保护格外重要,内存保护能够防止虚拟化中各个虚拟机之间的数据窃取,增加虚拟机的安全性。作为现有的内存加密保护方式,SEV(Secure Encrypted Virtualization:安全虚拟化)技术能够实现对虚拟机管理器(VMM)的物理内存和每个虚拟机(VM)的物理内存分别使用不同的密钥进行加密。密钥只能通过特殊的安全处理器进行管理,CPU不能直接访问密钥,这样就可以隔离不安全的虚拟机间内存互访,或虚拟机管理器对虚拟机内存的不安全访问,免于遭到管理者篡改和使用不受信任的Hypervisor((系统)管理程序)。
上述现有技术的内存加密保护方式存在以下问题:
缺乏对换入换出页面的高效加密保护方法,如果采用加密软件程序进行加密,将会占用大量运算资源。
缺乏对换入换出页面数据的完整性保护,尽管不能查看虚拟机数据明文,但是恶意代码可能通过篡改密文的方式来攻击虚拟机,可能整个页面被替换。
发明内容
发明要解决的课题
本发明针对现有技术中存在的上述问题,目的在于提供一种内存页面换入换出的保护方法、内存页面换入换出加速器模块、SOC芯片以及计算机可读取存储介质,用于高效地对换出的内存页面进行加密和完整性保护,对换入的页面做解密和完整性校验。
用于解决课题的手段
本发明的一个技术方案提供一种内存页面换入换出的保护方法,其特征在于,
包括:
请求接收步骤,换入换出加速器模块从操作请求主体接收有关内存页面的换入换出请求;
判断步骤,上述换入换出加速器模块基于上述换入换出请求中的特定信息来判断该请求为换入请求还是换出请求;以及
页面处理步骤,上述换入换出加速器模块在判断为换出请求的情况下,通过DMA方式从内存中读取待换出页面,并对待换出页面进行加密,而在判断为换入请求的情况下,通过上述DMA方式从外部存储设备读取待换入页面,并对待换入页面进行解密。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述操作请求主体包括虚拟机、虚拟机管理器、或者系统中其他进程或线程。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述特定信息为换入换出方向标识,
在上述判断步骤中,上述换入换出加速器模块基于上述换入换出方向标识来判断该请求为换入请求还是换出请求。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
在上述换入换出请求为换出请求的情况下,该请求中包括待换出页面目标地址和在内存中的源地址,而在上述换入换出请求为换入请求的情况下,该请求中包括待换入页面的源地址和在内存中的目标地址,
在上述页面处理步骤中,上述换入换出加速器模块基于上述换入换出请求中所包含的各个地址来进行读写。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述换入换出请求中还包括用以标识加密算法或者解密算法的标识,
在上述页面处理步骤中,上述换入换出加速器模块基于上述标识来选择加密算法或者解密算法。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
在上述页面处理步骤中,上述换入换出加速器模块在判断为换出请求的情况下,对待换出页面还进行完整性保护,而在判断为换入请求的情况下,对待换入页面进行完整性校验。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述换入换出加速器模块包括完整性保护模块,上述完整性保护及完整性校验由上述完整性保护模块进行,上述完整性保护模块包括用于进行上述完整性保护及完整性校验的专用电路。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述换入换出请求中还包括用以标识完整性保护算法的标识,
在上述页面处理步骤中,上述换入换出加速器模块基于上述标识来选择完整性保护算法。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述换入换出请求中还包括用以标识上述操作请求主体的标签,
在上述判断步骤中,上述换入换出加速器模块根据上述标签判断该操作请求主体的内存页面在内存中是否被加密,
在上述页面处理步骤中,在判断为加密的情况下,在换入请求时,对待换入页面进行加密,在换出请求时,对待换出页面进行解密。
进一步地,根据前述的内存页面换入换出的保护方法,其特征在于,
上述换入换出加速器模块包括DMA控制器以及加解密模块,上述加解密模块包括用于进行加解密的专用电路。
本发明的一个技术方案提供一种内存页面换入换出加速器模块,用于从操作请求主体接收有关内存页面的换入换出请求并在对内存页面进行换入换出时进行页面保护处理,其特征在于,
包括DMA控制器以及页面保护处理单元,
基于上述换入换出请求中的特定信息来判断该请求为换入请求还是换出请求,在判断为换出请求的情况下,由上述DMA控制器从内存中读取待换出页面,并由上述页面保护处理单元对待换出页面进行加密,
在判断为换入请求的情况下,由上述DMA控制器从外部存储设备读取待换入页面,并由上述页面保护处理单元对待换入页面进行解密。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述操作请求主体包括虚拟机、虚拟机管理器、或者系统中其他进程或线程。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述特定信息为换入换出方向标识,
上述内存页面换入换出加速器模块基于上述换入换出方向标识来判断该请求为换入请求还是换出请求。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
在上述换入换出请求为换出请求的情况下,该请求中包括待换出页面目标地址和在内存中的源地址,而在上述换入换出请求为换入请求的情况下,该请求中包括待换入页面的源地址和在内存中的目标地址,
上述内存页面换入换出加速器模块基于上述换入换出请求中所包含的各个地址来进行读写。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述换入换出请求中还包括用以标识加密算法或者解密算法的标识,
上述内存页面换入换出加速器模块基于上述标识来选择加密算法或者解密算法。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述内存页面换入换出加速器模块在判断为换出请求的情况下,对待换出页面还进行完整性保护,而在判断为换入请求的情况下,对待换入页面进行完整性校验。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述页面保护处理单元包括完整性保护模块,上述完整性保护及完整性校验由上述完整性保护模块进行,上述完整性保护模块包括用于进行上述完整性保护及完整性校验的专用电路。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述换入换出请求中还包括用以标识完整性保护算法的标识,
上述内存页面换入换出加速器模块基于上述标识来选择完整性保护算法。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述换入换出请求中还包括用以标识上述操作请求主体的标签,
上述内存页面换入换出加速器模块根据上述标签判断该操作请求主体的内存页面在内存中是否被加密,
在判断为加密的情况下,在换入请求时,对待换入页面进行加密,在换出请求时,对待换出页面进行解密。
进一步地,根据前述的内存页面换入换出加速器模块,其特征在于,
上述页面保护处理单元包括加解密模块,上述加解密模块包括用于进行加解密的专用电路。
本发明的一个技术方案的提供一种SOC芯片,包括安全子系统,上述安全子系统包括安全处理器和上述的内存页面换入换出加速器模块。
本发明的一个技术方案的提供一种计算机可读取存储介质,其中存储有代码,用以由计算机执行上述的内存页面换入换出的保护方法。
发明效果
本发明的内存页面换入换出加速器模块包括DMA控制器,其能够直接对内存存取页面数据,与通过总线间接存取数据的方式相比,能够大幅提高的数据存取速度。
本发明的内存页面换入换出加速器模块包括加解密模块和页面完整性保护模块,两者都包括用于实现其功能的硬件电路,与通过调用软件程序执行加解密和完整性保护的方式相比,能够大幅提高运算速度,而且不占用CPU运算能力,减小了整个系统的负担。
本发明的内存页面换入换出保护装置、保护方法利用换入换出加速器模块,能够对换入换出页面高效地进行加密保护方法,同时能够对换入换出页面数据高效地进行完整性保护。
本发明的内存页面换入换出保护装置、保护方法在安全子系统中运行,与现有SEV方案、及SOC(System-On-Chip)架构可以很好的兼容。本发明既适用于普通操作系统的页面保护,也适用于虚拟机操作系统的页面保护,使得操作系统、虚拟机得到更好的防攻击效果。
附图说明
图1是表示本发明的内存页面换入换出保护装置的示意图。
图2是表示本发明的内存页面换入换出加速器模块的构成的示意图。
图3是表示本发明的内存页面换入换出保护装置在进行页面换入时的动作的示意图。
图4是表示本发明的内存页面换入换出保护方法在进行页面换入时的流程图。
图5是表示本发明的内存页面换入换出保护装置在进行页面换出时的动作的示意图。
图6是表示本发明的内存页面换入换出保护方法在进行页面换出时的流程图。
具体实施方式
下面将基于附图具体说明本发明的示例性实施方式,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
[内存页面换入换出保护装置]
图1示出本发明的内存页面换入换出保护装置的一个实施例。如图1所示,作为一个例子,内存页面换入换出保护装置10构建在SOC上的安全子系统11(例如处理器中的PSP子系统,Platform Security Processor)中,包括作为控制处理器的安全处理器12、以及内存页面换入换出加速器模块(简称为换入换出加速器模块)13。
安全子系统11从外部(例如,主CPU)接收内存页面换入换出请求以及相关信息,并协助主CPU完成换入页面的解密和完整性校验、以及换出页面的加密和完整性保护。这些相关信息包括以下信息的一部分或者全部,但不限于以下信息:
需要换入内存页面的目标地址,或者,需要换出内存页面的源地址;
待换入页面的源地址,或者,待换出页面的目标地址;
待换入页面的完整性信息的源地址,或者,待换出页面的完整性信息的目标地址;
当前运行程序的标签(ASID,可以是虚拟机标签,根据系统需要而定);
用以表示内存页面换入换出方向的标识,换入,或者,换出;
用以表示加解密算法的标识;
用以标识完整性保护算法的标识;以及
其它消息传递所必要信息。
安全处理器12收到CPU的消息,根据“用以表示内存页面换入换出方向的标识”识别出是换入页面请求、或者换出页面请求之后,将配置信息写给的内存页面换入换出加速器模块13,并启动内存页面换入换出加速器模块13,由内存页面换入换出加速器模块13进行换入页面的解密和完整性校验、以及换出页面的加密和完整性保护,并将“完成页面换入信息”、“完成页面换出信息”反馈给安全处理器12,安全处理器12向CPU反馈“完成页面换入信息”、“完成页面换出信息”。具体细节将在后文中详细说明。
[内存页面换入换出加速器模块]
图2示出本发明的内存页面换入换出加速器模块的一个例子。如图2所示,内存页面换入换出加速器模块13包括:DMA控制器131(Direct Memory Access Controller,DMAC,存储器直接访问控制器),其可以访问内存,向内存写入数据或从内存读出数据;以及页面加密解密模块132,其对由DMA控制器131从内存读出的页面数据、从外部磁盘读入的到内存中的页面数据进行加解密。
另外,图2示出了换入换出加速器模块13还包括页面完整性保护模块133的情况,但是,也可以不包括该页面完整性保护模块133,在此情况下,不影响换入换出加速器模块13的其它部分的功能的实现。即,页面加密解密模块132和页面完整性保护模块133这两者可以一起作为页面保护处理单元而发挥作用,也可以是其中之一单独作为页面保护处理单元而发挥作用。
页面完整性保护模块133对由DMA控制器131从内存读出的页面数据累积计算完整性保护信息,并对由DMA控制器131从外部磁盘读入的到内存中的页面数据进行完整性校验。
在本发明中,作为一个优选的实施例,页面加密解密模块132包括对源页面数据进行加解密运算的专用的集成电路,页面完整性保护模块133包括对源页面数据累积计算完整性保护信息和比较完整性保护信息(完整性校验)的专用的集成电路。但是,加解密运算和完整性保护不限于仅由专用集成电路(硬件)来完成,也可是其中之一或者两者由软件来完成。
以下,以换入换出加速器模块13包括页面完整性保护模块133的情况为例来说明换入换出页面时换入换出加速器模块13的动作。
如图3所示,在向内存换入页面时,换入换出加速器模块13进行以下动作。从安全处理器12接收到配置信息(箭头2),识别为换入页面请求后,启动页面换入。DMA控制器131根据配置信息中的待换入页面源地址读入源页面数据(箭头3)。页面加密解密模块132使用配置信息中的“用以表示加解密算法的标识”选择解密算法对源页面数据进行解密。页面完整性保护模块133使用配置信息中的“用以标识完整性保护算法的标识”选择完整性保护算法对源页面数据累积计算换入页面完整性保护信息,并与从配置信息所指定的输入页面完整性信息的源地址取得的源页面完整性保护信息进行比较,如果相等,则记为“完整性校验成功”,如果不相等,则记为“完整性校验失败”。如果页面完整性校验结果为“完整性校验成功”,则DMA控制器131将页面数据写入到待换入内存页面的目标地址(箭头4)。如果页面完整性校验结果为“完整性校验失败”,则不进行该页面数据向内存的写入,对于如何处理该页面数据,视整个系统的应用不同而有不同的选择。换入换出加速器模块13向安全处理器12反馈至少包括完整性校验结果的“成功”或“失败”的“完成页面换入信息”(箭头5),该“完成页面换入信息”中也可以包括是否产生中断等其它信息。
如图4所示,在从内存换出页面时,换入换出加速器模块13进行以下动作。从安全处理器12接收到配置信息(箭头2),识别为换出页面请求后,启动页面换出。DMA控制器131根据配置信息中的待换出内存页面源地址读出源页面数据(箭头3)。页面完整性保护模块133使用配置信息中的“用以标识完整性保护算法的标识”选择完整性保护算法对源页面数据累积计算换入页面完整性保护信息。页面加密解密模块132使用配置信息中的“用以表示加解密算法的标识”选择加密算法对源页面数据进行加密。DMA控制器131将加密后的页面数据输出到待换出页面的目标地址(箭头4),将最后得到的整个页面数据的完整性保护信息输出到配置信息所指定的待输出页面的完整性信息的目标地址。换入换出加速器模块13向安全处理器12反馈“完成页面换入信息”(箭头5)。
页面加密解密模块132在对页面数据进行加解密时,可以采用DES算法、AES算法、PBE算法、DH算法、RSA算法等中任一种算法得到秘钥,但不限于这些方法,可以根据整个系统适当选择已知的算法。
页面完整性保护模块133在对页面数据进行完整性校验时,可以采用奇偶校验、CRC校验、LRC校验、格雷码校验、校验和、异或校验等中任一种算法累积计算完整性保护信息并进行校验,但不限于这些方法,可以根据整个系统适当选择已知的校验方法。
[内存页面换入换出保护方法]
以下,结合附图5、6的流程图具体说明利用本发明的上述的换入换出加速器模块13以及内存页面换入换出保护装置10进行的内存页面换入换出保护方法的实施例。对换入换出的内存页面的保护,分为对换入页面的保护、和对换出页面的保护两部分。
首先,说明对换入页面的保护。图5中,作为一个实施例,示出了对页面进行加密保护和完整性保护的情况下的向内存换入页面时的流程图。此外,也可以仅进行加密保护和完整性保护这两者中的一个,在此情况下,省略图5中的相应的步骤即可。如图5所示,本发明的内存页面换入换出保护方法在向内存换入页面时,执行以下的步骤:
步骤S21,安全处理器12从外部(主CPU)接收页面换入换出请求并接收相关信息,在基于相关信息中的“用以表示内存页面换入换出方向的标识”识别为换入页面请求后,向内存页面换入换出加速器模块13提供换入配置信息,并启动内存页面换入换出加速器模块13;
步骤S22,内存页面换入换出加速器模块13启动页面换入;
步骤S23,加解密模块利132根据换入配置信息中的“用以表示加解密算法的标识”选择解密算法并生成解密用key;
步骤S24,DMA控制器131从由换入配置信息指定的待换入页面的源地址读入源页面数据,
步骤S25,加解密模块132用解密用key对源页面数据进行解密;
步骤S26,页面完整性保护模块133根据换入配置信息中的“用以标识完整性保护算法的标识”选择完整性保护算法对解密后的源页面数据累积计算换入页面完整性保护信息,并与从换入配置信息中的待输入页面的完整性信息的源地址得到的源页面完整性保护信息进行比较,从而进行页面完整性校验,如果相等,则记为“完整性校验成功”,如果不相等,则记为“完整性校验失败”;(关于步骤S26,在不进行页面数据完整性校验的情况下,可以跳过而不执行,在进行页面数据完整性校验的情况下,如图5所示,执行步骤S26。)
步骤S27,如果页面完整性校验结果为“完整性校验成功”,则DMA控制器131将被解密后的页面数据写入到内存中的由换入配置信息指定的待换入内存页面的目标地址;
步骤S28,内存页面换入换出加速器模块13向安全处理器12反馈完成页面换入信息;以及
步骤S29,安全处理器12根据内存页面换入换出加速器模块13所反馈的完成页面换入信息,向外部(主CPU)反馈完成页面换入信息。
需要说明的是,在上述的对换入页面的保护流程中,步骤S23、S24的顺序可以互换,在步骤S27中将页面数据写入到内存之前,根据整个系统SOC架构、设置的不同,可能还包括新的数据的加密过程(比如,SEV已经启用了针对ASID的页面数据加密。例如,换入配置信息中还包括用以标识操作请求主体(例如上述的主CPU、虚拟机VM、虚拟机管理器VMM、系统中的进程、线程等)的标签,换入换出加速器模块13根据该标签判断该操作请求主体的内存页面在内存中是否被加密,在判断为加密的情况下,在换入请求时,对待换入页面进行加密后写入到内存中。)。
在步骤S11中,从主CPU接收的换入相关信息至少包括:
待换入内存页面的目标地址;
待换入页面的源地址;
待换入页面的完整性信息的源地址;
当前运行程序的标签;
换入换出方向的标识为:换入,
用以标识解密算法的标识;以及
用以标识完整性保护算法的标识。
在步骤S11中,安全处理器12向内存页面换入换出加速器模块13提供的换入配置信息至少包括:
待换入页面的源地址;
待换入内存页面的目标地址;
待换入页面的完整性信息的源地址;
当前运行程序的标签;
换入换出方向的标识为:换入;
用以标识所述解密算法的标识;以及
用以标识所述完整性保护算法的标识。
接下来,说明对换出页面的保护。图6中,作为一个实施例,示出了对页面进行加密保护和完整性保护的情况下的从内存换出页面时的流程图。此外,也可以仅进行加密保护和完整性保护这两者中的一个,在此情况下,省略图6中的相应的步骤即可。如图6所示,本发明的内存页面换入换出保护方法在从内存换出页面时,执行以下的步骤:
步骤S31,安全子系统中的安全处理器从外部(主CPU)接收换出页面请求并接收换出相关信息,在基于换出相关信息中的“用以表示内存页面换入换出方向的标识”识别为换出页面请求后,向内存页面换入换出加速器模块13提供换出配置信息,并启动内存页面换入换出加速器模块13;
步骤S41,内存页面换入换出加速器模块13启动页面换出;
步骤S42,加解密模块132根据换出配置信息中的“用以表示加解密算法的标识”选择加密算法生成加密用key;
步骤S43,DMA控制器131从由换出配置信息指定的待换出内存页面的源地址读出源页面数据,
步骤S44,页面完整性保护模块133根据换入配置信息中“用以标识完整性保护算法的标识”选择完整性保护算法对源页面数据累积计算换出页面完整性保护信息;
步骤S45,加解密模块132用加密用key对源页面数据进行加密;
步骤S46,DMA控制器131将被加密后的页面数据输出到由换出配置信息指定的待换出页面的目标地址;
步骤S47,DMA控制器131将换出页面完整性保护信息输出到由所述换出配置信息指定的待输出页面的完整性信息的目标地址;(关于步骤S44、S47,在不进行页面数据完整性保护的情况下,可以跳过而不执行,在进行页面数据完整性保护的情况下,如图6所示,按照步骤S40-S49的顺序执行。)
步骤S48,内存页面换入换出加速器模块13向安全处理器12反馈所述完成页面换出信息;以及
步骤S49,安全处理器12根据内存页面换入换出加速器模块13所反馈的完成页面换出信息,向外部(主CPU)反馈完成页面换出信息。
需要说明的是,在上述的对换出页面的保护流程中,步骤S42、S43的顺序可以互换,步骤S44、S45可以同时进行,在步骤S43中将页面数据读出到内存之后,根据整个系统SOC架构、设置的不同,可能还包括新的数据的解密过程(比如,SEV已经启用了针对ASID的页面数据加密。例如,换出配置信息中还包括用以标识操作请求主体(例如上述的主CPU、虚拟机VM、虚拟机管理器VMM、系统中的进程、线程等)的标签,换入换出加速器模块13根据该标签判断该操作请求主体的内存页面在内存中是否被加密,在判断为加密的情况下,在换出请求时,对待换出页面进行解密后进行步骤S44以后的处理。)。
在步骤S40中,从主CPU接收的换出相关信息至少包括:
待换出内存页面的源地址;
待换出页面的目标地址;
待换出页面的完整性信息的目标地址,
当前运行程序的标签;
换入换出方向的标识为:换出;
用以标识加密算法的标识;以及
用以标识完整性保护算法的标识。
在步骤S40中,安全处理器12向内存页面换入换出加速器模块13提供换出配置信息至少包括:
待换出内存页面的源地址;
待换出页面目标地址;
待换出页面的完整性信息的目标地址;
当前运行程序的标签;
换入换出方向的标识为:换出;
用以标识所述加密算法的标识;以及
用以标识所述完整性保护算法的标识。
上面以内存页面换入换出保护装置和方法为例介绍了本发明,但是包含上述安全子系统的SOC芯片,以及存储有用于计算机执行本发明的内存页面换入换出的保护方法的计算机可读取存储介质同样属于本发明的保护范围内。另外,与本发明的装置以及方法等同的技术方案当然也包括在本发明的保护范围内。
以下,说明本发明的实施方式的内存页面换入换出加速器模块、保护装置和保护方法的技术效果。
本发明的内存页面换入换出加速器模块13包括DMA控制器131,其能够直接对内存存取页面数据,与通过总线间接存取数据的方式相比,能够大幅提高的数据存取速度。
本发明的内存页面换入换出加速器模块13包括加解密模块132和页面完整性保护模块133,两者都包括用于实现其功能的硬件电路,与通过调用软件程序执行加解密和完整性保护的方式相比,能够大幅提高运算速度,而且不占用CPU运算能力,减小了整个系统的负担。
本发明的内存页面换入换出保护装置、保护方法利用换入换出加速器模块13,能够对换入换出页面高效地进行加密保护方法,同时能够对换入换出页面数据高效地进行完整性保护。
本发明的内存页面换入换出保护装置、保护方法在安全子系统中运行,与现有SEV方案、及SOC(System-On-Chip)架构可以很好的兼容。本发明既适用于普通操作系统的页面保护,也适用于虚拟机操作系统的页面保护,使得操作系统、虚拟机得到更好的防攻击效果。
以上参考附图,基于实施方式说明了本发明,但本发明并非限定于上述的实施方式,根据实际需要等将各实施方式的部分构成适当组合或置换后的方案,也包含在本发明的范围内。另外,还可以基于本领域技术人员的知识适当重组各实施方式的组合和处理顺序,或者对各实施方式施加各种设计变更等变形,被施加了这样的变形的实施方式也可能包含在本发明的范围内。
Claims (22)
1.一种内存页面换入换出的保护方法,其特征在于,
包括:
请求接收步骤,换入换出加速器模块从操作请求主体接收有关内存页面的换入换出请求;
判断步骤,所述换入换出加速器模块基于所述换入换出请求中的特定信息来判断该请求为换入请求还是换出请求;以及
页面处理步骤,所述换入换出加速器模块在判断为换出请求的情况下,通过DMA方式从内存中读取待换出页面,并对待换出页面进行加密,而在判断为换入请求的情况下,通过所述DMA方式从外部存储设备读取待换入页面,并对待换入页面进行解密。
2.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
所述操作请求主体包括虚拟机、虚拟机管理器、或者系统中其他进程或线程。
3.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
所述特定信息为换入换出方向标识,
在所述判断步骤中,所述换入换出加速器模块基于所述换入换出方向标识来判断该请求为换入请求还是换出请求。
4.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
在所述换入换出请求为换出请求的情况下,该请求中包括待换出页面目标地址和在内存中的源地址,而在所述换入换出请求为换入请求的情况下,该请求中包括待换入页面的源地址和在内存中的目标地址,
在所述页面处理步骤中,所述换入换出加速器模块基于所述换入换出请求中所包含的各个地址来进行读写。
5.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
所述换入换出请求中还包括用以标识加密算法或者解密算法的标识,
在所述页面处理步骤中,所述换入换出加速器模块基于所述标识来选择加密算法或者解密算法。
6.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
在所述页面处理步骤中,所述换入换出加速器模块在判断为换出请求的情况下,对待换出页面还进行完整性保护,而在判断为换入请求的情况下,对待换入页面进行完整性校验。
7.根据权利要求6所述的内存页面换入换出的保护方法,其特征在于,
所述换入换出加速器模块包括完整性保护模块,所述完整性保护及完整性校验由所述完整性保护模块进行,所述完整性保护模块包括用于进行所述完整性保护及完整性校验的专用电路。
8.根据权利要求6所述的内存页面换入换出的保护方法,其特征在于,
所述换入换出请求中还包括用以标识完整性保护算法的标识,
在所述页面处理步骤中,所述换入换出加速器模块基于所述标识来选择完整性保护算法。
9.根据权利要求1所述的内存页面换入换出的保护方法,其特征在于,
所述换入换出请求中还包括用以标识所述操作请求主体的标签,
在所述判断步骤中,所述换入换出加速器模块根据所述标签判断该操作请求主体的内存页面在内存中是否被加密,
在所述页面处理步骤中,在判断为加密的情况下,在换入请求时,对待换入页面进行加密,在换出请求时,对待换出页面进行解密。
10.根据权利要求1~9的任何一项所述的内存页面换入换出的保护方法,其特征在于,
所述换入换出加速器模块包括DMA控制器以及加解密模块,所述加解密模块包括用于进行加解密的专用电路。
11.一种内存页面换入换出加速器模块,用于从操作请求主体接收有关内存页面的换入换出请求并在对内存页面进行换入换出时进行页面保护处理,其特征在于,
包括DMA控制器以及页面保护处理单元,
基于所述换入换出请求中的特定信息来判断该请求为换入请求还是换出请求,在判断为换出请求的情况下,由所述DMA控制器从内存中读取待换出页面,并由所述页面保护处理单元对待换出页面进行加密,
在判断为换入请求的情况下,由所述DMA控制器从外部存储设备读取待换入页面,并由所述页面保护处理单元对待换入页面进行解密。
12.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
所述操作请求主体包括虚拟机、虚拟机管理器、或者系统中其他进程或线程。
13.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
所述特定信息为换入换出方向标识,
所述内存页面换入换出加速器模块基于所述换入换出方向标识来判断该请求为换入请求还是换出请求。
14.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
在所述换入换出请求为换出请求的情况下,该请求中包括待换出页面目标地址和在内存中的源地址,而在所述换入换出请求为换入请求的情况下,该请求中包括待换入页面的源地址和在内存中的目标地址,
所述内存页面换入换出加速器模块基于所述换入换出请求中所包含的各个地址来进行读写。
15.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
所述换入换出请求中还包括用以标识加密算法或者解密算法的标识,
所述内存页面换入换出加速器模块基于所述标识来选择加密算法或者解密算法。
16.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
所述内存页面换入换出加速器模块在判断为换出请求的情况下,对待换出页面还进行完整性保护,而在判断为换入请求的情况下,对待换入页面进行完整性校验。
17.根据权利要求16所述的内存页面换入换出加速器模块,其特征在于,
所述页面保护处理单元包括完整性保护模块,所述完整性保护及完整性校验由所述完整性保护模块进行,所述完整性保护模块包括用于进行所述完整性保护及完整性校验的专用电路。
18.根据权利要求16所述的内存页面换入换出加速器模块,其特征在于,
所述换入换出请求中还包括用以标识完整性保护算法的标识,
所述内存页面换入换出加速器模块基于所述标识来选择完整性保护算法。
19.根据权利要求11所述的内存页面换入换出加速器模块,其特征在于,
所述换入换出请求中还包括用以标识所述操作请求主体的标签,
所述内存页面换入换出加速器模块根据所述标签判断该操作请求主体的内存页面在内存中是否被加密,
在判断为加密的情况下,在换入请求时,对待换入页面进行加密,在换出请求时,对待换出页面进行解密。
20.根据权利要求11~19的任何一项所述的内存页面换入换出加速器模块,其特征在于,
所述页面保护处理单元包括加解密模块,所述加解密模块包括用于进行加解密的专用电路。
21.一种SOC芯片,包括安全子系统,所述安全子系统包括安全处理器和如权利要求11至20的任一项所述的内存页面换入换出加速器模块。
22.一种计算机可读取存储介质,其中存储有代码,用以由计算机执行如权利要求1-10的任一项所述的内存页面换入换出的保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569698.3A CN109670345A (zh) | 2018-12-21 | 2018-12-21 | 内存页面换入换出的保护方法、加速器模块和soc芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811569698.3A CN109670345A (zh) | 2018-12-21 | 2018-12-21 | 内存页面换入换出的保护方法、加速器模块和soc芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109670345A true CN109670345A (zh) | 2019-04-23 |
Family
ID=66145684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811569698.3A Pending CN109670345A (zh) | 2018-12-21 | 2018-12-21 | 内存页面换入换出的保护方法、加速器模块和soc芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109670345A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090869A (zh) * | 2019-12-16 | 2020-05-01 | 海光信息技术有限公司 | 一种数据加密方法、处理器及计算机设备 |
CN111124606A (zh) * | 2019-12-12 | 2020-05-08 | 海光信息技术有限公司 | 基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器 |
CN111290830A (zh) * | 2020-01-15 | 2020-06-16 | 海光信息技术有限公司 | 一种虚拟机迁移方法、处理器及电子设备 |
CN112416536A (zh) * | 2020-12-10 | 2021-02-26 | 成都海光集成电路设计有限公司 | 提取处理器执行上下文的方法及处理器 |
CN116108454A (zh) * | 2023-04-06 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 内存页面管理方法及装置 |
CN111967065B (zh) * | 2020-08-17 | 2023-10-27 | 海光信息技术股份有限公司 | 一种数据保护方法、处理器及电子设备 |
WO2024060710A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 一种页面换入方法以及装置 |
CN111124606B (zh) * | 2019-12-12 | 2024-06-28 | 海光信息技术股份有限公司 | 基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN107563207A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 加密方法、装置及解密方法、装置 |
US20180113736A1 (en) * | 2016-10-21 | 2018-04-26 | Dong-Gun KIM | Computing Systems and Methods of Operating Computing Systems |
-
2018
- 2018-12-21 CN CN201811569698.3A patent/CN109670345A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180113736A1 (en) * | 2016-10-21 | 2018-04-26 | Dong-Gun KIM | Computing Systems and Methods of Operating Computing Systems |
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN107563207A (zh) * | 2017-08-04 | 2018-01-09 | 致象尔微电子科技(上海)有限公司 | 加密方法、装置及解密方法、装置 |
Non-Patent Citations (1)
Title |
---|
全国大学生电子设计竞赛信息安全技术专题邀请赛组委会: "<<全国大学生电子设计竞赛信息安全技术专题邀请赛优秀作品选编(第三届)>>", 31 May 2015, 北京理工大学出版社 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124606A (zh) * | 2019-12-12 | 2020-05-08 | 海光信息技术有限公司 | 基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器 |
CN111124606B (zh) * | 2019-12-12 | 2024-06-28 | 海光信息技术股份有限公司 | 基于安全处理器的虚拟机数据处理方法、装置、cpu芯片及服务器 |
CN111090869A (zh) * | 2019-12-16 | 2020-05-01 | 海光信息技术有限公司 | 一种数据加密方法、处理器及计算机设备 |
CN111290830A (zh) * | 2020-01-15 | 2020-06-16 | 海光信息技术有限公司 | 一种虚拟机迁移方法、处理器及电子设备 |
CN111290830B (zh) * | 2020-01-15 | 2023-10-20 | 海光信息技术股份有限公司 | 一种虚拟机迁移方法、处理器及电子设备 |
CN111967065B (zh) * | 2020-08-17 | 2023-10-27 | 海光信息技术股份有限公司 | 一种数据保护方法、处理器及电子设备 |
CN112416536A (zh) * | 2020-12-10 | 2021-02-26 | 成都海光集成电路设计有限公司 | 提取处理器执行上下文的方法及处理器 |
CN112416536B (zh) * | 2020-12-10 | 2023-08-18 | 成都海光集成电路设计有限公司 | 提取处理器执行上下文的方法及处理器 |
WO2024060710A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 一种页面换入方法以及装置 |
CN116108454A (zh) * | 2023-04-06 | 2023-05-12 | 支付宝(杭州)信息技术有限公司 | 内存页面管理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109670345A (zh) | 内存页面换入换出的保护方法、加速器模块和soc芯片 | |
US11550962B2 (en) | Secure processor and a program for a secure processor | |
US10686605B2 (en) | Technologies for implementing mutually distrusting domains | |
CN103210396B (zh) | 包括用于保护敏感代码和数据的架构的方法和装置 | |
EP3326102B1 (en) | Cryptographic protection of i/o data for dma capable i/o controllers | |
US7107459B2 (en) | Secure CPU and memory management unit with cryptographic extensions | |
US9104602B2 (en) | Method and apparatus for performing mapping within a data processing system having virtual machines | |
JP4940460B2 (ja) | 処理システム、方法およびデバイス | |
US10691627B2 (en) | Avoiding redundant memory encryption in a cryptographic protection system | |
CN110447032A (zh) | 管理程序与虚拟机之间的存储器页转换监测 | |
CN105678173B (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN107526974A (zh) | 一种信息密码保护装置和方法 | |
JP2022512051A (ja) | メモリ完全性チェックのための完全性ツリー | |
CN103258152A (zh) | 执行包括已加密指令的软件应用程序的系统、装置和方法 | |
CN111967065B (zh) | 一种数据保护方法、处理器及电子设备 | |
Zhao et al. | Minimal kernel: an operating system architecture for {TEE} to resist board level physical attacks | |
CN114238185A (zh) | 直接存储访问及命令数据传输方法、装置及相关设备 | |
CN104639313A (zh) | 一种密码算法的检测方法 | |
CN116450281A (zh) | 访问处理方法、虚拟机标识配置方法、芯片及计算机设备 | |
EP4202748A1 (en) | Data oblivious cryptographic computing | |
US20240176638A1 (en) | Register protection for confidential computing environment | |
CA2900137A1 (en) | Tamper-evident data store method and system, and device configured | |
CN104281818A (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 |