CN116048716A - 一种直接存储访问方法、装置及相关设备 - Google Patents
一种直接存储访问方法、装置及相关设备 Download PDFInfo
- Publication number
- CN116048716A CN116048716A CN202211608051.3A CN202211608051A CN116048716A CN 116048716 A CN116048716 A CN 116048716A CN 202211608051 A CN202211608051 A CN 202211608051A CN 116048716 A CN116048716 A CN 116048716A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- encrypted
- data
- direct
- 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
Images
Classifications
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供一种直接存储访问方法、装置及相关设备,所述方法应用于外部直通设备,在接收加密虚拟机至少指示在内存中读取需访问的内存加密数据的直接存储访问命令时,响应于直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收直接存储访问请求,并基于加密虚拟机的虚拟机密钥对需访问的内存加密数据进行数据的解密,将对应需访问的内存加密数据的明文由输入输出内存管理单元传输至外部直通设备;接收输入输出内存管理单元传输的需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对需访问的内存加密数据的明文进行加密,并存储对应的密文数据。本申请实施例能够实现提高数据的安全性。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及一种直接存储访问方法、装置及相关设备。
背景技术
随着云技术的发展,服务程序大多在云端的虚拟机内运行,而虚拟机本身作为用户数据的载体,其数据安全也越来越被重视。其中,为保护物理内存中的虚拟机数据,可进一步利用安全虚拟化技术对虚拟机数据进行加密,将加密后的虚拟机数据密文保存在物理内存,由于物理内存中的虚拟机数据处于加密状态,即便虚拟机监视器(VMM)在物理内存中读取虚拟机数据时,也仅能获取虚拟机数据密文。
但是,当外部直通设备和加密虚拟机之间以直通方式传递数据的情况下,物理内存中的虚拟机数据必须以明文形式传输至外部直通设备进行保存,而存储在外部直通设备的数据明文存在被泄密的可能。
因此,如何提高存储在外部直通设备的虚拟机数据的安全性,就成为本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种直接存储访问方法、装置及相关设备,以在外部直通设备中以密文形式存储虚拟机数据,实现提高数据的安全性。
为实现上述目的,本申请实施例提供如下技术方案。
第一方面,本申请实施例提供一种直接存储访问方法,应用于外部直通设备,所述方法包括:
接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据;
响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备;
接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
第二方面,本申请实施例提供一种直接存储访问方法,应用于内存控制器,所述方法包括:
获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中读取需访问的内存加密数据的直接存储访问命令;
根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密;
向所述输入输出内存管理单元传输对应所述需访问的内存加密数据的明文,以使所述外部直通设备接收由所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,以基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
第三方面,本申请实施例提供一种直接存储访问方法,应用于外部直通设备,所述方法包括:
接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中写入需访问的加密数据;
响应于所述直接存储访问命令,读取需访问的加密数据,并基于预先配置的虚拟机密钥对所述需访问的加密数据进行数据的解密;
向输入输出内存管理单元传输对应所述需访问的加密数据的明文,以使所述内存控制器接收由所述输入输出内存管理单元传输的所述需访问的加密数据的明文,以基于所述加密虚拟机的虚拟机密钥对所述需访问的加密数据的明文进行加密,并将对应的密文数据写入内存。
第四方面,本申请实施例提供一种直接存储访问方法,应用于内存控制器,所述方法包括:
获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中写入需访问的加密数据的明文的直接存储访问命令;
根据所述直接存储访问请求,基于加密虚拟机的虚拟机密钥对所述需访问的加密数据的明文进行数据的加密,并将对应的密文数据写入内存。
第五方面,本申请实施例提供一种直接存储访问装置,应用于外部直通设备,所述装置包括:
命令接收模块,用于接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据;
响应模块,用于响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备;
加解密硬件,用于接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
第六方面,本申请实施例提供一种直接存储访问装置,应用于内存控制器,所述装置包括:
请求获取模块,用于获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中读取需访问的内存加密数据的直接存储访问命令;
内存加解密硬件,用于根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密;
传输模块,用于向所述输入输出内存管理单元传输对应所述需访问的内存加密数据的明文,以使所述外部直通设备接收由所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,以基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
第七方面,本申请实施例还提供一种计算机设备,包括如上述第五方面和/或如上述第六方面所述的直接存储访问装置。
第八方面,本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如上述第一方面或如上述第二方面所述的直接存储访问方法,或者,如上述第三方面或如上述第四方面所述的直接存储访问方法。
本申请实施例所提供的直接存储访问方法,应用于外部直通设备,在接收加密虚拟机的直接存储访问命令时,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据,通过响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备,进而接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
可以看出,本申请实施例提供的直接存储访问方法,通过在接收输入输出内存管理单元传输的加密虚拟机需访问的内存加密数据的明文后,能够基于预先配置的虚拟机密钥对明文数据进行加密,使得外部直通设备中存储的虚拟机数据为密文形式,提高了数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为云服务场景的虚拟化技术架构。
图2为加密虚拟机与外部直通设备的一可选直通流程示意图。
图3为本申请实施例提供的加密虚拟机与外部直通设备的一可选直通架构图。
图4为本申请实施例提供的直接存储访问方法的可选流程图。
图5为本申请实施例提供的在初始状态时安全处理器配置加解密硬件密钥的可选流程图。
图6为本申请实施例提供的在运行状态时安全处理器配置加解密硬件密钥的可选流程图。
图7为本申请实施例提供的直接存储访问的又一可选流程图。
图8为本申请实施例提供的直接存储访问装置的可选框图。
图9为本申请实施例提供的直接存储访问装置的又一可选框图。
图10为本申请实施例提供的计算机设备的可选框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着云服务的发展,虚拟化技术在云服务这一场景中得到了越来越广泛的应用。虚拟化技术可以使用户将业务系统以虚拟机的形式部署在云主机上,从而降低自身的运营成本。
为避免云主机的主机操作系统获取虚拟机中的内存数据,保证用户云计算的安全,参照图1所示云服务场景的虚拟化技术架构,虚拟机的内存数据可以在加密后再进行存储。其中,虚拟机VM(Virtual Machine)运行在主机操作系统host OS和虚拟机监视器VMM(Virtual Machine Monitor)上,相应的内存数据则可以通过加密引擎(例如SM4国标分组加密引擎)进行加解密,并在加密后存储在云主机的内存DRAM上。
其中,为进一步保证各虚拟机之间的数据的独立性,虚拟机的加解密密钥可以与虚拟机ID进行绑定,其中,虚拟机ID用于指示虚拟机的虚拟机标识,不同虚拟机对应有不同的虚拟机ID。以图1为例,对应ID=1的虚拟机对应有密钥1,对应ID=2的虚拟机对应有密钥2,以此类推,对应ID=n的虚拟机n对应有密钥n。
具体在虚拟机的运行过程中,硬件基于虚拟机ID标记对应该虚拟机的代码和数据,而在内存数据的加解密过程中,加密引擎则基于虚拟机ID确定虚拟机的密钥,并进一步基于该密钥对内存数据进行加解密。
在云主机中,并非所有的虚拟机都进行内存数据的加解密,也并非所有的内存数据都执行加解密流程,为便于说明,本申请实施例将分配有密钥的虚拟机称为加密虚拟机;同时,将存储加密内存数据的内存称为加密内存。需要说明的是,采用国标加密的安全虚拟化技术生成的虚拟机为CSV VM,其中,CSV为China Secure Virtualization,国标安全虚拟化技术。
为提高系统的运行效率,降低CPU(Central Processing Unit,中央处理器)的负载,云主机上可以进一步部署DMA设备(Direct Memory Access,外部直通设备),实现不通过CPU与物理内存直接进行数据交换。其中,外部直通设备,可以理解为能够实现DMA功能的设备,相应的,在本申请实施例中,能够实现DMA功能的外部直通设备例如磁盘控制器,通过磁盘控制器使得虚拟机数据存储到磁盘设备上,以实现虚拟机数据的永续存储。以外部直通设备为磁盘控制器为例,参考图2示出的加密虚拟机与外部直通设备的一可选直通流程示意图。
其中,SOC可以理解为设置有CPU的芯片,该芯片上除了设置有CPU以外,还可以设置有辅助CPU运行的硬件结构,如内存控制器、磁盘控制器、虚拟机监视器。
当加密虚拟机读取内存数据时,内存控制器能够同时收到虚拟机ID和源内存物理地址,从而以虚拟机ID为索引向加解密引擎查询虚拟机密钥,并从源内存物理地址读取加密数据,解密后传递给CPU。
当磁盘控制器与加密虚拟机存储在内存中的虚拟机数据做DMA数据交互时,由于内存控制器收到的磁盘控制器的DMA请求中仅包含内存物理地址,不存在虚拟机ID,内存控制器只能将内存中的密文传递给磁盘控制器,从而磁盘控制器仅能获取到加密虚拟机的密文并保存,在加密虚拟机再次启动时,内存控制器对应的虚拟机的加密密钥再次随机生成,导致磁盘控制器存储在磁盘中的虚拟机数据密文无法解密,从而变成垃圾数据。为此,对应加密虚拟机的虚拟机数据,在内存中设置共享内存,其中,共享内存中的数据以明文方式保存,并且,加密虚拟机的加密内存数据向磁盘存储的过程通过VMM协助完成从而VMM和加密虚拟机都能读取共享内存中的虚拟机数据明文。
如图2所示,在加密虚拟机需要向磁盘中写入数据时,加密虚拟机可以执行步骤S1,将内存中存储的加密虚拟机数据进行解密,并将得到的虚拟机数据明文复制到共享内存中进行保存;进而执行步骤S2,加密虚拟机请求VMM将虚拟机数据明文存入磁盘,退出虚拟机;步骤S3,VMM控制磁盘控制器发起DMA请求;步骤S4,磁盘控制器向内存控制器发送DMA请求,以使内存控制器将共享内存中的虚拟机数据明文传输至磁盘,并保存。
但是,在图2所示加密虚拟机与磁盘控制器的直通流程中,外部直通设备和加密虚拟机之间须通过VMM实现直通访问共享内存的虚拟机数据明文,当在二者之间进行数据读写时,外部直通设备和加密虚拟机之间读写的数据明文存在被VMM窃取和篡改的风险,导致外部直通设备和加密虚拟机之间无法读写机密数据,但在机密计算场景下,存在外部直通设备和加密虚拟机之间读写机密数据的需要,因此,需要保证外部直通设备和加密虚拟机之间读写的数据安全性。
在一可选示例中,可以利用IOMMU(Input/Output Memory Management Unit,输入输出内存管理单元)实现管理对系统内存的设备访问,当接收到数据请求后,根据发送数据请求的外部直通设备,获取虚拟机标识以及输入输出页表基地址信息,根据输入输出页表基地址信息找到输入输出页表(IO页表),从而得到输入输出页表(IO页表)中虚拟机物理地址(GPA)与主机物理地址(HPA)之间的对应关系,以及主机物理地址(HPA)中包含的加密信息,IOMMU可以根据HPA的指示,利用上述加密信息、所述虚拟机标识及所述主机物理地址,构造地址数据的读写请求,并向内存控制器传输所述地址数据读写请求,使得外部直通设备与加密内存空间实现直接、高效的数据传输。
当磁盘控制器需要向内存控制器发送在内存中写入数据的DMA请求时,磁盘控制器可以将请求发送至IOMMU,经IOMMU翻译后,转换为包含内存物理地址和虚拟机ID的请求信息,并传输至内存控制器,从而内存控制器能够通过虚拟机ID获取到加密密钥,对磁盘控制器发送的虚拟机数据明文加密为虚拟机数据密文,并将密文写入内存。
当磁盘控制器需要向内存控制器发送读取内存数据的DMA请求时,磁盘控制器可以将请求发送至IOMMU,经IOMMU翻译后,转换为包含内存物理地址和虚拟机ID的请求信息,并传输至内存控制器,从而内存控制器能够通过虚拟机ID获取到加密密钥,利用加密密钥对内存中的虚拟机数据密文进行解密,将虚拟机数据明文传输至磁盘控制器,在磁盘中进行存储。
可以看出,基于输入输出内存管理单元(IOMMU)使得外部直通设备和加密虚拟机之间读写的数据能够直接传输,保证了外部直通设备和加密虚拟机之间读写的数据安全性。但是,由于磁盘中存储的虚拟机数据为明文形式,导致存储在SOC外部的虚拟机数据明文存在泄露的可能,数据的安全性降低。
在一种可选示例中,为保护磁盘中存储的虚拟机数据,也可以在操作系统中利用软件加密的方式,对要保存的虚拟机数据进行加密。具体的,当加密虚拟机的内存加密数据在SOC中通过加解密硬件解密后,由内存控制器将明文数据传输至操作系统,进而由操作系统对明文数据执行加密流程,并将加密后的密文传输至IOMMU,通过IOMMU将密文数据传输至磁盘控制器,在磁盘上进行保存。
可以看出,将磁盘控制器直通给加密虚拟机时,通过操作系统中的加密软件能够在完成虚拟机数据写入磁盘之前进行数据的加密,使得磁盘中存储数据密文,保护磁盘中虚拟机数据的安全性。但是,当攻击者在获取到操作系统的权限后,存在恶意攻击操作系统中对应虚拟机数据明文的加密流程的可能,例如非法关闭加密配置或通过攻击手段使其绕过加密过程等。可见,利用软件对要存储至磁盘的虚拟机数据进行加密,增大了攻击者对虚拟机数据明文进行攻击的可能性,也降低了数据的安全性。
基于上述情况,本申请实施例考虑在磁盘控制器与磁盘之间增加加解密硬件,当磁盘控制器将明文数据写入磁盘时,通过加解密硬件进行加密并将密文写入磁盘;当磁盘控制器将密文数据读出磁盘时,通过加解密硬件进行解密,并在SOC内部传输虚拟机数据明文,使得对操作系统的攻击无法影响磁盘控制器加密过程,并且虚拟机数据能够在SOC外部的存储设备中以密文形式存储,避免数据泄露,有效提高数据的安全性。
在此思路下,本申请实施例提供改进的直接存储访问方法,以通过在接收输入输出内存管理单元传输的加密虚拟机需访问的内存加密数据的明文后,能够基于预先配置的虚拟机密钥对明文数据进行加密,使得外部直通设备中存储的虚拟机数据为密文形式,提高了数据的安全性。
下面将对本申请实施例提供的直接存储访问方法进行详细介绍。
在可选实现中,以外部直通设备为磁盘控制器为例,图3示出了本申请实施例提供的加密虚拟机与外部直通设备的一可选直通架构图,如图3所示,具体可以包括:加密虚拟机、SOC、内存和磁盘。
其中,SOC、内存和磁盘的基本介绍可参照前文相应部分的描述,下文将进一步说明这些部件在本申请实施例中的作用和关系;值得注意的是,在本申请实施例中,加密虚拟机中的设备驱动支持虚拟机ID查询功能,输入输出内存管理单元(IOMMU)支持带有虚拟机ID的IO页表功能。
在本申请实施例中,图3所示技术架构中还设置了安全处理器,用于为内存控制器对应的加解密硬件以及磁盘控制器对应的加解密硬件配置相应的密钥,并以加密虚拟机的虚拟机标识(ID)进行标记,以使得加解密硬件基于配置的密钥进行数据的加解密。
需要说明的是,安全处理器为内存控制器对应的加解密硬件以及磁盘控制器对应的加解密硬件配置的密钥,可以是与安全处理器为加密虚拟机配置的虚拟机密钥一致的密钥,以便于与加密虚拟机的虚拟机ID相对应,因此,可以将安全处理器配置给内存控制器对应的加解密硬件,以用于为虚拟机内存进行加密的密钥,以及安全处理器配置给磁盘控制器对应的加解密硬件,以用于为磁盘存储的虚拟机数据进行加密的密钥,统称为虚拟机密钥。
基于图3所示可选架构,在一种可选实现中,图4示出了本申请实施例提供的直接存储访问方法的可选流程图,该方法流程可由图3所示的作为外部直通设备的磁盘控制器和内存控制器执行实现。
如图4所示,本申请实施例的直接存储访问方法流程可以包括如下步骤。
步骤S40,磁盘控制器接收加密虚拟机的直接存储访问命令。
其中,加密虚拟机具有将内存中的虚拟机数据读取至磁盘进行永续存储的需求,以便加密虚拟机能够基于磁盘存储的虚拟机数据进行直接展示,从而所述直接存储访问命令可以至少指示在内存中读取需访问的内存加密数据。
步骤S43,磁盘控制器响应于所述直接存储访问命令,向输入输出内存管理单元(IOMMU)传输直接存储访问请求。
磁盘控制器基于加密虚拟机的直接存储访问命令的控制,能够向内存发起直接存储访问请求,具体的,可以通过输入输出内存管理单元(IOMMU)将直接存储访问请求传输至内存控制器,以保证数据的安全性。
步骤S44,内存控制器获取输入输出内存管理单元(IOMMU)传输的直接存储访问请求。
步骤S45,内存控制器根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密。
可以理解的是,输入输出内存管理单元(IOMMU)传输的直接存储访问请求中可以包含内存物理地址和虚拟机ID,从而内存控制器能够根据内存物理地址在内存中读取对应的加密数据,并且,内存控制器对应的加解密硬件能够根据虚拟机ID确定安全处理器配置的内存加密密钥,作为一种可选实现,所述内存加密密钥可以是与安全处理器为加密虚拟机配置的虚拟机密钥相同,从而,能够根据虚拟机ID确定对应的内存加密密钥,即虚拟机密钥。进而内存控制器对应的加解密硬件能够基于所述加密虚拟机的虚拟机密钥对所述访问的内存加密数据进行数据的解密,得到内存加密数据的明文。
步骤S46,内存控制器向所述输入输出内存管理单元(IOMMU)传输对应所述需访问的内存加密数据的明文。
步骤S47,磁盘控制器接收所述输入输出内存管理单元(IOMMU)传输的所述需访问的内存加密数据的明文。
步骤S48,磁盘控制器基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
可以理解的是,输入输出内存管理单元(IOMMU)在传输加密虚拟机需访问的内存加密数据的明文时,可以对应传输有虚拟机ID,从而磁盘控制器对应的加解密硬件能够根据虚拟机ID确定安全处理器为磁盘控制器预先配置的磁盘加密密钥,作为一种可选实现,所述磁盘加密密钥可以是与安全处理器为加密虚拟机配置的虚拟机密钥相同,从而,能够根据虚拟机ID确定对应的磁盘加密密钥,即虚拟机密钥。进而磁盘控制器对应的加解密硬件能够基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,得到密文数据,并将对应的密文数据在磁盘中进行存储。
可以看出,本申请实施例提供的直接存储访问方法,通过在接收输入输出内存管理单元传输的加密虚拟机需访问的内存加密数据的明文后,能够基于预先配置的虚拟机密钥对明文数据进行加密,使得外部直通设备中存储的虚拟机数据为密文形式,提高了数据的安全性。
继续参照图4所示,在一些实施例中,安全虚拟化技术中,加密虚拟机的虚拟机密钥由安全处理器配置得到,由于本申请实施例的安全处理器具有为内存控制器对应的加解密硬件以及磁盘控制器对应的加解密硬件配置相应密钥的作用,则在步骤S40之后,还包括:
步骤S41,磁盘控制器基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥。
在步骤S43之前,还包括:
步骤S42,内存控制器基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥。
其中,安全处理的配置信息可以包括虚拟机密钥。
作为一种可选实现,步骤S41和/或步骤S43可以是在加密虚拟机的初始状态时执行的,所述初始状态对应于加密虚拟机的初次启动,则基于安全处理器的配置信息,配置的对应所述加密虚拟机的虚拟机密钥可以是通过获取安全处理器根据加密虚拟机的标识,随机生成的虚拟机密钥。
作为另一种可选实现,步骤S41和/或步骤S43可以是在加密虚拟机的运行状态时执行的,所述运行状态对应于加密虚拟机的再次启动,则基于安全处理器的配置信息,配置的对应所述加密虚拟机的虚拟机密钥可以是通过获取安全处理器根据加密虚拟机的标识,确定的对应所述加密虚拟机的虚拟机历史密钥,其中,所述加密虚拟机的虚拟机历史密钥是与所述加密虚拟机在初始状态时,安全处理器为所述加密虚拟机配置的虚拟机密钥。
在一些实施例中,虚拟机密钥可以通过安全处理器预先存储至密钥信息表,其中,所述密钥信息表指的是存储加密之后的对应于加解密硬件的加密密钥文件,其可以是通过虚拟机监视器(VMM)创建得到。具体的,由于存储在磁盘上的加密虚拟机的虚拟机数据为密文,为方便使用磁盘中保存的虚拟机数据密文,加解密硬件对虚拟机数据进行加密的密钥须同时保存,而且为保证密钥的安全性,密钥本身须加密后存储。
需要说明的是,本申请实施例中的VMM对应安全处理器配置有输出密钥命令和输入密钥命令,所述输出密钥命令用于指示安全处理器向VMM传输密钥,所述输入密钥命令用于指示安全处理器对保存在VMM上的密钥进行验签以及解密,并配置至加解密硬件。对应于VMM的输出密钥命令和输入密钥命令,安全处理器在虚拟机的初次启动时,能够利用密钥派生算法,从硬件根密钥派生出两类密钥,分别为传输密钥和签名验签密钥对,并在安全处理器的内部存储设备中对传输密钥和签名验签密钥对进行存储。其中,为保证存储在磁盘中数据的安全性,加解密硬件中的密钥须由安全处理器配置,操作系统和VMM不具有配置加解密硬件中的密钥权限。
在一个可选示例中,图5示出了本申请实施例提供的在初始状态时,安全处理器配置加解密硬件密钥的可选流程图,该方法流程可由VMM和安全处理器执行实现。初始状态对应于加密虚拟机初次启动的状态,则在加密虚拟机的初次启动时,安全处理器能够为加密虚拟机随机生成虚拟机密钥,该虚拟机密钥可以用于对应内存控制器的加解密硬件对虚拟机数据进行加解密,以及对应磁盘控制器的加解密硬件对虚拟机数据进行加解密。如图5所示,
可以包括如下步骤:
步骤S50,VMM向安全处理器发送输出密钥命令。
步骤S51,安全处理器利用传输密钥加密虚拟机密钥。
安全处理器在获取VMM发送的输出密钥命令后,能够利用传输密钥对虚拟机密钥进行加密,其中,所述虚拟机密钥可以是对应于磁盘控制器对明文数据进行加密的磁盘密钥。
步骤S52,安全处理器利用签名密钥对虚拟机密钥密文进行签名。
步骤S53,安全处理器向VMM发送加密后的虚拟机密钥以及虚拟机密钥签名。
步骤S54,VMM保存加密后的虚拟机密钥以及虚拟机密钥签名至密钥信息表。
其中,VMM在密钥信息表中存储的加密后的虚拟机密钥,可以是对应于加密虚拟机的虚拟机历史密钥的密文。
在另一个可选示例中,图6示出了本申请实施例提供的在运行状态时,安全处理器配置加解密硬件密钥的可选流程图,该方法流程可由VMM和安全处理器执行实现。运行状态对应于加密虚拟机的再次启动的状态,则在加密虚拟机再次启动时,安全处理器可以基于VMM的密钥信息表中存储的加密后的虚拟机密钥以及虚拟机密钥签名,为内存控制器以及磁盘控制器配置虚拟机密钥,该虚拟机密钥用于对应内存控制器的加解密硬件对虚拟机数据进行加解密,以及对应磁盘控制器的加解密硬件对虚拟机数据进行加解密。如图6所示,可以包括如下步骤:
步骤S60,VMM向安全处理器发送输入密钥命令。
其中,VMM能够将保存的已加密的虚拟机密钥和虚拟机密钥签名作为参数输入至安全处理器。
步骤S61,安全处理器利用验签密钥对虚拟机密钥密文签名进行验证。
安全处理器在获取VMM发送的输入密钥命令后,能够利用验签密钥对虚拟机密钥密文签名进行验证,若虚拟机密钥密文的签名与安全处理器的验签密钥相匹配,则虚拟机密钥密文为可信的虚拟机密钥密文,并继续执行步骤S62。
步骤S62,安全处理器利用传输密钥对虚拟机密钥密文进行解密。
步骤S63,安全处理器将虚拟机密钥配置至内存控制器和磁盘控制器。
当安全处理器利用传输密钥解密虚拟机密钥密文后,能够得到虚拟机密钥,从而能够将虚拟机密钥配置至内存控制对应的加解密硬件,以及磁盘控制器对应的加解密硬件,以便于根据直接存储访问请求,利用加解密硬件对虚拟机数据进行加解密操作,例如内存控制器利用加解密硬件对读取的内存加密数据进行解密,磁盘控制器利用加解密硬件对接收的虚拟机数据明文进行加密。
在一些实施例中,加密虚拟机发送的直接存储访问命令可以包括加密虚拟机的虚拟机标识,磁盘控制器可以是根据加密虚拟机的虚拟机标识,基于安全处理器的配置信息,配置与加密虚拟机的虚拟机标识对应的加密虚拟机的虚拟机密钥。
可以看出,本申请实施例通过在接收输入输出内存管理单元传输的加密虚拟机需访问的内存加密数据的明文后,能够基于预先配置的虚拟机密钥对明文数据进行加密,使得外部直通设备中存储的虚拟机数据为密文形式,提高了数据的安全性。
本申请实施例还提供一种直接存储访问方法,图7示例性的示出了本申请实施例提供的直接存储访问的又一可选流程图,该方法流程可由图5所示的磁盘控制器和内存控制器执行实现。如图7所示,该方法流程可以包括如下步骤。其中,下文描述的内容可与上文描述内容相互对应参照。
步骤S70,磁盘控制器接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中写入需访问的加密数据。
加密虚拟机具有将磁盘中存储的虚拟机数据写入内存进行调用的需求,以便加密虚拟机能够基于写入内存的虚拟机数据进行直接调用,从而所述直接存储访问命令可以至少指示在内存中写入需访问的加密数据。
步骤S73,磁盘控制器响应于所述直接存储访问命令,读取需访问的加密数据,并基于预先配置的虚拟机密钥对所述需访问的加密数据进行数据的解密。
其中,所述直接存储访问命令中可以包含磁盘存储地址和虚拟机ID,从而磁盘控制器能够根据磁盘存储地址在磁盘中读取需访问的加密数据,并且,磁盘控制器对应的加解密硬件能够根据虚拟机ID确定安全处理器预先配置的磁盘加密密钥,作为一种可选实现,所述磁盘加密密钥可以是与安全处理器为加密虚拟机配置的虚拟机密钥相同,即根据虚拟机ID确定预先配置的虚拟机密钥。进而磁盘控制器对应的加解密硬件能够基于预先配置的虚拟机密钥,对读取的需访问的加密数据进行数据的解密,得到需访问的加密数据的明文。
步骤S74,磁盘控制器向输入输出内存管理单元(IOMMU)传输写入所述需访问的加密数据的明文的直接存储访问请求。
步骤S75,内存控制器获取由输入输出内存管理单元(IOMMU)传输的直接存储访问请求。
步骤S76,内存控制器根据所述直接存储访问请求,基于加密虚拟机的虚拟机密钥对所述需访问的加密数据的明文进行数据的加密,并将对应的密文数据写入内存。
输入输出内存管理单元(IOMMU)传输的直接存储访问请求中可以包含写入内存的需访问的加密数据的明文和虚拟机ID,从而内存控制器能够根据直接存储访问请求,使其对应的加解密硬件依据虚拟机ID,确定安全处理器为加解密硬件配置的内存加密密钥,作为一种可选实现,所述内存加密密钥可以是与安全处理器为加密虚拟机配置的虚拟机密钥相同,即依据虚拟机ID确定加密虚拟机的虚拟机密钥。进而,内存控制器对应的加解密硬件能够基于加密虚拟机的虚拟机密钥对需访问的加密数据的明文进行加密,得到密文数据,并将对应的密文数据写入内存。
可以看出,本申请实施例的外部直通设备能够对读取的加密虚拟机需访问的加密数据的密文进行解密后,向内存控制器传输所述加密虚拟机需访问的加密数据的明文,并且,内存控制器能够基于配置的虚拟机密钥对明文数据进行加密,使得在内存中存储的虚拟机数据为密文形式,实现了外部直通设备与内存进行直接传输时数据的端到端加密,提高了数据的安全性。
可选的,所述加密虚拟机的虚拟机密钥由安全处理器配置得到;
基于本申请实施例的安全处理器具有为内存控制器对应的加解密硬件以及磁盘控制器对应的加解密硬件配置相应密钥的作用,则在步骤S70之后,还包括:
步骤S71,磁盘控制器基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥。
在步骤S73之前,还包括:
步骤S72,内存控制器基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥。
其中,安全处理的配置信息可以包括虚拟机密钥。
可选的,在所述加密虚拟机的初始状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的标识,随机生成的虚拟机密钥。
可选的,在所述加密虚拟机的运行状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的虚拟机标识,确定的对应所述加密虚拟机的虚拟机历史密钥。
可选的,所述虚拟机密钥通过所述安全处理器预先存储至密钥信息表,所述密钥信息表通过虚拟机监视器创建。
可选的,直接存储访问命令包括所述加密虚拟机的虚拟机标识;
所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
根据所述加密虚拟机的虚拟机标识,基于所述安全处理器的配置信息,配置与所述加密虚拟机的虚拟机标识对应的所述加密虚拟机的虚拟机密钥。
可以看出,本申请实施例的外部直通设备能够对读取的加密虚拟机需访问的加密数据的密文进行解密后,通过输入输出内存管理单元向内存控制器传输所述加密虚拟机需访问的加密数据的明文,并且,内存控制器能够基于预先配置的虚拟机密钥对明文数据进行加密,使得在内存中存储的虚拟机数据为密文形式,实现了外部直通设备与内存进行直接传输时数据的端到端加密,提高了数据的安全性。
下面从外部直通设备的角度,对本申请实施例提供的直接存储访问方法的装置进行介绍,下文描述的装置内容可以认为是外部直通设备为实现本申请实施例提供的直接存储访问方法,所需设置的功能模块。下文描述的内容可与上文描述内容相互对应参照。
作为可选实现,图8示例性的示出了本申请实施例提供的直接存储访问装置的可选框图,该装置可应用于外部直通设备,参照图8,该装置可以包括:
命令接收模块81,用于接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据;
响应模块82,用于响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备;
加解密硬件83,用于接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
可选的,所述加密虚拟机的虚拟机密钥由安全处理器配置得到;
所述命令接收模块81,接收加密虚拟机的直接存储访问命令之后,还包括:
基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥;所述配置信息包括虚拟机密钥。
可选的,在所述加密虚拟机的初始状态时,所述命令接收模块81,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
获取所述安全处理器根据所述加密虚拟机的标识,随机生成的虚拟机密钥。
可选的,在所述加密虚拟机的运行状态时,所述命令接收模块81,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
获取所述安全处理器根据所述加密虚拟机的虚拟机标识,确定的对应所述加密虚拟机的虚拟机历史密钥。
可选的,所述虚拟机密钥通过所述安全处理器预先存储至密钥信息表,所述密钥信息表通过虚拟机监视器创建。
可选的,所述命令接收模块81,接收的直接存储访问命令包括所述加密虚拟机的虚拟机标识;
所述命令接收模块81,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
根据所述加密虚拟机的虚拟机标识,基于所述安全处理器的配置信息,配置与所述加密虚拟机的虚拟机标识对应的所述加密虚拟机的虚拟机密钥。
下面从内存控制器的角度,对本申请实施例提供的直接存储访问方法的装置进行介绍,下文描述的装置内容可以认为是内存控制器为实现本申请实施例提供的直接存储访问方法,所需设置的功能模块。下文描述的内容可与上文描述内容相互对应参照。
作为可选实现,图9示例性的示出了本申请实施例提供的直接存储访问装置的又一可选框图,该装置可应用于内存控制器,参照图9,该装置可以包括:
请求获取模块91,用于获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中读取需访问的内存加密数据的直接存储访问命令;
内存加解密硬件92,用于根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密;
传输模块93,用于向所述输入输出内存管理单元传输对应所述需访问的内存加密数据的明文,以使所述外部直通设备接收由所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,以基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
可选的,所述加密虚拟机的虚拟机密钥由安全处理器配置得到;
所述请求获取模块91,获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求之前,还包括:
基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥;所述配置信息包括虚拟机密钥。
可选的,在所述加密虚拟机的初始状态时,所述请求获取模块91,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
获取所述安全处理器根据所述加密虚拟机的标识信息,随机生成的虚拟机密钥。
可选的,在所述加密虚拟机的运行状态时,所述请求获取模块91,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
获取所述安全处理器根据所述加密虚拟机的虚拟机标识,确定的对应所述加密虚拟机的虚拟机历史密钥。
可选的,所述虚拟机密钥通过所述安全处理器预先存储至密钥信息表,所述密钥信息表通过虚拟机监视器创建。
可选的,直接存储访问命令包括所述加密虚拟机的虚拟机标识;
所述请求获取模块91,基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥的步骤,包括:
根据所述加密虚拟机的虚拟机标识,基于所述安全处理器的配置信息,配置与所述加密虚拟机的虚拟机标识对应的所述加密虚拟机的虚拟机密钥。
本申请实施例还提供一种计算机设备,该计算机设备可以通过设置上述描述的直接存储访问设备,以实现本申请实施例提供的直接存储访问方法。作为可选实现,图10为本申请实施例提供的计算机设备的可选框图,如图10所示,该计算机设备可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4。
在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信。
可选的,通信接口2可以为用于进行网络通信的通信模块的接口。
可选的,处理器1可能是CPU(中央处理器),GPU(Graphics Processing Unit,图形处理器),NPU(嵌入式神经网络处理器),FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),TPU(张量处理单元),AI芯片,特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路等。
存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器3存储一条或多条计算机可执行指令,处理器1调用所述一条或多条计算机可执行指令,以执行本申请实施例的直接存储访问方法。
本申请实施例还提供一种存储介质,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如本申请实施例的直接存储访问方法。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (18)
1.一种直接存储访问方法,其特征在于,应用于外部直通设备,所述方法包括:
接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据;
响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备;
接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
2.根据权利要求1所述的直接存储访问方法,其特征在于,所述加密虚拟机的虚拟机密钥由安全处理器配置得到;
所述接收加密虚拟机的直接存储访问命令之后,还包括:
基于所述安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥;所述配置信息包括虚拟机密钥。
3.根据权利要求2所述的直接存储访问方法,其特征在于,在所述加密虚拟机的初始状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的标识,随机生成的虚拟机密钥。
4.根据权利要求2所述的直接存储访问方法,其特征在于,在所述加密虚拟机的运行状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的虚拟机标识,确定的对应所述加密虚拟机的虚拟机历史密钥。
5.根据权利要求3或4所述的直接存储访问方法,其特征在于,所述虚拟机密钥通过所述安全处理器预先存储至密钥信息表,所述密钥信息表通过虚拟机监视器创建。
6.根据权利要求2所述的方法,其特征在于,直接存储访问命令包括所述加密虚拟机的虚拟机标识;
所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
根据所述加密虚拟机的虚拟机标识,基于所述安全处理器的配置信息,配置与所述加密虚拟机的虚拟机标识对应的所述加密虚拟机的虚拟机密钥。
7.一种直接存储访问方法,其特征在于,应用于内存控制器,所述方法包括:
获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中读取需访问的内存加密数据的直接存储访问命令;
根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密;
向所述输入输出内存管理单元传输对应所述需访问的内存加密数据的明文,以使所述外部直通设备接收由所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,以基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
8.根据权利要求7所述的直接存储访问方法,其特征在于,所述加密虚拟机的虚拟机密钥由安全处理器配置得到;
所述获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求之前,还包括:
基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥;所述配置信息包括虚拟机密钥。
9.根据权利要求8所述的直接存储访问方法,其特征在于,在所述加密虚拟机的初始状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的标识信息,随机生成的虚拟机密钥。
10.根据权利要求8所述的直接存储访问方法,其特征在于,在所述加密虚拟机的运行状态时,所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
获取所述安全处理器根据所述加密虚拟机的虚拟机标识,确定的对应所述加密虚拟机的虚拟机历史密钥。
11.根据权利要求9或10所述的直接存储访问方法,其特征在于,所述虚拟机密钥通过所述安全处理器预先存储至密钥信息表,所述密钥信息表通过虚拟机监视器创建。
12.根据权利要求8所述的直接存储访问方法,其特征在于,直接存储访问命令包括所述加密虚拟机的虚拟机标识;
所述基于安全处理器的配置信息,配置对应所述加密虚拟机的虚拟机密钥,包括:
根据所述加密虚拟机的虚拟机标识,基于所述安全处理器的配置信息,配置与所述加密虚拟机的虚拟机标识对应的所述加密虚拟机的虚拟机密钥。
13.一种直接存储访问方法,其特征在于,应用于外部直通设备,所述方法包括:
接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中写入需访问的加密数据;
响应于所述直接存储访问命令,读取需访问的加密数据,并基于预先配置的虚拟机密钥对所述需访问的加密数据进行数据的解密;
向输入输出内存管理单元传输写入所述需访问的加密数据的明文的直接存储访问请求,以使所述内存控制器接收由所述输入输出内存管理单元传输的所述直接存储访问请求,并根据所述直接存储访问请求,基于所述加密虚拟机的虚拟机密钥对所述需访问的加密数据的明文进行加密,将对应的密文数据写入内存。
14.一种直接存储访问方法,其特征在于,应用于内存控制器,所述方法包括:
获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中写入需访问的加密数据的明文的直接存储访问命令;
根据所述直接存储访问请求,基于加密虚拟机的虚拟机密钥对所述需访问的加密数据的明文进行数据的加密,并将对应的密文数据写入内存。
15.一种直接存储访问装置,其特征在于,应用于外部直通设备,所述装置包括:
命令接收模块,用于接收加密虚拟机的直接存储访问命令,所述直接存储访问命令至少指示在内存中读取需访问的内存加密数据;
响应模块,用于响应于所述直接存储访问命令,向输入输出内存管理单元传输直接存储访问请求,以使内存控制器接收所述输入输出内存管理单元传输的所述直接存储访问请求,并基于所述加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密,将对应所述需访问的内存加密数据的明文由所述输入输出内存管理单元传输至所述外部直通设备;
加解密硬件,用于接收所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
16.一种直接存储访问装置,其特征在于,应用于内存控制器,所述装置包括:
请求获取模块,用于获取输入输出内存管理单元传输的外部直通设备的直接存储访问请求,所述直接存储访问请求对应在内存中读取需访问的内存加密数据的直接存储访问命令;
内存加解密硬件,用于根据所述直接存储访问请求,读取所述需访问的内存加密数据,并基于加密虚拟机的虚拟机密钥对所述需访问的内存加密数据进行数据的解密;
传输模块,用于向所述输入输出内存管理单元传输对应所述需访问的内存加密数据的明文,以使所述外部直通设备接收由所述输入输出内存管理单元传输的所述需访问的内存加密数据的明文,以基于预先配置的虚拟机密钥对所述需访问的内存加密数据的明文进行加密,并存储对应的密文数据。
17.一种计算机设备,其特征在于,包括如权利要求15和/或如权利要求16所述的直接存储访问装置。
18.一种存储介质,其特征在于,所述存储介质存储一条或多条计算机可执行指令,所述一条或多条计算机可执行指令被执行时,实现如权利要求1-6或7-12任一项所述的直接存储访问方法,或者,如权利要求13或14所述的直接存储访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211608051.3A CN116048716A (zh) | 2022-12-14 | 2022-12-14 | 一种直接存储访问方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211608051.3A CN116048716A (zh) | 2022-12-14 | 2022-12-14 | 一种直接存储访问方法、装置及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116048716A true CN116048716A (zh) | 2023-05-02 |
Family
ID=86126424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211608051.3A Pending CN116048716A (zh) | 2022-12-14 | 2022-12-14 | 一种直接存储访问方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048716A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492932A (zh) * | 2023-12-28 | 2024-02-02 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
-
2022
- 2022-12-14 CN CN202211608051.3A patent/CN116048716A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117492932A (zh) * | 2023-12-28 | 2024-02-02 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
CN117492932B (zh) * | 2023-12-28 | 2024-04-09 | 北京微核芯科技有限公司 | 虚拟机访问方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
US7657754B2 (en) | Methods and apparatus for the secure handling of data in a microcontroller | |
US20200104528A1 (en) | Data processing method, device and system | |
US11308241B2 (en) | Security data generation based upon software unreadable registers | |
WO2022132184A1 (en) | System, method and apparatus for total storage encryption | |
CN111241564B (zh) | 内存页面交换方法和安全处理器 | |
CN111274611A (zh) | 数据脱敏方法、装置及计算机可读存储介质 | |
US20220366030A1 (en) | Password Management Method and Related Apparatus | |
US11735319B2 (en) | Method and system for processing medical data | |
US11637704B2 (en) | Method and apparatus for determining trust status of TPM, and storage medium | |
CN114238185A (zh) | 直接存储访问及命令数据传输方法、装置及相关设备 | |
JP7552999B2 (ja) | データ伝送方法、装置、システム、コンピュータ機器及びコンピュータプログラム | |
CN112363801A (zh) | 虚拟机迁移方法、处理方法、系统、装置、芯片及介质 | |
WO2023133862A1 (zh) | 数据处理方法及系统 | |
CN116048716A (zh) | 一种直接存储访问方法、装置及相关设备 | |
US11997192B2 (en) | Technologies for establishing device locality | |
CN110858246B (zh) | 安全代码空间的认证方法和系统、及其注册方法 | |
CN116450281A (zh) | 访问处理方法、虚拟机标识配置方法、芯片及计算机设备 | |
CN114697113A (zh) | 一种基于硬件加速卡的多方隐私计算方法、装置及系统 | |
CN110289954B (zh) | 一种密钥处理方法及装置 | |
CN112688953B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117744117B (zh) | 权限设置方法、装置、电子设备及计算机可读存储介质 | |
JPWO2018092289A1 (ja) | 情報処理装置 | |
CN116860666A (zh) | 一种gpu内存保护方法、装置、芯片及电子设备 | |
CN116186727A (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 |