CN112433817A - 信息配置方法、直接存储访问方法及相关装置 - Google Patents

信息配置方法、直接存储访问方法及相关装置 Download PDF

Info

Publication number
CN112433817A
CN112433817A CN202011362419.3A CN202011362419A CN112433817A CN 112433817 A CN112433817 A CN 112433817A CN 202011362419 A CN202011362419 A CN 202011362419A CN 112433817 A CN112433817 A CN 112433817A
Authority
CN
China
Prior art keywords
information
key
configuration
virtual machine
encrypted
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.)
Granted
Application number
CN202011362419.3A
Other languages
English (en)
Other versions
CN112433817B (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 CN202011362419.3A priority Critical patent/CN112433817B/zh
Publication of CN112433817A publication Critical patent/CN112433817A/zh
Application granted granted Critical
Publication of CN112433817B publication Critical patent/CN112433817B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

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

Abstract

本申请实施例提供一种信息配置方法、直接存储访问方法及相关装置,其中信息配置方法包括:获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的GPA、用于传输所述加密数据的DMA设备的设备标识和所述加密数据的密钥信息;基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;将所述配置信息发送给IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息,使加密虚拟机能够直接、高效的对DMA设备进行数据读写。

Description

信息配置方法、直接存储访问方法及相关装置
技术领域
本申请实施例涉及虚拟机技术领域,具体涉及一种信息配置方法、直接存储访问方法及相关装置。
背景技术
通过虚拟化技术(Virtualization),主机可虚拟化出多台虚拟机(VirtualMachine,VM),从而高效利用主机的硬件资源;虚拟化出的虚拟机可在物理主机中分配虚拟机内存空间等,每台虚拟机的虚拟机内存空间主要用于任务消耗及支持虚拟化。
为提高虚拟机的安全性,可对虚拟机的内存空间进行加密,其中,被加密的虚拟机内存空间可称为加密内存空间,相应的虚拟机可称为加密虚拟机。
在计算机体系中,加密虚拟机存在对DMA(Direct Memory Access,直接存储访问)设备进行数据读写的需求,如DMA设备为硬盘,加密虚拟机可以DMA方式,对硬盘进行数据读写;而在DMA设备也存在数据加密需求的情况下(如硬盘中的数据出于安全考虑,存在加密需求),由于加密虚拟机的加密内存空间和DMA设备内的数据均处于加密状态,且加密虚拟机使用的密钥与DMA设备加密使用的密钥可能不同,这导致加密虚拟机无法直接、高效的对DMA设备进行数据读写。因此,如何提供改进方案,以使加密虚拟机能够直接、高效的对DMA设备进行数据读写,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种信息配置方法、直接存储访问方法及相关装置,以使加密虚拟机能够直接、高效的对DMA设备进行数据读写。
为实现上述目的,本申请实施例提供如下技术方案:
一种信息配置方法,应用于安全处理器,所述方法包括:
获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;
基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
将所述配置信息发送给与所述DMA设备对应的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
本申请实施例还提供另一种信息配置方法,应用于输入输出内存管理单元IOMMU,所述方法包括:
获取安全处理器发送的配置信息,所述配置信息至少包括:待加密虚拟机访问的加密数据的虚拟物理地址GPA、与所述GPA的密钥页表项对应的密钥地址信息和存储所述加密数据的直接存储访问DMA设备的设备标识;其中,所述加密数据的密钥信息存储在所述密钥页表项指向的内存空间;
确定与所述设备标识对应的数据项;
在所述数据项中配置所述密钥地址信息。
本申请实施例还提供一种直接存储访问方法,上述应用于IOMMU的信息配置方法,所述直接存储访问方法应用于输入输出内存管理单元IOMMU,包括:
获取针对直接存储访问DMA设备的DMA请求,所述DMA请求至少包括待访问的DMA设备的设备标识和虚拟物理地址GPA;
确定配置在所述DMA设备的数据项中的密钥地址信息;
根据所述密钥地址信息和所述GPA查询对应所述DMA设备的密钥信息;
为内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
本申请实施例还提供一种信息配置装置,包括:
配置请求获取模块,用于获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;
页表项创建模块,用于基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
配置信息生成模块,用于生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
配置信息发送模块,用于将所述配置信息发送给与所述DMA设备对应的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
本申请实施例还提供另一种信息配置装置,包括:
配置信息获取模块,用于获取安全处理器发送的配置信息,所述配置信息至少包括:待加密虚拟机访问的加密数据的虚拟物理地址GPA、与所述GPA的密钥页表项对应的密钥地址信息和存储所述加密数据的直接存储访问DMA设备的设备标识;其中,所述加密数据的密钥信息存储在所述密钥页表项指向的内存空间;
数据项确定模块,用于确定与所述设备标识对应的数据项;
地址信息配置模块,用于在所述数据项中配置所述密钥地址信息。
本申请实施例还提供一种直接存储访问装置,包括:
访问请求获取模块,用于获取针对直接存储访问DMA设备的DMA请求,所述DMA请求至少包括待访问的DMA设备的设备标识和虚拟物理地址GPA;
地址信息确定模块,用于确定配置在所述DMA设备的数据项中的密钥地址信息;
密钥页表查询模块,用于根据所述密钥地址信息和所述GPA查询对应所述DMA设备的密钥信息;
密钥信息配置模块,用于为内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
本申请实施例还提供一种安全处理器,所述安全处理器被配置为执行如上述所述的应用于安全处理器的信息配置方法。
本申请实施例还提供一种输入输出内存管理单元IOMMU,所述IOMMU被配置为执行如上述所述的应用于IOMMU的信息配置方法,和/或,执行如上述所述的应用于IOMMU的直接存储访问方法。
本申请实施例还提供一种电子设备,包括如上述所述的安全处理器,以及如上述所述的输入输出内存管理单元IOMMU。
本申请实施例提供的信息配置方法中,安全处理器可获取加密虚拟机用于信息配置的配置请求,所述配置请求至少包括待加密虚拟机访问的加密数据的虚拟物理地址GPA、存储所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;从而,安全处理器基于所述配置请求创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间,并进一步生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;进而,安全处理器可将所述配置信息发送给IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
可以看出,本申请实施例提供的设备信息配置方法中,在进行信息配置时,IOMMU可在安全处理器的控制下,在IOMMU的数据项中配置密钥地址信息,从而在加密虚拟机对DMA设备进行数据读写时,IOMMU可基于所述GPA与所述数据项中配置的密钥地址信息,查询对应所述DMA设备的密钥信息,进而在所述内存控制器内配置所述密钥信息,以使内存控制器基于所述密钥信息,对加密虚拟机针对DMA设备所读写的数据进行加解密,来实现加密虚拟机对DMA设备的直接数据读写,避免了需要先将需要读写的数据加解密后再存储到普通内存空间的过程,可实现加密虚拟机直接、高效的对DMA设备进行数据读写,提升DMA传输效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为基于虚拟化技术的云服务架构图;
图2为云服务场景的安全虚拟化技术架构图;
图3为基于安全虚拟化技术的linux系统的架构示意图;
图4为加密文件的初始化流程可选示意图;
图5为本申请实施例提供的虚拟化技术架构示意图;
图6为本申请实施例提供的IOMMU中的结构示意图;
图7为本申请实施例提供的信息配置方法的一流程图;
图8为本申请实施例提供的IOMMU中设备表项的数据结构示意图;
图9为本申请实施例提供的DMA方法的流程图;
图10为本申请实施例提供的内存控制器读写数据的示例图;
图11为本申请实施例提供的页表查询示意图;
图12为本申请实施例提供的信息配置方法的另一可选流程;
图13为本申请实施例提供的信息配置装置的框图;
图14为本申请实施例提供的信息配置装置的另一框图;
图15为本申请实施例提供的信息配置装置的再一框图;
图16为本申请实施例提供的直接存储访问装置的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
虚拟化技术可应用于多种场景,特别的,随着云服务的发展,虚拟化技术在云服务这一场景中得到了越来越广泛的应用;为便于理解虚拟化技术,下面以基于虚拟化技术的云服务为例,对虚拟化技术进行介绍。
参照图1所示基于虚拟化技术的云服务可选架构,该云服务架构可以包括:云主机10,网络20,用户31至3n;
其中,云主机10为云服务提供方(如云服务厂商)部署在网络侧的用于提供云服务的主机设备(主机设备的形式可以是服务器);基于不同用户的需求,云主机可通过虚拟化技术为不同用户创建一台或多台虚拟机,例如,用户可以根据业务需求,请求云主机为用户创建适应其业务需求的多台虚拟机,从而用户可以在属于其的多台虚拟机上分别运行应用,以通过多台虚拟机运行的应用来协作完成用户特定的业务;
网络20可以认为是互联网,或者其他形式的具有通信功能的网络,云主机与用户之间通过网络实现通信和数据传输,本申请实施例并不限制网络20的具体网络形式;
用户31至3n为使用云服务的注册用户,其数量可以为多个,本申请实施例并不限制n的具体数值;在云服务场景下,每一个用户可以在云主机中拥有属于其的一台或多台虚拟机,以利用属于用户的虚拟机来完成用户特定的业务。
为便于进一步清楚的了解云服务场景的虚拟化技术,参照图2所示云服务场景的安全虚拟化技术架构,云主机可以包括:CPU(Central Processing Unit,中央处理器)11,内存控制器(UMC,Unified Memory controller)12,物理内存13;
其中,CPU 11可通过软件形式配置虚拟机管理器,在云服务场景下,虚拟机管理器可基于云主机获得的用户需求,为用户创建一台或多台虚拟机,物理内存13的部分或全部空间可作为为虚拟机分配的虚拟机内存空间;
内存控制器12是控制物理内存13,并且使物理内存13与CPU 11之间交互数据的硬件。
为提高云服务的数据安全性,可以通过安全虚拟化技术对部分或所有虚拟机的虚拟机内存空间进行加密,而且不同虚拟机的虚拟机内存空间通过不同的密钥进行加密,即使主机操作系统也无法访问密钥,从而防止物理主机和其他虚拟机对当前运行的虚拟机内存空间中的虚拟机数据的访问和篡改,提升了虚拟机数据的安全性;
可选的,继续参考图2,云主机可以进一步包括安全处理器(PSP,Platform SecureProcessor)14,以及配置在内存控制器12中的密码协处理器(CCP,Crypto Co-processor)15;其中,安全处理器14是安全虚拟化技术专门设置的负责虚拟机数据安全的处理器,密码协处理器15是内存控制器中用于实现对虚拟机内存空间进行加解密的器件;
其中,安全处理器14可为不同虚拟机分配不同的虚拟机密钥,并将虚拟机的虚拟机密钥存储在内存控制器12中,内存控制器12则基于存储的虚拟机密钥,对虚拟机的虚拟机内存空间进行加解密,以实现虚拟机与主机操作系统、以及不同虚拟机之间的数据安全隔离;
分配虚拟机密钥的虚拟机可以称为加密虚拟机,被加密的虚拟机内存空间称为加密内存空间,加密内存空间中的内存页称为加密内存页面;而未分配虚拟机密钥的虚拟机可以称为普通虚拟机,未被加密的虚拟机内存空间称为普通内存空间,普通内存空间中的内存页称为普通内存页面;由图2可以看出,应用进程与普通虚拟机的数据存储在普通内存空间,加密虚拟机的数据存储在加密内存空间。
可以看出,安全虚拟化技术可对加密虚拟机的加密内存空间进行加密,提高加密虚拟机的数据安全性;在此基础上,主机的DMA设备(如硬盘)也可能存在数据加密需求,以对DMA设备中的数据进行安全保护,以DMA设备为硬盘、DMA设备中的加密数据为硬盘中的加密文件为例,参考图3所示的基于安全虚拟化技术的linux系统的架构示意图,对硬盘的加密机制具体如下:
参考图3,基于安全虚拟化技术的linux系统架构可以包括硬件层、内核空间和用户空间。其中,硬件层用于为系统运行提供相应的硬件,内核空间可以理解为操作系统内核的运行空间,虚拟机内核和主机内核运行于此;用户空间可以理解为用户应用程序的运行空间,虚拟机的应用层运行于此。
内核空间包括文件系统和用于管理文件系统的虚拟文件系统(virtual filesystem,VFS);在虚拟文件系统与文件系统之间,则配置有加密文件管理层(例如可以为eCryptfs等),用于基于密钥存储中存储的密钥和内核密码算法接口实现对硬盘中加密文件的加解密等操作;需要说明的是,此处所指的密钥用于实现硬盘中加密文件的加解密,不同于安全处理器为加密虚拟机分配的虚拟机密钥;
用户空间包括应用程序和用于实现加密文件管理的加密应用程序,其中,加密应用程序可以实现人机交互,配置用户输入的用户口令、密钥参数等信息,并将这些信息保存在内核空间的密钥存储内。
硬件层可以包括图2的架构示出的硬件设备以及其他用于实现系统运行的必要的设备,为便于描述,在本示例中仅示出了CPU、物理内存和硬盘。
需要说明的是,DMA是可不通过CPU即可直接与物理内存交换数据的接口技术,硬盘作为DMA设备的一种可选形式,可基于IOMMU(Input/Output Memory Management Unit,输入输出内存管理单元)实现与物理内存之间的数据传输。
参考图4所示硬盘中加密文件的初始化流程的可选示意图,该流程可由加密虚拟机调用的应用层和主机内核执行,如图4所示,加密文件的初始化流程包括:
步骤S01、应用层基于用户输入的用户口令,以及加密算法参数,生成所述加密文件的密钥信息;
可选的,所述密钥信息可以包括加密文件的加密密钥和/或初始向量。具体的,加密应用程序可以基于用户输入的用户口令,以及加密算法参数,生成一系列的随机数作为所述密钥信息。
其中,所述用户口令可以基于用户输入获得,所述加密算法参数可以预先存储并在使用时读取。
需要说明的是,加密文件的加密密钥的生成方式,并不限于用户输入的口令,在其他可选的示例中,也可以利用PSP直接生成。
在得到所述密钥信息后,主机内核(如操作系统内核)可基于所述密钥信息对硬盘的文件进行加密,具体的,可由加密文件管理层对待加密的文件进行加密,得到加密文件。
步骤S02、应用层基于用户口令对密钥信息进行加密,得到加密文件元数据;
其中,通过对密钥信息进行加密,可以提高密钥信息的安全性,保护密钥信息不被泄漏。
在其他可选的示例中,密钥信息还可以基于芯片厂商公钥加密,形成加密文件元数据。
步骤S03、应用层将加密文件元数据写入加密文件头部;
可选的,步骤S01~步骤S03具体可由用户空间中应用层的加密应用程序执行。
步骤S04:主机内核将加密文件元数据存储至预设位置;
在将加密文件元数据写入加密文件头部之后,主机内核可以进一步将加密文件元数据存储至预设位置;在可选的具体实现中,由于加密文件元数据本身是加密的,因此主机内核可将加密文件元数据存储到普通内存空间中,并通过硬盘IO(Input/Outpu,输入/输出)或DMA方式写入硬盘指定的扇区位置。
进一步的,在对加密文件读写前,由于加密文件元数据写入加密文件头部,因此可以读出加密文件头部的加密文件元数据,并通过用户口令解密,得到加密文件的密钥/初始向量等密钥信息,并基于密钥/初始向量等密钥信息对加密文件进行解密。
在安全虚拟化场景下,以DMA设备为硬盘为例,由于硬盘中加密文件与加密内存空间均为加密状态,且硬盘中加密文件使用的密钥,与加密虚拟机使用的虚拟机密钥可能不同,这导致现有的虚拟机IOMMU方案,在加密虚拟机对硬盘进行数据读写时,无法支持对硬盘中加密数据的加解密,需要加密虚拟机先在加密内存空间之外申请一块非加密的普通内存空间进行数据中转,才能实现加密虚拟机对硬盘的数据读写;具体的,在申请普通内存空间后,后续过程如图3标号所示:
①当加密虚拟机对硬盘中的加密文件发起读请求时(即加密虚拟机将硬盘中的加密文件读到加密内存空间),加密虚拟机在内核空间层需要执行硬盘IO操作,使得硬盘以DMA传输硬盘中加密的数据到普通内存(即普通内存空间)中;②由于普通内存中传输的数据为加密状态,无法直接传输到加密虚拟机的加密内存(即加密内存空间),因此加密文件管理层需调用内核密码算法接口,把普通内存中的加密文件解密后,拷贝到加密虚拟机的加密内存空间中,可以理解的是,加密文件解密后,是以安全处理器管理的加密虚拟机的虚拟机密钥进行加密后存储到加密内存空间;
相应的,当加密虚拟机对硬盘发起写请求时(即加密虚拟机将加密内存空间中的数据写入硬盘),则加密内存空间中的数据以虚拟机密钥解密后,同样需要加密文件管理层调用内核密码算法接口把加密内存空间中解密的数据,再以加密文件的密钥信息执行加密操作后,拷贝到普通内存中(如图1,②);然后执行硬盘IO操作,使得将普通内存加密的数据传输到硬盘中的加密文件的扇区中(如图1,①)。
通过上述介绍可以看出,在安全虚拟化技术下,加密虚拟机每次对DMA设备进行数据读写时,加密虚拟机都需要将读写的数据通过普通内存空间进行中转,以及调用加解密算法对数据进行加解密,这无疑大大降低了DMA效率,存在加密虚拟机无法直接、高效的对DMA设备进行数据读写的问题;为解决该问题,本申请的发明人经研究后提出改进的方案,以使加密虚拟机能够直接、高效的对DMA设备进行数据读写,提升DMA的传输效率。
本申请的发明人发现,在加密虚拟机对DMA设备进行数据读写的过程中,需由IOMMU传输数据,而由于目前IOMMU仅支持数据的传输,并不能同步实现对DMA设备的加密文件的加解密,从而每次均需要加密虚拟机将读写的数据通过普通内存空间进行中转,导致加密虚拟机无法直接、高效的对DMA设备进行数据读写;在此情况下,借助内存控制器中的密码协处理器可以加密虚拟机的虚拟机密钥,对写入或读出加密内存空间的数据进行加解密,本申请提供了一种信息配置方法,通过PSP在IOMMU的数据项中配置密钥地址信息,进而使IOMMU在加密虚拟机对DMA设备进行数据读写时,能够基于密钥地址信息和GPA查询对应的密钥信息,并通过在内存控制器中配置相应的密钥信息,从而控制内存控制器在基于虚拟机密钥对写入或读出加密内存空间的数据进行加解密的情况下,可进一步利用配置的密钥信息,对读取自DMA设备的数据或者写入DMA设备的数据进行加解密,使加密虚拟机能够直接、高效的对DMA设备进行数据读写,提升DMA的传输效率。
下面将对本申请实施例提供的信息配置方案进行详细介绍。
在可选实现中,图5示出了本申请实施例提供的可选的虚拟化技术架构示意图,如图5所示,该虚拟化技术架构基于安全虚拟化技术实现,具体可以包括:CPU,内存控制器UMC,物理内存,安全处理器PSP,IOMMU、DMA设备;
CPU,UMC,物理内存,PSP,IOMMU,DMA设备的基本介绍可参照前文相应部分的描述,下文将进一步说明这些部件在本申请实施例中的改进作用和关系。
具体的,为使得安全处理器能够在IOMMU内的设备表项DTE(Device Table Entry)中配置密钥地址信息,本申请实施例在图5所示技术架构中还设置了安全处理器与IOMMU的交互接口,以使得安全处理器能够与IOMMU进行交互;
并且,为使IOMMU能够配置UMC,本申请实施例在图5所示技术架构中还设置了IOMMU与UMC的交互接口,以使得IOMMU能够与UMC交互;
进一步结合参考图6所示IOMMU结构示意图,用于配置密钥地址信息的数据项可以为IOMMU设备表的设备表项DTE,其中,可选的,密钥地址信息可以为密钥页表根目录基地址,DTE中可以增设密钥页表根目录key table root pointer字段,以存储用于指向密钥页表根目录的密钥页表根目录基地址,以使IOMMU查询所述GPA对应的密钥信息(如加密密钥,加密算法等)。
为实现密钥信息的查询,继续参考图6所示IOMMU结构示意图,本申请实施例中的IOMMU中,除包括IO页表查询装置,以实现GPA至HPA之间的转换,同时,还包括有密钥页表查询装置,以根据密钥页表根目录基地址及所述GPA查询相应的密钥信息。
基于图5和图6所示可选架构,在一种可选实现中,图7示出了本申请实施例提供的信息配置方法的可选流程,如图7所示,该流程可以包括:
步骤S10、加密虚拟机向安全处理器发送配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息。
在加密虚拟机对DMA设备进行数据读写时,加密虚拟机可向安全处理器发起进行密钥信息配置的配置请求,以触发后续的信息配置流程;在可选实现中,所述配置请求中可以包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息,其中,用于传输所述加密数据的直接存储访问DMA设备可以为存储所述加密数据的硬盘,相应的,用于传输所述加密数据的直接存储访问DMA设备的设备标识可以为硬盘标识(Device ID)。
示例的,所述加密数据可以为加密文件,根据前述说明可知,在创建加密文件时,加密虚拟机的加密应用程序可以基于用户口令对密钥/初始向量等密钥信息进行加密,得到加密文件元数据,进一步将加密文件元数据存储到普通内存空间中。相应的,在访问加密文件时,所述加密虚拟机可以读出加密文件头部的加密文件元数据,并通过用户口令,解密得到加密文件的密钥/初始向量等密钥信息,从而,在发送配置请求前,可以获取待访问的加密文件的密钥信息。在所述加密数据为其他类型的数据时,所述加密数据的加密信息可以通过其他途径获取,本发明实施例在此不做具体的限制。
待所述加密虚拟机访问的加密数据的虚拟物理地址GPA可以为加密虚拟机的虚拟机内核为该加密数据分配的虚拟物理地址,其中,在确定加密数据未存储在加密内存空间时(即加密数据对应的GPA缺页),则需要DMA设备向加密虚拟机所分配的加密内存空间传输加密数据,相应的,在执行该传输流程前,向安全处理器发送配置请求,以使加密虚拟机直接、高效的对DMA设备进行数据读写。
在进一步的可选实现中,为防止所述配置请求被篡改,所述配置请求中还可携带用于完整性校验的完整性校验数据,具体的,加密虚拟机可计算所配置请求的第一完整性校验数据(本申请实施例可将加密虚拟机计算的所述配置请求的完整性校验数据,称为第一完整性校验数据),并在所述配置请求中携带所述第一完整性校验数据。
需要说明的是,在虚拟化技术下,加密虚拟机运行于虚拟机模式,主机内存、安全处理器运行于主机模式;其中虚拟机模式可用来运行虚拟化的客户操作系统,在虚拟机模式下,部分指令将改变其特性以方便虚拟化实现;与虚拟机模式相对应的是主机模式,当CPU复位或者虚拟机模式退出之后,则处于主机模式,而主机内核通过VMRUN(虚拟机运行)指令可进入虚拟机模式;因此,在虚拟化技术下,加密虚拟机与安全处理器之间的交互,可通过加密虚拟机申请的加密内存页面进行,并且加密虚拟机在虚拟机模式下是以GPA访问加密内存页面,安全处理器在主机模式下是以HPA访问加密内存页面;从而,加密虚拟机向安全处理器发送数据是:加密虚拟机将数据写入GPA对应的加密内存页面,并由安全处理器读取HPA对应的加密内存页面中的数据来实现;其中,GPA与HPA之间的转换可通过查询嵌套页表实现。
具体的,加密虚拟机在虚拟机模式下,可将所述配置请求写入加密虚拟机的GPA对应的加密内存页面,然后加密虚拟机退出虚拟机模式,在进入主机模式后,安全处理器从HPA对应的加密内存页面中读取出配置请求;需要说明的是,加密内存页面中的数据以加密虚拟机的密钥加密,因此加密虚拟机写入的配置请求是加密状态的,而安全处理器读取的配置请求是解密后的信息。
步骤S11、安全处理器基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间。
安全处理器在获取所述配置请求后,可基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间,以使IOMMU在加密虚拟机对DMA设备进行数据读写时,启动DMA数据传输,进而基于相应的密钥地址信息及GPA信息查询对应的密钥信息。
可选的,安全处理器可以首先在密钥页表页面内创建密钥页表,并在密钥页表中创建对应所述GPA的密钥页表项。其中,密钥页表页面为用于存储密钥页表的页面,在所述GPA的密钥页表项前,可以确定密钥页表页面(key table page)是否存在空闲页面,若否,则向主机内核申请内存页面作为密钥页表页面作为密钥页表页面的空闲页面,并在所述密钥页表页面的空闲页面创建对应所述GPA的密钥页表项;若是,则在密钥页表页面的空闲页面创建对应所述GPA的密钥页表项。
在创建对应所述GPA的密钥页表项,可以将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间,以使IOMMU能够基于所述密钥页表项对应的密钥地址信息以及所述GPA查询对应的密钥信息。
在进一步的可选实现中,安全处理器在配置请求后,可先校验配置请求的完整性,在校验配置请求完整的情况下,才执行步骤S11;具体的,如果配置请求中携带第一完整性校验数据,安全处理器在获取所述配置请求后,可计算配置请求的第二完整性校验数据(为区分加密虚拟机计算的配置请求的第一完整性校验数据,本申请实施例将安全处理器计算的配置请求的完整性校验数据称为第二完整性校验数据),从而安全处理器可基于第二完整性校验数据与第一完整性校验数据,来校验配置请求是否完整,如在第二完整性校验数据与第一完整性校验数据相等时,确定配置请求完整,进入执行步骤S11,而在第二完整性校验数据与第一完整性校验数据不相等时,确定配置请求不完整;
可选的,配置请求的完整性校验数据例如配置请求的摘要值,本申请实施例可通过哈希(hash)等算法计算配置请求的摘要值,如第一完整性校验数据可以是加密虚拟机计算的配置请求的第一摘要值,第二完整性校验数据可以是安全处理器计算的配置请求的第二摘要值。
步骤S12、安全处理器生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识。
安全处理器在将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间后,可以得到所述密钥地址信息,以使基于该配置信息配置的IOMMU数据项中包括所述密钥地址信息。
可选的,安全处理器应告知IOMMU进行设备配置的DMA设备,因此所述配置信息中应携带直接存储访问DMA设备的设备标识;同时,本申请实施例在DMA设备的设备信息配置过程中,旨在使得DMA设备的数据项中至少配置对应加密数据密钥信息的密钥地址信息,以便于加密虚拟机针对DMA设备所读写的数据进行加解密,因此所述配置信息中还应携带所述密钥页表项对应的密钥地址信息;
进一步,所述配置信息中还应携带待加密虚拟机访问的加密数据的虚拟物理地址GPA,以使得后续进行DMA时,基于密钥地址信息和与GPA对应的HPA进行密钥信息的配置;
基于上述描述,本申请实施例可在所述配置信息中携带包括待加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息,其中,所述加密数据以所述加密虚拟机的加密应用程序生成的密钥加密。
步骤S13、安全处理器将所述配置信息发送给IOMMU。
安全处理器生成所述配置信息后,可通过安全处理器与IOMMU的接口,将所述配置信息发送给IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
步骤S14、IOMMU确定与所述设备标识对应的数据项。
步骤S15、IOMMU在所述数据项中配置所述密钥地址信息。
IOMMU获取所述配置信息后,可基于配置信息中的设备标识确定与所述设备标识对应的数据项,基于IOMMU确定的所述数据项,IOMMU可在所述数据项中记录配置信息中携带的密钥地址信息。
可选的,所述数据项例如可以为IOMMU中设备表(Device Table)的设备表项DTE,如图6所示的IOMMU设备表,设备表中具有多项的DTE,每一项DTE保存IOMMU连接的一台DMA设备的设备基本信息,并以DMA设备的设备标识(如设备号)进行索引;从而,IOMMU可从IOMMU中的设备表中查找与所述配置信息携带的设备标识对应的设备表项,在查找到的设备表项中配置所述密钥地址信息;
在一种示例中,以密钥地址信息为密钥页表根目录基地址为例,IOMMU可在查找到的设备表项中的预设字段,例如密钥页表根目录key table root pointer字段,中记录所述密钥页表根目录基地址,以在所述设备表项中配置密钥地址信息;当然,本申请实施例也可通过扩展设备表项的数据结构,来记录密钥地址信息,例如,通过扩展设备表项的字段,IOMMU可在扩展的字段中记录密钥地址信息;
参考图8所示的设备表项的数据结构示意图,在设备表项中增设了64bit的keytable root pointer字段,其中,bit0,P位表示当前页表项是否存在,P=1表示有效,P=0表示无效;bit[51:12]表示密钥页表根目录基地址addr。
需要说明的是,以设备表项作为DMA设备的数据项仅是一种可选实现,本申请实施例也可在IOMMU中设置其他的数据形式作为数据项,以实现配置密钥地址信息。
可以理解的是,在本申请实施例中,IOMMU是在安全处理器的控制下,在DMA设备的数据项(如设备表项)中配置密钥地址信息,因此数据项中的密钥地址信息仅支持安全处理器和IOMMU访问,且仅支持安全处理器的写操作,即使主机操作系统也无法访问数据项中的密钥地址信息,从而也无法窃取与密钥地址信息对应的密钥信息,极大的保障了密钥信息的安全性。
可选的,IOMMU在所述数据项中配置所述密钥地址信息之后,可以向安全处理器发送配置成功通知,以通知安全处理器成功在所述数据项中配置密钥地址信息,从而安全处理器可向加密虚拟机反馈表示配置成功的配置结果信息,以使得加密虚拟机确定DMA设备的信息配置成功;可以理解的是,由于安全处理器与加密虚拟机是通过加密内存页面进行交互,因此安全处理器可通过在加密内存页面中写入配置结果信息(加密状态),来向加密虚拟机进行反馈。
本申请实施例提供的信息配置方法中,安全处理器可获取加密虚拟机用于信息配置的配置请求,所述配置请求至少包括待加密虚拟机访问的加密数据的虚拟物理地址GPA、存储所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;从而,安全处理器基于所述配置请求创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间,并进一步生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;进而,安全处理器可将所述配置信息发送给IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
可以看出,本申请实施例提供的设备信息配置方法中,在进行信息配置时,IOMMU可在安全处理器的控制下,在IOMMU的数据项中配置密钥地址信息,从而在加密虚拟机对DMA设备进行数据读写时,IOMMU可基于所述GPA与所述数据项中配置的密钥地址信息,查询对应所述DMA设备的密钥信息,进而在所述内存控制器内配置所述密钥信息,以使内存控制器基于所述密钥信息,对加密虚拟机针对DMA设备所读写的数据进行加解密,来实现加密虚拟机对DMA设备的直接数据读写,避免了需要先将需要读写的数据加解密后再存储到普通内存空间的过程,可实现加密虚拟机直接、高效的对DMA设备进行数据读写,提升DMA传输效率。
在IOMMU的设备数据项已配置密钥信息的情况下,本申请实施例提供相应的DMA方法,在可选实现中,图9示出了本申请实施例提供的DMA方法的可选流程,该方法流程可由IOMMU执行实现,如图9所示,该流程可以包括:
步骤S20、获取针对直接存储访问DMA设备的DMA请求。
在加密虚拟机对DMA设备进行数据读写时,加密虚拟机可向IOMMU连接的DMA设备发起DMA请求,以使得DMA设备与加密虚拟机的加密内存页面,使用DMA方式将DMA设备中的加密数据传输至虚拟机的加密内存页面,此时,IOMMU可获取针对DMA设备的DMA请求。其中,所述DMA请求至少包括待访问的DMA设备的设备标识和待加密虚拟机访问的加密数据的虚拟物理地址GPA。
步骤S21、确定所述GPA对应的主机物理地址HPA。
IOMMU在获取DMA请求后,可确定所述DMA请求中的GPA,进而可以基于IO页表查询装置确定所述GPA对应的主机物理地址HPA,其中,GPA可从DMA请求中获取,HPA可以基于GPA转换得到。HPA为DMA设备以DMA方式进行数据传输的加密内存页面地址。在可选实现中,IOMMU可通过查找IO页面,获取所述GPA对应的HPA。
可选的,所述HPA可以进一步包含加密虚拟机的虚拟机标识ASID和加密标识c-bit,其中,加密标识c-bit用于标识所述HPA对应的内存页面为加密状态的加密内存页面。所述HPA中的加密标识的数值设置为表示加密的第一值或表示未加密的第二值,例如,可以设置数值“1”表示加密,设置数值“0”表示未加密。
其中,需要说明的是,步骤S21为本方案的可选步骤,在本示例所述的信息配置方法中,步骤S21可在为内存控制器配置密钥信息完毕后执行,从而加密虚拟机对DMA设备读写的数据传输至HPA对应的加密内存网页。
步骤S22、确定配置在所述DMA设备的数据项中的密钥地址信息。
在IOMMU已在数据项(如设备表项)配置密钥地址信息的情况下,IOMMU基于步骤S20中的DMA请求,可以确定DMA设备的设备标识,可从所述DMA设备的数据项中,确定出对应的密钥地址信息;例如,IOMMU可从所述DMA设备的设备表项中,确定所述密钥地址信息。
步骤S23、根据所述密钥地址信息和所述GPA查询密钥信息。
可选的,在获取所述密钥地址信息后,可以根据所述密钥地址信息和所述GPA,向PSP查询相应的密钥页表,得到密钥信息的存储地址,并进一步基于该存储地址获取对应所述GPA的密钥信息。
可选的,步骤S23可由IOMMU中设置的密钥页表查询装置实现,密钥页表查询装置可如图6所示,该密钥页表查询装置通过根据DTE中配置的密钥地址信息和所述GPA,查询对应DMA设备的密钥页表,获取对应所述GPA的密钥信息。
步骤S24、为所述内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
可选的,所述为所述内存控制器配置所述密钥信息,具体为,为所述内存控制器的密码协处理器配置所述密钥信息;在获取所述密钥信息后,可通过IOMMU与密码协处理器的接口,为所述内存控制器配置所述密钥信息。
IOMMU在确定所述GPA对应的密钥信息后,可在所述内存控制器内配置所述密钥信息,以使内存控制器基于所述密钥信息,实现针对加密虚拟机对DMA设备读写的数据进行加解密,避免了加密虚拟机需要先将数据加解密后再存储到普通内存空间的过程,提升了DMA的传输效率。
可选的,所述DMA请求中可以进一步包括虚拟机标识,从而在配置所述密钥信息时,IOMMU可将所述密钥信息与加密虚拟机的虚拟机标识相绑定,从而使内存控制器基于所述虚拟机标识确定相应的密钥信息。
可选的,IOMMU可将GPA转换得到的HPA发送给内存控制器,以使得内存控制器基于所述HPA中的虚拟机标识绑定的密钥,针对加密虚拟机对DMA设备读写的数据进行加解密;在更为具体的可选实现中,加密虚拟机对DMA设备读写数据可以分为写数据和读数据的过程,可以理解的是,由于加密数据为加密状态,因此在应用程序对硬盘加密数据发起读请求时,需要将硬盘中的数据以加密虚拟机的密钥解密后,拷贝至加密内存页面;应用程序往硬盘加密数据发起写请求时,则需要将加密内存页面中的数据以加密虚拟机的密钥加密后,拷贝到硬盘加密数据的扇区中。
在DMA设备进行DMA时,IOMMU可查询IO页表得到所述GPA对应的HPA,根据HPA中配置的ASID,来控制内存控制器对加密内存页面的数据进行加解密,实现加密虚拟机直接、高效的对DMA设备进行数据读写,提升DMA的传输效率。
在一种示例中,如图10所示,在读数据时,内存控制器获取IOMMU转换所述GPA后得到的HPA后,可解析HPA,在判断HPA中的c-bit为第一值后,内存控制器可调用与ASID绑定的密钥,对加密数据进行解密后,拷贝至HPA对应的加密内存页面;在写数据时,内存控制器获取HPA后,可从HPA对应的加密内存页面拷贝出数据,并使用与ASID绑定的密钥,对数据进行加密后,传递给DMA设备。
在一种可选的实现方式中,密钥页表结构可以与CPU页表类似,例如可以为4级页表,分别表示为pgd/pud/pmd/pte,其中,末级页表项pte.addr指向对应gpa的密钥信息的存储地址,参考图11所示的页表查询示意图,其中,密钥地址信息例如密钥页表根目录基地址addr位于设备表项key table root pointer字段的第12~51位,相应的,密钥页表的查询流程可以如下所示:
IOMMU的密钥页表查询装置获取GPA,并根据所述GPA从device table中获取DMA设备的DTE,从DTE中取出key table root pointer字段;若key table root pointer非法,则表示当前DMA设备的数据无需做CCP加解密操作,退出密钥页表查询,不执行CCP加解密操作;接着,取GPA的bit[47:39]为索引,从密钥页表中得到pgd,若pgd.p等于0,表明该地址无效,退出密钥页表查询,不执行CCP加解密操作;接着,由pgd.addr获取pud的内存页表地址,取GPA的bit[38:30]为索引,从密钥页表中得到pud,若pud.p等于0,表明该地址无效,退出密钥页表查询,不执行CCP加解密操作;之后,由pud.addr获取pmd的内存页表地址,取GPA的bit[29:21]为索引,从密钥页表中得到pmd,若pmd.p等于0,表明该地址无效,退出密钥页表查询,不执行CCP的加解密操作;之后,由pmd.addr获取pte的内存页表地址,取GPA的bit[20:12]为索引,从密钥页表中得到pte,若pte.p等于0,退出密钥页表查询,不执行信息配置流程;之后,由pte.addr获取当前gpa页面的加密密钥信息。
获取所述加密密钥信息后,可以把密钥信息配置到CCP中,并启动DMA通路的CCP功能(即执行CCP加解密操作);当DMA传输时,CCP会对DMA的数据进行加解密,完成硬盘加密数据的读写操作。
在进一步的可选实现中,提供了一种加密数据的访问流程,其中加密虚拟机与安全处理器通过加密内存页面进行交互,且加密虚拟机运行于虚拟机模式,安全处理器运行主机模式,相应的,图12示出了本申请实施例提供的信息配置方法的另一可选流程,如图12所示,该流程可以包括:
步骤S31、虚拟机模式下,获取加密数据的密钥信息和GPA。
在虚拟机模式下,步骤S30可以在需要执行加密数据的读/写操作时执行,本申请实施例在执行加密数据的读写操作时,首先对相应的信息进行配置,旨在实现加密虚拟机对DMA设备的直接数据读写,提升DMA传输效率。
可选的,所述加密数据为加密文件,所述应用层可以通过读取加密文件元数据,并利用用户口令进行加密文件元数据的解密,获取加密文件的密钥信息。
可选的,应用层可以利用MMAP操作来读写文件,从而将加密数据映射到应用程序的虚拟地址空间,其中,加密虚拟机的虚拟机内核可以为加密数据分配虚拟地址空间;相应的,应用层可以获取加密数据的虚拟地址空间对应的虚拟物理地址。
步骤S32、确定所述GPA是否缺页。
可选的,当发生缺页时,执行步骤S33,当未发生缺页时,执行步骤S49;
步骤S33、为虚拟物理地址分配缓存(page cache)内存页,并生成对应所述DMA设备的配置请求,将所述配置请求加密后写入所述加密虚拟机对应的加密内存页面。
在虚拟机内核确定所述虚拟物理地址缺页时,可以为虚拟机物理地址分配缓存(page cache)内存页。基于所述GPA的缺页状态,需要从硬盘中拷贝相应的数据至所述加密虚拟机的加密内存空间,从而,可以生成对应所述DMA设备的配置请求
其中,加密虚拟机可按照预设的格式,在配置请求中携带所述GPA、DMA设备的设备标识、所述加密数据的密钥信息、第一完整性校验数据等内容,并将配置请求加密后写入所述加密虚拟机对应的加密内存页面,其中,写入配置请求的加密内存页面的虚拟物理地址可以称为第一虚拟物理地址GPA1。
步骤S34、加密虚拟机退出虚拟机模式,以进入主机模式。
步骤S35、主机内核将写入所述配置请求的加密内存页面的主机物理地址发送给安全处理器。
在虚拟机模式下,虚拟机是以GPA进行内存页面的交互,而在主机模式下,主机内核、安全处理器是以HPA进行内存页面的交互;因此在加密虚拟机退出虚拟机模式后,在主机模式下,主机内核需基于加密虚拟机申请的加密内存页面的GPA获取对应的HPA,以便主机、安全处理器可基于HPA在加密内存页面进行交互;在可选实现中,写入配置请求的加密内存页面的虚拟物理地址可以称为第一虚拟物理地址GPA1,相应的,写入配置请求的加密内存页面的主机物理地址可以称为第一主机物理地址HPA1,主机内核可通过查找加密虚拟机的虚拟机嵌套页表,来获取所述GPA1对应的HPA1,其中嵌套页表(Nested page table,NPT)为CPU架构中为实现内存虚拟化引入的装置,用于虚拟机物理地址(GPA)到主机物理地址(HPA)的转换。
主机内核在获取所述HPA1后,可将所述HPA1发送给安全处理器,由安全处理器进行后续处理;需要说明的是,由于加密虚拟机申请的加密内存页面中的数据为加密状态,因此主机内核无法篡改加密内存页面中的配置请求,就算是主机内核篡改了HPA1,安全处理器在后续也可通过配置请求中的第一完整性校验数据,及时发现主机内核发送的HPA1是不正确的,从而保障信息配置工作的正确性和安全性。
步骤S36、安全处理器从写入所述配置请求的加密内存页面中读取解密后的配置请求。
安全处理器获取主机内核发送的HPA1后,可访问所述HPA1对应的加密内存页面,从所述HPA1对应的加密内存页面中读取出解密后的初始信息;可选的,由于加密虚拟机的密钥由安全处理器进行管理器,安全处理器可控制内存控制器,以加密虚拟机的虚拟机密钥,对所述HPA1对应的加密内存页面中加密的配置请求进行解密后读取出来。
可选的,安全处理器在读取解密的配置请求后,可基于配置请求中携带的信息,触发后续流程,具体情况如下步骤所示。
步骤S37、安全处理器计算配置请求的第二完整性校验数据。
步骤S38、安全处理器基于所述第一完整性校验数据和所述第二完整性校验数据,校验配置请求是否完整,若否,执行步骤S39,若是,执行步骤S41。
安全处理器读取解密的配置请求后,为防止所述配置请求被篡改,安全处理器可计算配置请求的第二完整性校验数据,从而安全处理器可基于第二完整性校验数据与配置请求中携带的第一完整性校验数据,来校验配置请求是否完整。
在可选实现中,安全处理器可将第一完整性校验数据与第二完整性校验数据进行比对,以校验配置请求是否完整;如果第一完整性校验数据与第二完整性校验数据不相等,则校验配置请求不完整,说明配置请求被篡改过或者HPA不正确,安全处理器不能继续后续配置IOMMU的数据项的流程,此时安全处理器可通过执行步骤S39,以在后续控制加密虚拟机确定信息配置工作失败;如果第一完整性校验数据与第二完整性校验数据相等,则校验配置请求完整,安全处理器可通过执行步骤S41,以正常实现配置IOMMU的数据项。
步骤S39、安全处理器在加密内存页面写入加密的第一配置结果信息,所述第一配置结果信息包括表示配置失败的应答信息。
在安全处理器校验配置请求不完整的情况下,为使得后续加密虚拟机能够确定信息配置工作失败,安全处理器可在与加密虚拟机交互的加密内存页面中写入第一配置结果信息,由于加密内存页面中的数据应处于加密状态,因此安全处理器在加密内存页面中写入的第一配置结果信息应是加密的;在本申请实施例中,由于IOMMU的数据项配置失败,因此,此时表达IOMMU的配置结果的第一配置结果信息中应携带表示配置失败的应答信息;由于安全处理器是以HPA1进行页面访问,因此安全处理器在HPA1对应的加密内存页面写入上述加密的第一配置结果信息。
步骤S40、安全处理器控制主机内核执行虚拟机运行指令,返回虚拟机模式以运行加密虚拟机。
校验配置请求不完整的情况下,需回退到加密虚拟机退出虚拟机模式的节点,以使得加密虚拟机确定信息配置失败,由于加密虚拟机运行在虚拟机模式,此时,安全处理器可控制主机内核通过执行VMRUN(虚拟机运行)指令,来返回虚拟机模式。可以理解的是,HPA对应的加密内存页面中的数据为加密状态,主机内核并无法读取和篡改,此时主机内核可在安全处理器的控制下,执行VMRUN(虚拟机运行)指令,来退出主机模式返回虚拟机模式。
需要说明的是,步骤S39和步骤S40是安全处理器在校验配置请求不完整情况下的处理流程;而在安全处理器校验配置请求完整的情况下,安全处理器可通过执行步骤S41,来实现正常配置IOMMU的数据项。
步骤S41、安全处理器基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
步骤S42、安全处理器生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
步骤S43、安全处理器将所述配置信息发送给IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
步骤S44、IOMMU在所述数据项中配置所述密钥地址信息。
步骤S45、IOMMU向安全处理器发送配置成功通知。
步骤S46、安全处理器在对应的加密内存页面写入加密的第二配置结果信息,所述第二配置结果信息包括表示配置成功的应答信息。
IOMMU在所述数据项中配置(记录)密钥信息之后,IOMMU可向安全处理器发送配置成功通知,以通知安全处理器DMA设备的数据项配置成功。
可选的,所述数据项中成功配置所述密钥地址信息的情况包括:获取所述IOMMU发送的配置成功通知,或,在校验所述配置请求完整且将所述配置信息发送给所述IOMMU后,默认所述数据项中成功配置所述虚拟机标识。
步骤S47、安全处理器控制主机内核执行虚拟机运行指令,返回虚拟机模式以运行加密虚拟机。
步骤S48、加密虚拟机从所述GPA对应的加密内存页面中读取解密后的配置结果信息。
基于上述流程,本申请实施例可在执行步骤S38之后(即DMA设备的数据项配置失败的情况下),和执行步骤S46之后(即DMA设备的数据项配置成功的情况下),通过主机内核执行VMRUN(虚拟机运行)指令,来返回虚拟机模式,进入到加密虚拟机上次退出虚拟机模式时的节点;在返回虚拟机模式之后,加密虚拟机需确定信息配置工作是否成功,因此加密虚拟机可从所述GPA1对应的加密内存页面中读取,安全处理器在主机模式下写入的配置结果信息;可以理解的是,在DMA设备的数据项配置失败的情况下,加密虚拟机读取出的是安全处理器写入的第一配置结果信息,在DMA设备的数据项配置成功的情况下,加密虚拟机读取出的是安全处理器写入的第二配置结果信息。
步骤S49、加密虚拟机发送DMA请求,以使加密虚拟机对DMA设备进行读写。
本申请实施例提供的信息配置方法,能够在DMA设备的信息配置过程中,在DMA设备的数据项中配置与所述加密数据的密钥信息对应的的密钥地址信息,从而加密虚拟机能够直接、高效的对DMA设备进行数据读写。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
下面从安全处理器的角度,对本申请实施例提供的信息配置装置进行介绍,下文描述的信息配置装置可以认为是,安全处理器为实现本申请实施例提供的信息配置方法,所需设置的功能模块;下文描述的信息配置装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图13示出了本申请实施例提供的信息配置装置的可选框图,该信息配置装置可应用于安全处理器,如图13所示,该信息配置装置可以包括:
配置请求获取模块100,用于获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;
页表项创建模块110,用于基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
配置信息生成模块120,用于生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
配置信息发送模块130,用于将所述配置信息发送给与所述DMA设备对应的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
可选的,所述安全处理器通过所述安全处理器与所述IOMMU的接口发送所述配置信息;
可选的,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一DMA设备的基本设备信息,并以DMA设备的设备标识进行索引。
可选的,所述DTE中设置有64位的密钥页表根目录key table root pointer字段,所述密钥地址信息配置在所述key table root pointer字段。
可选的,所述数据项中配置的所述密钥地址信息仅支持安全处理器和IOMMU访问。
可选的,所述配置请求还包括:所述加密虚拟机计算的所述配置请求的第一完整性校验数据;相应的,图14示出了本申请实施例提供的信息配置装置的另一可选框图,结合图13和图14所示,该信息配置装置还可以包括:
完整性校验模块140,用于在配置信息生成模块120生成配置信息之前,计算所述配置请求的第二完整性校验数据;基于所述第一完整性校验数据和所述第二完整性校验数据,校验所述配置请求是否完整,若校验所述配置请求完整,进入执行所述基于所述配置请求生成配置信息的步骤。
可选的,完整性校验模块140还可用于:若校验所述初始化信息不完整,向所述加密虚拟机反馈第一配置结果信息,其中,所述第一配置结果信息至少包括配置失败的应答信息,以使所述加密虚拟机确定所述信息配置失败。
可选的,进一步结合图14所示,该信息配置装置还可以包括:
配置结果反馈模块150,用于若所述数据项中成功配置所述密钥地址信息,向所述加密虚拟机反馈第二配置结果信息,其中,所述第二配置结果信息至少包括配置成功的应答信息,以使所述加密虚拟机确定所述信息配置成功。
可选的,所述数据项中成功配置所述密钥地址信息的情况包括:获取所述IOMMU发送的配置成功通知,或,在校验所述配置请求完整且将所述配置信息发送给所述IOMMU后,默认所述数据项中成功配置所述虚拟机标识。
可选的,所述安全处理器与所述加密虚拟机通过所述加密内存页面进行交互;
其中,所述加密虚拟机运行于虚拟机模式,以虚拟机物理地址GPA访问所述内存加密内存页面,所述安全处理器运行于主机模式,以所述HPA访问所述内存加密内存页面,所述GPA与所述HPA通过嵌套页表NPT进行转换;并且,加密虚拟机通过退出虚拟机模式以进入主机模式,在主机模式下,安全处理器通过控制主机内核执行虚拟机运行指令,以返回虚拟机模式。
本申请实施例还提供一种安全处理器,该安全处理器可被配置为执行本申请实施例提供的安全处理器角度的信息配置方法,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
下面从IOMMU的角度,对本申请实施例提供的信息配置装置进行介绍,下文描述的信息配置装置可以认为是,IOMMU为实现本申请实施例提供的信息配置方法,所需设置的功能模块;下文描述的信息配置装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图15示出了本申请实施例提供的信息配置装置的再一可选框图,该信息配置装置可应用于IOMMU,如图15所示,该信息配置装置可以包括:
配置信息获取模块200,用于获取安全处理器发送的配置信息,所述配置信息至少包括:待加密虚拟机访问的加密数据的虚拟物理地址GPA、与所述GPA的密钥页表项对应的密钥地址信息和存储所述加密数据的直接存储访问DMA设备的设备标识;其中,所述加密数据的密钥信息存储在所述密钥页表项指向的内存空间;
数据项确定模块210,用于确定与所述设备标识对应的数据项;
地址信息配置模块220,用于在所述数据项中配置所述密钥地址信息。
可选的,所述安全处理器通过所述安全处理器与所述IOMMU的接口发送所述配置信息。
可选的,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一DMA设备的基本设备信息,并以DMA设备的设备标识进行索引。
可选的,所述DTE中设置有64位的密钥页表根目录key table root pointer字段,所述密钥地址信息配置在所述key table root pointer字段。
可选的,所述数据项中配置的所述密钥地址信息仅支持安全处理器和IOMMU访问。
可选的,本申请实施例提供的信息配置装置还可用于:若所述数据项中成功配置所述密钥地址信息,向所述安全处理器发送配置成功通知。
下面从IOMMU的角度,对本申请实施例提供的直接存储访问装置进行介绍,下文描述的直接存储访问装置可以认为是,IOMMU为实现本申请实施例提供的直接存储访问方法,所需设置的功能模块;下文描述的直接存储访问装置的内容,可与上文描述的方法内容相互对应参照。
在可选实现中,图16示出了本申请实施例提供的直接存储访问装置的可选框图,该直接存储访问装置可应用于IOMMU,如图16所示,该直接存储访问装置可以包括:
访问请求获取模块300,用于获取针对直接存储访问DMA设备的DMA请求,所述DMA请求至少包括待访问的DMA设备的设备标识和虚拟物理地址GPA;
地址信息确定模块310,用于确定配置在所述DMA设备的数据项中的密钥地址信息;
密钥页表查询模块320,用于根据所述密钥地址信息和所述GPA查询对应所述DMA设备的密钥信息;
密钥信息配置模块330,用于为内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
可选的,本申请实施例提供的直接存储访问装置还可包括:
IO页表查询装置,用于确定所述GPA对应的主机物理地址HPA;
所述密钥信息配置模块330,用于为内存控制器配置所述密钥信息,具体用于使内存控制器基于所述密钥信息,对所述DMA设备与所述HPA对应的加密内存页面之间传输的数据进行加解密。
可选的,所述HPA中包括加密虚拟机的虚拟机标识和加密标识,所述HPA中的加密标识的数值设置为表示加密的第一值或表示未加密的第二值。
可选的,所述密钥信息配置模块330,用于为内存控制器配置所述密钥信息的步骤中,使所述密钥信息与所述HPA中的虚拟机标识绑定。
可选的,所述密钥信息配置模块330,用于为所述内存控制器配置所述密钥信息,具体为,为所述内存控制器的密码协处理器配置所述密钥信息。
可选的,所述IOMMU通过所述IOMMU与所述密码协处理器的接口为所述密码协处理器配置所述密钥信息。
本申请实施例还提供一种IOMMU,该IOMMU可被配置为执行本申请实施例提供的IOMMU角度的信息配置方法,或者,本申请实施例提供的IOMMU角度的DMA方法,具体内容可参照上文相应部分的描述,此处不再进一步展开介绍。
本申请实施例还提供一种电子设备,该电子设备例如云主机,该电子设备可以包括上述所述的安全处理器和IOMMU,该电子设备的可选结构可如图5所示,此处不再进一步展开介绍。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (29)

1.一种信息配置方法,其特征在于,应用于安全处理器,所述方法包括:
获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;
基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
将所述配置信息发送给与所述DMA设备对应的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
2.根据权利要求1所述的信息配置方法,其特征在于,所述安全处理器通过所述安全处理器与所述IOMMU的接口发送所述配置信息。
3.根据权利要求1所述的信息配置方法,其特征在于,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一DMA设备的基本设备信息,并以DMA设备的设备标识进行索引。
4.根据权利要求3所述的信息配置方法,其特征在于,所述DTE中设置有64位的密钥页表根目录key table root pointer字段,所述密钥地址信息配置在所述key table rootpointer字段。
5.根据权利要求1所述的信息配置方法,其特征在于,所述数据项中配置的所述密钥地址信息仅支持安全处理器和IOMMU访问。
6.根据权利要求1所述的信息配置方法,其特征在于,所述配置请求还包括:所述加密虚拟机计算的所述配置请求的第一完整性校验数据;
在生成配置信息之前,所述方法还包括:
计算所述配置请求的第二完整性校验数据;
基于所述第一完整性校验数据和所述第二完整性校验数据,校验所述配置请求是否完整,若校验所述配置请求完整,进入执行所述基于所述配置请求生成配置信息的步骤。
7.根据权利要求6所述的信息配置方法,其特征在于,还包括:
若校验所述配置请求不完整,向所述加密虚拟机反馈第一配置结果信息,其中,所述第一配置结果信息至少包括配置失败的应答信息,以使所述加密虚拟机确定所述信息配置失败。
8.根据权利要求6所述的信息配置方法,其特征在于,还包括:
若所述数据项中成功配置所述密钥地址信息,向所述加密虚拟机反馈第二配置结果信息,其中,所述第二配置结果信息至少包括配置成功的应答信息,以使所述加密虚拟机确定所述信息配置成功。
9.根据权利要求8所述的信息配置方法,其特征在于,所述数据项中成功配置所述密钥地址信息的情况包括:获取所述IOMMU发送的配置成功通知,或,在校验所述配置请求完整且将所述配置信息发送给所述IOMMU后,默认所述数据项中成功配置所述虚拟机标识。
10.根据权利要求1-9任一项所述的信息配置方法,其特征在于,所述安全处理器与所述加密虚拟机通过所述加密内存页面进行交互;
其中,所述加密虚拟机运行于虚拟机模式,以虚拟机物理地址GPA访问所述内存加密内存页面,所述安全处理器运行于主机模式,以所述HPA访问所述内存加密内存页面,所述GPA与所述HPA通过嵌套页表NPT进行转换;并且,加密虚拟机通过退出虚拟机模式以进入主机模式,在主机模式下,安全处理器通过控制主机内核执行虚拟机运行指令,以返回虚拟机模式。
11.一种信息配置方法,其特征在于,应用于输入输出内存管理单元IOMMU,所述方法包括:
获取安全处理器发送的配置信息,所述配置信息至少包括:待加密虚拟机访问的加密数据的虚拟物理地址GPA、与所述GPA的密钥页表项对应的密钥地址信息和存储所述加密数据的直接存储访问DMA设备的设备标识;其中,所述加密数据的密钥信息存储在所述密钥页表项指向的内存空间;
确定与所述设备标识对应的数据项;
在所述数据项中配置所述密钥地址信息。
12.根据权利要求11所述的信息配置方法,其特征在于,所述安全处理器通过所述安全处理器与所述IOMMU的接口发送所述配置信息。
13.根据权利要求11所述的信息配置方法,其特征在于,所述数据项具体为设备表中的设备表项DTE,其中,一项DTE用于记录IOMMU连接的一DMA设备的基本设备信息,并以DMA设备的设备标识进行索引。
14.根据权利要求13所述的信息配置方法,其特征在于,所述DTE中设置有64位的密钥页表根目录key table root pointer字段,所述密钥地址信息配置在所述key table rootpointer字段。
15.根据权利要求11所述的信息配置方法,其特征在于,所述数据项中配置的所述密钥地址信息仅支持安全处理器和IOMMU访问。
16.根据权利要求11所述的信息配置方法,其特征在于,还包括:
若所述数据项中成功配置所述密钥地址信息,向所述安全处理器发送配置成功通知。
17.一种直接存储访问方法,其特征在于,基于权利要求11-16任一项所述的信息配置方法,所述直接存储访问方法应用于输入输出内存管理单元IOMMU,包括:
获取针对直接存储访问DMA设备的DMA请求,所述DMA请求至少包括待访问的DMA设备的设备标识和待加密虚拟机访问的加密数据的虚拟物理地址GPA;
确定配置在所述DMA设备的数据项中的密钥地址信息;
根据所述密钥地址信息和所述GPA查询对应所述DMA设备的密钥信息;
为内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
18.根据权利要求17所述的直接存储访问方法,其特征在于,所述获取针对直接存储访问DMA设备的DMA请求之后,还包括:
确定所述GPA对应的主机物理地址HPA;
所述为内存控制器配置所述密钥信息,具体用于使内存控制器基于所述密钥信息,对所述DMA设备与所述HPA对应的加密内存页面之间传输的数据进行加解密。
19.根据权利要求18所述的直接存储访问方法,其特征在于,所述HPA中包括加密虚拟机的虚拟机标识和加密标识,所述HPA中的加密标识的数值设置为表示加密的第一值或表示未加密的第二值。
20.根据权利要求19所述的直接存储访问方法,其特征在于,所述为内存控制器配置所述密钥信息的步骤中,使所述密钥信息与所述HPA中的虚拟机标识绑定。
21.根据权利要求17所述的直接存储访问方法,其特征在于,所述查询与所述GPA对应的密钥信息存储地址由所述IOMMU的密钥页表查询装置执行。
22.根据权利要求17所述的直接存储访问方法,其特征在于,所述为所述内存控制器配置所述密钥信息,具体为,为所述内存控制器的密码协处理器配置所述密钥信息。
23.根据权利要求22所述的直接存储访问方法,其特征在于,所述IOMMU通过所述IOMMU与所述密码协处理器的接口为所述密码协处理器配置所述密钥信息。
24.一种信息配置装置,其特征在于,包括:
配置请求获取模块,用于获取加密虚拟机的配置请求,所述配置请求至少包括待所述加密虚拟机访问的加密数据的虚拟物理地址GPA、用于传输所述加密数据的直接存储访问DMA设备的设备标识和所述加密数据的密钥信息;
页表项创建模块,用于基于所述配置请求,创建对应所述GPA的密钥页表项,并将所述加密数据的密钥信息存储至所述密钥页表项指向的内存空间;
配置信息生成模块,用于生成配置信息,所述配置信息至少包括所述GPA、所述密钥页表项对应的密钥地址信息和所述设备标识;
配置信息发送模块,用于将所述配置信息发送给与所述DMA设备对应的输入输出内存管理单元IOMMU,以使所述IOMMU在与所述设备标识对应的数据项中配置所述密钥地址信息。
25.一种信息配置装置,其特征在于,包括:
配置信息获取模块,用于获取安全处理器发送的配置信息,所述配置信息至少包括:待加密虚拟机访问的加密数据的虚拟物理地址GPA、与所述GPA的密钥页表项对应的密钥地址信息和存储所述加密数据的直接存储访问DMA设备的设备标识;其中,所述加密数据的密钥信息存储在所述密钥页表项指向的内存空间;
数据项确定模块,用于确定与所述设备标识对应的数据项;
地址信息配置模块,用于在所述数据项中配置所述密钥地址信息。
26.一种直接存储访问装置,其特征在于,包括:
访问请求获取模块,用于获取针对直接存储访问DMA设备的DMA请求,所述DMA请求至少包括待访问的DMA设备的设备标识和虚拟物理地址GPA;
地址信息确定模块,用于确定配置在所述DMA设备的数据项中的密钥地址信息;
密钥页表查询模块,用于根据所述密钥地址信息和所述GPA查询对应所述DMA设备的密钥信息;
密钥信息配置模块,用于为内存控制器配置所述密钥信息,以使内存控制器基于所述密钥信息,针对加密虚拟机对DMA设备读写的数据进行加解密。
27.一种安全处理器,其特征在于,所述安全处理器被配置为执行如权利要求1-10任一项所述的信息配置方法。
28.一种输入输出内存管理单元IOMMU,其特征在于,所述IOMMU被配置为执行如权利要求11-16任一项所述的信息配置方法,和/或,执行如权利要求17-23任一项所述的直接存储访问方法。
29.一种电子设备,其特征在于,包括如权利要求27所述的安全处理器,以及如权利要求28所述的输入输出内存管理单元IOMMU。
CN202011362419.3A 2020-11-27 2020-11-27 信息配置方法、直接存储访问方法及相关装置 Active CN112433817B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011362419.3A CN112433817B (zh) 2020-11-27 2020-11-27 信息配置方法、直接存储访问方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011362419.3A CN112433817B (zh) 2020-11-27 2020-11-27 信息配置方法、直接存储访问方法及相关装置

Publications (2)

Publication Number Publication Date
CN112433817A true CN112433817A (zh) 2021-03-02
CN112433817B CN112433817B (zh) 2022-11-25

Family

ID=74698666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011362419.3A Active CN112433817B (zh) 2020-11-27 2020-11-27 信息配置方法、直接存储访问方法及相关装置

Country Status (1)

Country Link
CN (1) CN112433817B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342473A (zh) * 2021-06-28 2021-09-03 海光信息技术股份有限公司 数据处理方法、安全虚拟机的迁移方法及相关装置、架构
CN114091027A (zh) * 2021-12-01 2022-02-25 海光信息技术股份有限公司 信息配置方法、数据访问方法及相关装置、设备
CN114238185A (zh) * 2021-12-20 2022-03-25 海光信息技术股份有限公司 直接存储访问及命令数据传输方法、装置及相关设备
CN114861207A (zh) * 2022-05-12 2022-08-05 北京百度网讯科技有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN115102752A (zh) * 2022-06-17 2022-09-23 一汽奔腾轿车有限公司 一种基于商用密码算法的汽车数据安全存储方法
CN116011041A (zh) * 2022-12-07 2023-04-25 成都海光集成电路设计有限公司 密钥管理方法、数据保护方法、系统、芯片及计算机设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170093853A1 (en) * 2015-09-25 2017-03-30 International Business Machines Corporation Protecting access to hardware devices through use of a secure processor
CN109844751A (zh) * 2016-10-19 2019-06-04 超威半导体公司 处理系统中的直接存储器访问授权
CN109858265A (zh) * 2018-11-22 2019-06-07 海光信息技术有限公司 一种加密方法、装置及相关设备
CN111090869A (zh) * 2019-12-16 2020-05-01 海光信息技术有限公司 一种数据加密方法、处理器及计算机设备
CN111124616A (zh) * 2019-12-23 2020-05-08 海光信息技术有限公司 一种虚拟机迁移方法、处理器及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170093853A1 (en) * 2015-09-25 2017-03-30 International Business Machines Corporation Protecting access to hardware devices through use of a secure processor
CN109844751A (zh) * 2016-10-19 2019-06-04 超威半导体公司 处理系统中的直接存储器访问授权
CN109858265A (zh) * 2018-11-22 2019-06-07 海光信息技术有限公司 一种加密方法、装置及相关设备
CN111090869A (zh) * 2019-12-16 2020-05-01 海光信息技术有限公司 一种数据加密方法、处理器及计算机设备
CN111124616A (zh) * 2019-12-23 2020-05-08 海光信息技术有限公司 一种虚拟机迁移方法、处理器及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴宇明: "基于AMD硬件内存加密技术的虚拟机安全增强", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342473A (zh) * 2021-06-28 2021-09-03 海光信息技术股份有限公司 数据处理方法、安全虚拟机的迁移方法及相关装置、架构
CN113342473B (zh) * 2021-06-28 2024-01-19 海光信息技术股份有限公司 数据处理方法、安全虚拟机的迁移方法及相关装置、架构
CN114091027A (zh) * 2021-12-01 2022-02-25 海光信息技术股份有限公司 信息配置方法、数据访问方法及相关装置、设备
CN114091027B (zh) * 2021-12-01 2023-08-29 海光信息技术股份有限公司 信息配置方法、数据访问方法及相关装置、设备
CN114238185A (zh) * 2021-12-20 2022-03-25 海光信息技术股份有限公司 直接存储访问及命令数据传输方法、装置及相关设备
CN114861207A (zh) * 2022-05-12 2022-08-05 北京百度网讯科技有限公司 数据处理方法、装置、电子设备和计算机可读存储介质
CN115102752A (zh) * 2022-06-17 2022-09-23 一汽奔腾轿车有限公司 一种基于商用密码算法的汽车数据安全存储方法
CN115102752B (zh) * 2022-06-17 2024-05-10 一汽奔腾轿车有限公司 一种基于商用密码算法的汽车数据安全存储方法
CN116011041A (zh) * 2022-12-07 2023-04-25 成都海光集成电路设计有限公司 密钥管理方法、数据保护方法、系统、芯片及计算机设备

Also Published As

Publication number Publication date
CN112433817B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
CN112433817B (zh) 信息配置方法、直接存储访问方法及相关装置
US9529735B2 (en) Secure data encryption in shared storage using namespaces
CN109858265B (zh) 一种加密方法、装置及相关设备
CN110928646B (zh) 一种访问共享内存的方法、装置、处理器和计算机系统
US7107459B2 (en) Secure CPU and memory management unit with cryptographic extensions
JP6414863B2 (ja) 仮想化システムにおける暗号復号方法および装置、およびシステム
US6839437B1 (en) Method and apparatus for managing keys for cryptographic operations
KR100737628B1 (ko) 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션
CN109800050B (zh) 一种虚拟机的内存管理方法、装置、相关设备及系统
US8660964B2 (en) Secure device licensing
US8042155B1 (en) System and method for generating a single use password based on a challenge/response protocol
CN111241564B (zh) 内存页面交换方法和安全处理器
CN102404314A (zh) 远程资源单点登录
JP2011048661A (ja) 仮想サーバ暗号化システム
CN113342473B (zh) 数据处理方法、安全虚拟机的迁移方法及相关装置、架构
CN115758420A (zh) 文件访问控制方法、装置、设备及介质
CN111967065A (zh) 一种数据保护方法、处理器及电子设备
JP2021090151A (ja) ストレージシステムおよびストレージシステムのデータ保護方法
CN112416525B (zh) 设备驱动初始化方法、直接存储访问方法及相关装置
CN116126463A (zh) 内存访问方法、配置方法、计算机系统及相关器件
US11960737B2 (en) Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof
US20230093105A1 (en) Method of dynamically loading encryption engine
CN116841691A (zh) 加密硬件的配置方法、数据机密计算方法及相关设备
CN116450281A (zh) 访问处理方法、虚拟机标识配置方法、芯片及计算机设备
CN112416526B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40047524

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant