CN112363800B - 一种网卡的内存访问方法、安全处理器、网卡及电子设备 - Google Patents

一种网卡的内存访问方法、安全处理器、网卡及电子设备 Download PDF

Info

Publication number
CN112363800B
CN112363800B CN202011247061.XA CN202011247061A CN112363800B CN 112363800 B CN112363800 B CN 112363800B CN 202011247061 A CN202011247061 A CN 202011247061A CN 112363800 B CN112363800 B CN 112363800B
Authority
CN
China
Prior art keywords
virtual machine
network card
key
security processor
identity certificate
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
CN202011247061.XA
Other languages
English (en)
Other versions
CN112363800A (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 CN202011247061.XA priority Critical patent/CN112363800B/zh
Publication of CN112363800A publication Critical patent/CN112363800A/zh
Application granted granted Critical
Publication of CN112363800B publication Critical patent/CN112363800B/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • 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/45583Memory management, e.g. access or allocation

Abstract

本申请实施例提供一种网卡的内存访问方法、安全处理器、网卡及电子设备,其中方法包括:网卡至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成;在将所述网卡配置给虚拟机时,获取请求认证数据的消息;至少根据所述身份证书,确定认证数据;将至少携带所述身份证书的认证数据传输给安全处理器;在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。本申请实施例可在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性。

Description

一种网卡的内存访问方法、安全处理器、网卡及电子设备
技术领域
本申请实施例涉及虚拟机技术领域,具体涉及一种网卡的内存访问方法、安全处理器、网卡及电子设备。
背景技术
通过虚拟化技术(Virtualization),电子设备(如物理主机)可虚拟化出多台虚拟机(Virtual Machine,VM),从而最大化利用电子设备的硬件资源;虚拟化出的虚拟机可在物理内存中分配虚拟机内存空间,每台虚拟机的虚拟机内存空间主要用于任务消耗及支持虚拟化。
虚拟化出的虚拟机可利用网卡进行网络通信,为提升虚拟机与网卡的交互速度,可将网卡配置给虚拟机,使得网卡可通过DMA(Direct Memory Access,直接内存访问)等方式与虚拟机的虚拟机内存空间进行直接交互,此时,如何提供网卡的内存访问方案,以保障虚拟机内存空间中虚拟机数据的安全性,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种网卡的内存访问方法、安全处理器、网卡及电子设备,以在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性。
为实现上述目的,本申请实施例提供如下技术方案:
一种网卡的内存访问方法,应用于网卡,所述方法包括:
至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成;
在将所述网卡配置给虚拟机时,获取请求认证数据的消息;
至少根据所述身份证书,确定认证数据;
将至少携带所述身份证书的认证数据传输给安全处理器;
在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;
基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
本申请实施例还提供一种网卡的内存访问方法,应用于安全处理器,所述方法包括:
在将所述网卡配置给虚拟机时,获取网卡传输的至少携带网卡的身份证书的认证数据,其中,所述身份证书至少基于安全处理器的私钥生成;
基于所述认证数据,验证所述网卡是否合法;
若验证所述网卡合法,将所述虚拟机的虚拟机密钥配置给所述网卡,以便所述网卡基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
本申请实施例还提供一种网卡,所述网卡被配置为执行如上述所述的网卡的内存访问方法。
本申请实施例还提供一种安全处理器,所述安全处理器被配置为执行如上述所述的网卡的内存访问方法。
本申请实施例还提供一种电子设备,包括:CPU,如上述所述的网卡,和如上述所述的安全处理器;其中,所述CPU虚拟化有虚拟机,所述虚拟机使用所述网卡进行网络通信,所述安全处理器为所述虚拟机分配有虚拟机密钥,所述虚拟机密钥用于对所述虚拟机对应的虚拟机内存空间中的数据进行加解密。
本申请实施例提供的网卡的内存访问方法中,网卡可至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成;在将所述网卡配置给虚拟机时,网卡可获取到请求认证数据的消息;从而,网卡可至少根据所述身份证书,确定认证数据,将至少携带所述身份证书的认证数据传输给安全处理器;进而,在安全处理器基于所述认证数据验证所述网卡合法后,网卡可获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;从而,基于所述虚拟机密钥,网卡可使用与虚拟机一致的虚拟机密钥,访问所述虚拟机的虚拟机内存空间,实现网卡与虚拟机内存空间顺利的直接交互。
可见,在安全虚拟化技术场景下,在网卡可信、合法的情况下,安全处理器可为网卡配置虚拟机的虚拟机密钥,从而网卡可基于虚拟机密钥,访问虚拟机的虚拟机内存空间,解决网卡由于无法获知虚拟机密钥而无法顺利直接访问虚拟机内存空间的问题;也就是说,在安全虚拟化技术的场景下,虚拟机内存空间中的数据基于虚拟机密钥实现安全保护,而本申请实施例在此基础上,可在网卡可信、合法的情况下,通过为网卡配置虚拟机的虚拟机密钥,来实现网卡与虚拟机内存空间之间顺利的直接交互,从而在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要基于的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为传统虚拟化技术的系统架构示意图;
图2为安全虚拟化技术的系统架构示意图;
图3为安全虚拟化技术的微架构示意图;
图4为安全虚拟化技术下配置网卡的架构示意图;
图5为本申请实施例提供的网卡的内存访问方法的流程图;
图6为本申请实施例提供的网卡的内存访问方法的另一流程图;
图7为本申请实施例提供的网卡的内存访问方法的再一流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出了传统虚拟化技术的系统架构示意图,如图1所示,传统虚拟化技术的系统架构可以包括:CPU(Central Processing Unit,中央处理器)10,内存控制器20,物理内存30;
其中,CPU10可通过软件形式配置虚拟机管理器(Virtual Machine Manager,VMM)110,并通过虚拟化技术虚拟化出多台虚拟机111,该多台虚拟机可由虚拟机管理器110进行内存管理,如由虚拟机管理器管理虚拟机在物理内存30中的虚拟机内存空间;
内存控制器20是控制物理内存30,并且使物理内存30与CPU10之间交互数据的硬件;物理内存30的部分或全部空间可作为为虚拟机分配的虚拟机内存空间;在典型的计算机系统中,内存控制器20负责处理内存访问请求,如内存控制器20可检测缓存是否记录内存访问请求对应的地址,若是,则从缓存读取该地址相应的数据,否则,遍历内存的页表查找该地址并读取该地址相应的数据。
图1所示的系统架构基于传统虚拟化技术实现,传统虚拟化技术并不对虚拟机内存空间进行安全保护,这导致虚拟机内存空间中的虚拟机数据的安全性存在威胁,因此为提升虚拟机数据的安全性,区别于传统虚拟化技术的安全虚拟化技术应运而生;
安全虚拟化技术是可对虚拟机内存空间进行安全保护的虚拟化技术,通过安全虚拟化技术可对部分或所有虚拟机内存空间进行加密,而且不同虚拟机的虚拟机内存空间通过不同的虚拟机密钥进行加密,即使虚拟机管理器也无法访问虚拟机密钥,从而防止物理主机、虚拟机管理器对虚拟机内存空间中的虚拟机数据的访问和篡改,提升了虚拟机数据的安全性;
作为一种示例说明,图2示出了安全虚拟化技术的系统架构示意图,结合图1和图2所示,图2所示系统架构相比于图1所示系统架构还可以包括:安全处理器(PlatformSecure Processor,PSP)40,安全处理器40是安全虚拟化技术专门配置的负责虚拟机数据安全的处理器;
如图2所示,虚拟机管理器10可配置与安全处理器40相通信的API接口,实现虚拟机管理器与安全处理器的数据交互;同时,内存控制器20可配置加解密引擎21,加解密引擎21可存储对虚拟机内存空间进行加解密的虚拟机密钥,并且不同虚拟机的虚拟机内存空间基于不同的虚拟机密钥进行加解密;具体的,安全处理器40可为虚拟机分配虚拟机密钥并存储在加解密引擎21中,从而在虚拟机启动后的运行过程中,安全处理器40可通过加解密引擎21基于虚拟机的虚拟机密钥,对虚拟机的虚拟机内存空间进行加解密,以实现虚拟机与物理主机、以及不同虚拟机之间的数据安全隔离;
在更进一步的说明中,图3示出了安全虚拟化技术的微架构示意图,如图3所示,SOC(System On Chip,片上系统)内部配置有CPU10,安全处理器40,和内存控制器20;SOC外部配置物理内存30(例如动态随机存取存储器DRAM等);并且,安全处理器40与CPU10通过API接口交互,安全处理器40与内存控制器(memory controller)20通过总线交互,并运行program(程式),为不同的虚拟机分配不同的VEK(Virtualization Encrypted Key,虚拟机密钥);由于虚拟机的虚拟机内存空间基于虚拟机密钥进行加解密,因此SOC外部的数据为加密后的密文,SOC内部为明文;
需要说明的是,图3所示系统架构是以CPU、内存控制器、安全处理器集成在SOC上进行说明,显然,SOC仅是计算机体系结构的一种可选形式,安全虚拟化技术也可支持其他形式的计算机体系结构,例如,安全虚拟化技术也可支持处理器和南桥相耦合的计算机体系结构、分设南桥和北桥的计算机体系结构等,此时,CPU、内存控制器、内存、和安全处理器可相应部署,此处不再展开说明。
在虚拟化出的虚拟机利用网卡进行网络通信的情况下,为提升虚拟机的网络性能,网卡可直接映射到虚拟机的虚拟机内存空间,从而网卡可通过DMA等方式与虚拟机的虚拟机内存空间进行直接交互,而不需要通过虚拟机管理器进行数据中转,提升虚拟机与网卡的交互速度;
然而,在安全虚拟化技术下,虚拟机的虚拟机内存空间基于虚拟机密钥进行加密,网卡在通过DMA等方式与虚拟机内存空间进行直接交互时,由于虚拟机内存空间的加密,网卡并无法顺利访问虚拟机内存空间,这导致网卡与虚拟机内存空间无法顺利实现直接交互;示例的,如图4所示,虚拟机的虚拟机内存空间,基于虚拟机的虚拟机密钥进行加解密,在虚拟机利用网卡进行网络通信时,网卡与虚拟机的虚拟机内存空间可通过DMA等方式进行直接交互,而由于虚拟机内存空间的加密,网卡并无法顺利访问虚拟机内存空间;可见,在安全虚拟化技术场景下,虚拟机的虚拟机内存空间虽然可通过虚拟机的虚拟机密钥,实现虚拟机数据的安全保护,但是网卡并无法顺利以DMA等方式直接访问虚拟机内存空间,导致网卡与虚拟机内存空间无法顺利实现直接交互;
而在传统虚拟化技术下,虚拟机的虚拟机内存空间未被加密,虽然网卡可通过DMA等方式与虚拟机内存空间顺利的进行直接交互,但是,由于虚拟机内存空间未被加密,这也导致虚拟机管理器等其他器件可以访问虚拟机内存空间中的数据,存在虚拟机数据较高的泄露风险。
综上描述可以看出,在安全虚拟化技术考虑虚拟机内存空间中的数据安全性的情况下,网卡与虚拟机内存空间并无法以DMA等方式顺利实现直接交互,而在传统虚拟化技术下,网卡虽然能以DMA等方式与虚拟机内存空间顺利的直接交互,但是虚拟机内存空间中的数据缺乏安全保护,存在较高的数据泄露风险。
基于此,本申请实施例提供改进的网卡的内存访问方案,以在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性。
在安全虚拟化技术的场景下,本申请实施例可在虚拟机管理器将网卡配置给虚拟机时,由安全处理器为网卡配置虚拟机的虚拟机密钥,从而网卡可利用所述虚拟机密钥,对虚拟机的虚拟机内存空间进行访问,解决安全虚拟化技术场景下,由于网卡无法获知虚拟机密钥而无法顺利直接访问虚拟机内存空间的问题;可选的,网卡中可配置加解密引擎,从而安全处理器为网卡配置的虚拟机密钥,可设置在网卡的加解密引擎,在网卡访问虚拟机内存空间时,网卡可利用网卡的加解密引擎中设置的虚拟机密钥,实现与虚拟机内存空间的顺利直接交互;
也就是说,在安全虚拟化技术的场景下,虚拟机内存空间中的数据可基于虚拟机密钥实现安全保护,本申请实施例在此基础上,可通过为网卡配置虚拟机的虚拟机密钥,来实现网卡与虚拟机内存空间之间顺利的直接交互,从而在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性;
同时,由于并不是所有网卡均是合法可信的,因此本申请实施例在安全处理器为网卡配置虚拟机的虚拟机密钥前,需由安全处理器进行网卡的合法性验证,仅在安全处理器验证网卡合法后,安全处理器才为网卡配置虚拟机的虚拟机密钥,以规避由于非法的网卡获取所述虚拟机密钥而导致虚拟机数据非法泄露的风险。
基于上述思路,在安全虚拟化技术的场景下,作为一种可选实现,图5示出了本申请实施例提供的网卡的内存访问方法的可选流程,该流程可由网卡、虚拟机管理器和安全处理器交互实现,如图5所示,该流程可以包括:
步骤S100、网卡至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成。
网卡在生产时,本申请实施例可在网卡中至少存储身份证书,所述身份证书可用于标识网卡的合法性,在本申请实施例中,所述身份证书可至少基于安全处理器的私钥生成。
在更为具体的可选实现中,所述身份证书可由安全处理器的私钥对网卡的公钥进行数字签名而生成;例如,网卡在生产时,可预制一对网卡的公钥(NIC_Pub_Key)和私钥(NIC_Pri_key),并存储在网卡中,同时,安全处理器可预制公钥(PSP_Pub_Key)和私钥(PSP_Pri_key),安全处理器的公钥和私钥可存储在密钥服务器中;从而网卡在生产时,网卡可将网卡的公钥发送给密钥服务器,密钥服务器可基于安全处理器的私钥对网卡的公钥进行数字签名,生成所述身份证书,密钥服务器通过将生成的身份证书发送给网卡,从而可使得网卡存储所述身份证书。
步骤S110、在虚拟机管理器将网卡配置给创建的虚拟机时,虚拟机管理器向网卡发送请求认证数据的消息。
在安全虚拟化技术下,虚拟机管理器可创建虚拟机,并由安全处理器为虚拟机分配虚拟机密钥,在虚拟机管理器创建虚拟机时,如果虚拟机管理器需要将网卡配置给创建的虚拟机(即虚拟机管理器将网卡配置给虚拟机直通使用,以使得网卡可通过DMA等方式与虚拟机的虚拟机内存空间进行直接交互),则虚拟机管理器可向网卡发送请求认证数据的消息,以便启动后续认证网卡合法性的流程。需要说明的是,一般情况下,一个网卡配置给一个虚拟机使用。
步骤S120、网卡至少根据所述身份证书,确定认证数据。
网卡在获取虚拟机管理器发送的请求认证数据的消息后,由于所述认证数据至少用于验证网卡的合法性,因此网卡可确定用于认证网卡合法性的认证数据;在本申请实施例中,网卡可至少根据所述身份证书,确定所述认证数据,例如,所述认证数据可至少携带所述身份证书。
在进一步的可选实现中,由于网卡和安全处理器之间的交互数据由虚拟机管理器中转传递,为避免后续在验证网卡合法后,安全处理器为网卡配置的虚拟机密钥被虚拟机管理器窃取,网卡还可生成后续用于派生传输密钥的随机数,以便后续安全处理器可利用所述随机数派生的传输密钥,将虚拟机密钥加密传输给网卡;
进一步,为避免虚拟机管理器窃取用于派生传输密钥的随机数,网卡可将随机数加密为随机数密文后,再传输给安全处理器;为使得安全处理器能够解析加密的随机数密文,随机数密文加密使用的密钥应被安全处理器和网卡共同知晓,基于此,在网卡存储安全处理器的公钥的基础上,网卡可基于安全处理器的公钥对随机数进行加密,得到随机数密文,从而使得安全处理器具有能够解密所述随机数密文的能力,并且虚拟机管理器也由于无法获知安全处理器的公钥和私钥而无法解密随机数密文,保障随机数的安全性;
也就是说,在本申请实施例的进一步可选实现中,所述认证数据还可携带随机数密文,即网卡可生成随机数,基于安全处理器的公钥对随机数进行加密,得到随机数密文,从而将随机数密文携带在所述认证数据中。
在更进一步的可选实现中,为避免随机数密文被虚拟机管理器截取后替换为其他信息,网卡还可生成用于校验随机数密文的签名信息并携带在所述认证数据中,后续安全处理器在校验所述签名信息通过的情况下,才可确定所述认证数据中的随机数密文未被替换更改,该网卡合法、可信;从而后续安全处理器才可解密所述随机数密文,得到用于派生传输密钥的随机数,以基于随机数派生的传输密钥,将虚拟机密钥加密传输给网卡,保障安全处理器能够安全、可靠的将虚拟机密钥配置给网卡。
当然,认证数据中携带所述随机数密文和所述签名信息仅是进一步的安全保障手段,本申请实施例也可不限制认证数据中必须携带所述随机数密文和所述签名信息,例如,在网卡和安全处理器可不通过虚拟机管理器进行数据交互,而是网卡和安全处理器可直接进行数据交互的情况下,本申请实施例也可仅在认证数据中携带所述身份证书。
步骤S130、网卡将至少携带所述身份证书的认证数据,传输给虚拟机管理器。
步骤S140、虚拟机管理器将所述认证数据转发给安全处理器。
基于步骤S130和步骤S140,网卡可将至少携带所述身份证书的认证数据传输给安全处理器,在本申请实施例中,虚拟机管理器可进行认证数据在网卡和安全处理器之间的传递;当然,在其他可能的实现中,如果网卡具有与安全处理器直接通信的能力,网卡也可直接将所述认证数据传递给安全处理器。
步骤S150、安全处理器基于所述认证数据,验证所述网卡是否合法,若否,执行步骤S160,若是,执行步骤S170。
安全处理器在获取到所述认证数据后,安全处理器可基于所述认证数据,验证所述网卡是否合法;在一种可选实现中,安全处理器可利用所述认证数据中的身份证书,对网卡进行合法性验证,由于所述认证数据中的身份证书至少基于安全处理器的私钥确定,因此在可选实现中,安全处理器可基于安全处理器的私钥,验证所述身份证书是否通过,以实现验证所述网卡是否合法。
在更为具体的可选实现中,如果所述身份证书是基于安全处理器的私钥对网卡的公钥进行数字签名而生成,则安全处理器可基于安全处理器的私钥,对所述身份证书进行解析,从而通过分析身份证书是否解析成功,来验证所述身份证书是否通过;
也就是说,如果安全处理器基于安全处理器的私钥,对所述身份证书解析成功,则可证明所述身份证书是基于安全处理器的私钥生成,从而可验证所述身份证书通过;而如果安全处理器基于安全处理器的私钥,对所述身份证书解析失败,则可证明所述身份证书并不是基于安全处理器的私钥生成,从而可验证所述身份证书不通过。
步骤S160、安全处理器确定将网卡配置给虚拟机失败,结束流程。
在安全处理器验证所述网卡不合法时,所述网卡不可配置给虚拟机,从而安全处理器可确定将网卡配置给虚拟机失败的结果,并结束后续流程。在可选实现中,如果安全处理器验证认证数据中的身份证书不通过,则安全处理器可确定所述网卡不合法,确定出将网卡配置给虚拟机失败的结果,并结束后续流程。
步骤S170、安全处理器将虚拟机的虚拟机密钥配置给所述网卡。
可选的,安全处理器在验证网卡合法(如验证所述身份证书通过)后,安全处理器可将虚拟机的虚拟机密钥配置给所述网卡,以便所述网卡可基于所述虚拟机密钥,对虚拟机的虚拟机内存空间进行访问。
在进一步的可选实现中,如果安全处理器和网卡之间需由虚拟机管理器进行数据交互,则为避免安全处理器配置给网卡的虚拟机密钥被虚拟机管理器窃取,本申请实施例可将所述虚拟机密钥加密传输给网卡;基于此,所述认证数据中可携带上述描述的随机数密文和随机数密文的签名信息,安全处理器可在验证所述身份证书通过后,进一步校验所述签名信息,从而在校验所述签名信息通过后,解密所述随机数密文,得到网卡生成的随机数,安全处理器可利用所述随机数派生传输密钥,利用所述传输密钥,将所述虚拟机密钥加密传输给网卡,以保障安全处理器能够将虚拟机密钥安全、可靠的配置给网卡;当然,本段描述的实现仅是可选方式,在安全处理器能够与网卡直接通信的情况下,安全处理器也可直接将虚拟机的虚拟机密钥配置给网卡,而不必考虑虚拟机密钥的加密传输。
可以理解的是,安全处理器为网卡配置的虚拟机密钥,与安全处理器为虚拟机分配的虚拟机密钥是一致的。
步骤S180、网卡基于所述虚拟机密钥,访问虚拟机的虚拟机内存空间。
网卡获取到安全处理器配置的所述虚拟机密钥后,可基于所述虚拟机密钥访问虚拟机的虚拟机内存空间,从而实现网卡与虚拟机的虚拟机内存空间的顺利直接交互,完成将网卡配置给虚拟机的过程;
需要说明的是,在本申请实施例中,当所述虚拟机使用网卡发送数据时,网卡可从所述虚拟机的虚拟机内存空间中读取加密的数据,基于安全处理器配置给所述网卡的虚拟机密钥,解密所读取的加密的数据,将解密的数据通过网络传递;当网卡从网络接收到数据时,网卡可基于安全处理器配置给网卡的虚拟机密钥,加密接收的数据,将加密的数据写入到所述虚拟机的虚拟机内存空间中,以保障所述虚拟机内存空间中数据的安全性。
在可选实现中,本申请实施例提供的网卡可配置加解密引擎,网卡获取所述虚拟机密钥后,可将所述虚拟机密钥配置到网卡的加解密引擎后,从而使得网卡基于所述虚拟机密钥,访问虚拟机的虚拟机内存空间。具体的,网卡在访问虚拟机的虚拟机内存空间时,可利用网卡的加解密引擎,以所述虚拟机密钥,加密写入所述虚拟机内存空间的数据和解密从所述虚拟机内存空间中获取的数据。
本申请实施例提供的网卡的内存访问方法中,网卡可至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成;在将所述网卡配置给虚拟机时,网卡可获取到请求认证数据的消息;从而,网卡可至少根据所述身份证书,确定认证数据,将至少携带所述身份证书的认证数据传输给安全处理器;进而,在安全处理器基于所述认证数据验证所述网卡合法后,网卡可获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;从而,基于所述虚拟机密钥,网卡可使用与虚拟机一致的虚拟机密钥,访问所述虚拟机的虚拟机内存空间,实现网卡与虚拟机内存空间顺利的直接交互。
可见,在安全虚拟化技术场景下,在网卡可信、合法的情况下,安全处理器可为网卡配置虚拟机的虚拟机密钥,从而网卡可基于虚拟机密钥,访问虚拟机的虚拟机内存空间,解决网卡由于无法获知虚拟机密钥而无法顺利直接访问虚拟机内存空间的问题;也就是说,在安全虚拟化技术的场景下,虚拟机内存空间中的数据基于虚拟机密钥实现安全保护,而本申请实施例在此基础上,可在网卡可信、合法的情况下,通过为网卡配置虚拟机的虚拟机密钥,来实现网卡与虚拟机内存空间之间顺利的直接交互,从而在网卡与虚拟机内存空间顺利实现直接交互的前提下,保障虚拟机内存空间中虚拟机数据的安全性。
在进一步的可选实现中,本申请实施例用于网卡合法性验证的认证数据除包括所述身份证书外,还可包括随机数密文和随机数密文的签名信息,相应的,安全处理器基于所述认证数据验证网卡是否合法的过程可以涉及:安全处理器验证认证数据中的身份证书是否通过,以及校验认证数据中的签名信息是否通过两个阶段;也就是说,安全处理器在验证认证数据中的身份证书通过,并且校验认证数据中的签名信息通过后,才验证网卡合法,从而安全处理器对随机数密文进行解密,得到网卡生成的随机数,进而以所述随机数派生的传输密钥,加密传输配置给网卡的虚拟机密钥,保障虚拟机密钥安全、可靠的配置给网卡;基于此,在可选实现中,图6示出了本申请实施例提供的网卡的内存访问方法的另一可选流程,该流程可由网卡、虚拟机管理器和安全处理器交互实现,如图6所示,该流程可以包括:
步骤S200、网卡存储身份证书并存储网卡的公钥、私钥以及安全处理器的公钥,其中,所述身份证书基于安全处理器的私钥对网卡的公钥进行数字签名而生成。
网卡在生产时,可以预制一对网卡的公钥(NIC_Pub_Key)和私钥(NIC_Pri_key),并存储在网卡中;同时,安全处理器也可预制有一对公钥(PSP_Pub_Key)和私钥(PSP_Pri_key);在本申请实施例中,网卡除存储网卡自身的公钥和私钥外,还可存储安全处理器的公钥以及所述身份证书,其中,所述身份证书可基于安全处理器的私钥对网卡的公钥进行数字签名而生成。
在更为具体的可选实现中,安全处理器的公钥和私钥可存储在密钥服务器中,网卡在生产时,网卡可从密钥服务器获取安全处理器的公钥并存储在网卡中;同时,网卡可将网卡的公钥发送给密钥服务器,从而密钥服务器可基于安全处理器的私钥对网卡的公钥进行数字签名,生成所述身份证书,密钥服务器将生成的身份证书发送给网卡,从而可使得网卡可存储所述身份证书。
步骤S210、在虚拟机管理器将网卡配置给创建的虚拟机时,虚拟机管理器向网卡发送请求认证数据的消息。
步骤S210的介绍可参照前文步骤S110部分,此处不再赘述。
步骤S220、网卡生成随机数,基于安全处理器的公钥对所述随机数进行加密,得到随机数密文。
在本申请实施例中,为保障后续安全处理器验证网卡可信、合法后,安全处理器能够安全、可靠的将虚拟机密钥配置给网卡,网卡可生成后续用于派生传输密钥的随机数,以便后续安全处理器可基于随机数派生的传输密钥,将虚拟机密钥加密传输给网卡。为保障虚拟机管理器无法获取所述随机数,网卡在生成所述随机数后,可基于安全处理器的公钥,对所述随机数进行加密,得到随机数密文。
在本申请实施例中,所述随机数密文可携带在所述认证数据中。
步骤S230、网卡基于网卡的私钥,对所述随机数密文进行数字签名,得到签名信息。
为在随机数密文传输给安全处理器后,安全处理器具有校验所述随机数密文的手段,在本申请实施例中,网卡可基于网卡的私钥,对随机数密文进行数字签名,从而得到随机数密文的签名信息。由于所述身份证书是由安全处理器的私钥对网卡的公钥进行数字签名而生成,因此,安全处理器在验证所述身份证书通过的情况下,可获取到所述网卡的公钥,进而,安全处理器可利用网卡的公钥,对所述签名信息进行校验,从而对随机数密文实现校验。
步骤S240、网卡将携带所述随机数密文,所述签名信息和所述身份证书的认证数据发送给虚拟机管理器。
在本申请实施例中,认证数据携带有所述随机数密文,所述签名信息和所述身份证书,因此网卡得到所述随机数密文和所述签名信息的过程,均可认为是网卡确定所述认证数据的过程,即在本申请实施例中,网卡可根据所述随机数密文,所述签名信息和所述身份证书,生成所述认证数据。
步骤S250、虚拟机管理器将携带所述随机数密文,所述签名信息和所述身份证书的认证数据转发给安全处理器。
基于步骤S240和步骤S250,网卡可将携带所述随机数密文,所述签名信息和所述身份证书的认证数据传输给安全处理器,在本申请实施例中,虚拟机管理器可进行认证数据在网卡和安全处理器之间的传递;当然,在其他可能的实现中,如果网卡具有与安全处理器直接通信的能力,网卡也可直接将所述认证数据传递给安全处理器。
步骤S260、安全处理器基于安全处理器的私钥,验证所述身份证书是否通过,若否,执行步骤S270,若是,执行步骤S280。
安全处理器在获取到所述认证数据后,安全处理器可先对所述认证数据中的身份证书进行验证;由于所述认证数据中的身份证书是基于安全处理器的私钥对网卡的公钥进行数字签名而生成,因此安全处理器可利用安全处理器的私钥,对所述身份证书进行解析,从而验证所述身份证书是否通过。
步骤S270、安全处理器确定将网卡配置给虚拟机失败,结束流程。
在安全处理器验证所述身份证书不通过时,则安全处理器可确定所述网卡不合法,所述网卡不可配置给虚拟机,从而安全处理器可确定将网卡配置给虚拟机失败的结果,并结束后续流程。
步骤S280、安全处理器在所述身份证书验证通过时,从所述身份证书的验证结果中获取网卡的公钥,基于所述网卡的公钥校验所述签名信息是否通过,若否,执行步骤S270,若是,执行步骤S290。
安全处理器在验证所述身份证书通过后,安全处理器可对所述认证数据中的签名信息进行校验,由于所述签名信息是基于网卡的私钥,对所述随机数密文进行数字签名而生成,因此安全处理器可基于验证所述身份证书获得的网卡的公钥,对所述签名信息进行校验。
如果安全处理器校验所述签名信息不通过,这可能是基于验证所述身份证书获得的网卡的公钥,与签名得到所述签名信息的网卡的私钥不对应等原因导致,从而安全处理器可确定所述网卡不合法,所述网卡不可配置给虚拟机,安全处理器可确定将网卡配置给虚拟机失败的结果,并结束后续流程。
可选的,步骤S260至步骤S280可以认为是,安全处理器基于认证数据,验证网卡是否合法的可选实现;在本申请实施例中,只有安全处理器验证认证数据中的身份证书通过,并且校验认证数据中的签名信息通过后,才确定验证网卡合法,否则,安全处理器确定验证网卡不合法。可以看出,本申请实施例提供的网卡的合法性验证过程是逐渐递进的,只有在验证身份证书通过的情况下,安全处理器才能够基于验证身份证书获得的网卡的公钥,对随机数密文的签名信息进行校验;通过这样逐渐递进的手段,验证网卡的合法性,可保障本申请实施例验证网卡合法性手段的有效性,并具有极高的数据安全性,极大降低数据泄露的风险。
步骤S290、安全处理器基于安全处理器的私钥,解密所述随机数密文,得到所述随机数。
安全处理器在进一步校验所述签名信息通过后,说明网卡合法、可信,安全处理器可进一步对所述认证数据中的随机数密文进行解密,从而得到网卡生成的随机数;在本申请实施例中,由于所述随机数密文是基于安全处理器的公钥,对网卡生成的随机数进行加密而得到,因此安全处理器可基于安全处理器的私钥,解密所述随机数密文,从而得到所述随机数。
步骤S300、安全处理器基于所述随机数派生传输密钥,基于所述传输密钥对虚拟机的虚拟机密钥进行加密。
步骤S310、安全处理器将加密的虚拟机密钥,传输给网卡。
安全处理器解密所述随机数密文,得到网卡生成的随机数后,则所述随机数仅由安全处理器和网卡知晓,从而安全处理器可利用所述随机数,将为虚拟机分配的虚拟机密钥传输给网卡,使得网卡可获取虚拟机密钥,以便网卡后续可基于所述虚拟机密钥,对虚拟机的虚拟机内存空间进行加解密,保障网卡与虚拟机的虚拟机内存空间进行直接交互的过程中,虚拟机内存空间中数据的安全性。
在本申请实施例中,由于安全处理器和网卡之间的数据交互由虚拟机管理器转发,为避免虚拟机管理器窃取虚拟机的虚拟机密钥,安全处理器可利用所述随机数,将虚拟机密钥加密传输给虚拟机管理器,由于所述随机数仅安全处理器和网卡知晓,因此虚拟机管理器在安全处理器和网卡之间转发加密传输的虚拟机密钥时,虚拟机管理器并无法对加密传输的虚拟机密钥进行解密,从而可保障虚拟机密钥在安全处理器和网卡之间传输时的安全性;
具体的,在本申请实施例中,安全处理器可基于所述随机数派生传输密钥,从而,安全处理器可基于所述传输密钥,对安全处理器分配给虚拟机的虚拟机密钥进行加密;进而,安全处理器可将加密的虚拟机密钥,传输给网卡,从而使得网卡获取到加密的虚拟机密钥。可选的,安全处理器可经由虚拟机管理器,将加密的虚拟机密钥,传输给网卡。
步骤S320、网卡基于所述随机数派生传输密钥,利用所述传输密钥解密所述加密的虚拟机密钥,得到所述虚拟机密钥。
网卡获取到安全处理器传输的加密的虚拟机密钥后,可基于步骤S220生成的随机数,对所述加密的虚拟机密钥进行解密,从而得到所述虚拟机密钥;网卡所得到的虚拟机密钥,与虚拟机的虚拟机内存空间对应的虚拟机密钥一致。
步骤S330、网卡基于所述虚拟机密钥,访问虚拟机的虚拟机内存空间。
网卡获取到所述虚拟机密钥后,可基于所述虚拟机密钥,访问虚拟机的虚拟机内存空间,从而实现网卡与虚拟机的虚拟机内存空间的顺利直接交互,完成将网卡配置给虚拟机的过程。
在可选实现中,本申请实施例提供的网卡可配置加解密引擎,网卡获取所述虚拟机密钥后,可将所述虚拟机密钥配置到网卡的加解密引擎。
在将网卡配置给虚拟机,并且网卡可基于安全处理器配置的虚拟机密钥,访问虚拟机的虚拟机内存空间后,为防止恶意的虚拟机管理器将网卡再直接映射给其他虚拟机,来窃取其他虚拟机的数据,本申请实施例可在网卡访问虚拟机内存空间进行数据传输之前,验证网卡所访问的虚拟机内存空间的合法性,即网卡访问的虚拟机内存空间是否与网卡配置到的虚拟机相对应;在可选实现中,图7示出了本申请实施例提供的网卡的内存访问方法的再一可选流程,该流程可由网卡和安全处理器交互实现,可选的,网卡和安全处理器的数据交互可由虚拟机管理器转发,结合图6和图7所示,该流程可以包括:
步骤S400、安全处理器随机生成特征值,将所述特征值写入虚拟机的虚拟机内存空间,其中,所述特征值在所述虚拟机内存空间中至少基于虚拟机密钥进行第二加密。
步骤S410、安全处理器基于传输密钥对所述特征值进行第一加密。
步骤S420、安全处理器在将基于传输密钥加密的虚拟机密钥传输给网卡的同时,将第一加密的特征值传输给网卡。
安全处理器在验证网卡合法后,可解密随机数密文得到随机数,从而基于随机数派生出传输密钥;在本申请实施例中,安全处理器基于传输密钥向网卡加密传输虚拟机密钥的同时,还可随机生成特征值,该特征值可以是安全处理器随机生成的一串随机数,并且安全处理器可基于传输密钥对所述特征值进行加密(为便于说明,本申请实施例将基于传输密钥对特征值的加密称为第一加密),从而,安全处理器在将基于传输密钥加密的虚拟机密钥,传输给网卡的同时,还可将第一加密的特征值传输给网卡。
同时,安全处理器在生成特征值后,还可将生成的特征值写入到虚拟机的虚拟机内存空间中,由于在安全虚拟化技术场景下,虚拟机内存空间中的数据需加密存储,因此本申请实施例在虚拟机内存空间中存储的特征值应至少基于虚拟机密钥进行加密(为便于说明,本申请实施例将基于虚拟机密钥对特征值的加密称为第二加密);在更为具体的可选实现中,所述特征值可至少基于虚拟机密钥和虚拟机内存空间的地址混淆实现第二加密,从而防止恶意的虚拟机管理器将所述特征值复制给其他虚拟机使用。
步骤S430、网卡基于所述传输密钥对安全处理器传输的第一加密的特征值进行解密,得到第一解密的特征值。
网卡获取到安全处理器加密传输的虚拟机密钥的同时,还可获取到安全处理器传输的第一加密的特征值;针对网卡获取的第一加密的特征值,网卡可使用基于随机数派生的传输密钥,对所述第一加密的特征值进行解密,从而得到第一解密的特征值(为便于说明,本申请实施例将第一加密的特征值的解密称为第一解密)。
步骤S440、网卡从虚拟机的虚拟机内存空间中读取出第二加密的特征值,基于虚拟机密钥对所述第二加密的特征值进行解密,得到第二解密的特征值。
网卡在访问虚拟机的虚拟机内存空间之前,可先从虚拟机内存空间中读取出第二加密的特征值(即网卡需先从虚拟机内存空间中,读取出基于虚拟机内存空间对应的虚拟机密钥进行第二加密的特征值),从而网卡可利用安全处理器配置给网卡的虚拟机密钥,对第二加密的特征值进行解密,得到第二解密的特征值(为便于说明,本申请实施例将第二加密的特征值的解密称为第二解密)。
步骤S450、网卡判断所述第一解密的特征值与所述第二解密的特征值是否一致,若是,执行步骤S460,若否,执行步骤S470。
步骤S460、网卡基于所述虚拟机密钥,访问所述虚拟机内存空间。
步骤S470、网卡取消访问所述虚拟机内存空间。
网卡在得到第一解密的特征值和第二解密的特征值后,如果网卡访问的虚拟机内存空间,是网卡所配置的虚拟机对应的虚拟机内存空间,则第一解密的特征值与第二解密的特征值应该一致,因此,在本申请实施例中,网卡可判断所述第一解密的特征值与所述第二解密的特征值是否一致;
如果一致,说明网卡访问的虚拟机内存空间,是网卡所配置的虚拟机对应的虚拟机内存空间,网卡可基于安全处理器配置的虚拟机密钥,访问所述虚拟机内存空间;如果不一致,说明网卡访问的虚拟机内存空间,不是网卡所配置的虚拟机对应的虚拟机内存空间,这可能是由于恶意虚拟机管理器将网卡再直接映射给其他虚拟机所导致,因此为保障虚拟机数据的安全性,本申请实施例需取消网卡访问所述虚拟机内存空间。
在一种示例中,假设网卡配置给虚拟机1,并且网卡基于虚拟机1的虚拟机密钥VEK1,访问虚拟机1的虚拟机内存空间,如果恶意虚拟机管理器再将网卡直接映射给虚拟机2,则为避免虚拟机的数据被窃取,安全处理器在基于传输密钥将VEK1加密传输给网卡时,可生成一串特征值,并以传输密钥将特征值进行第一加密后传输给网卡;同时,安全处理器可至少基于VEK1对特征值进行第二加密后,存储在虚拟机1的虚拟机内存空间;从而,网卡在获取安全处理器加密传输的VEK1时,还可获取到第一加密的特征值,进而网卡可基于传输密钥对第一加密的特征值进行解密,得到第一解密的特征值;
在网卡访问虚拟机内存空间时,网卡可从虚拟机内存空间中获取到第二加密的特征值,并以VEK1对第二加密的特征值进行解密,得到第二解密的特征值,如果第一解密的特征值与第二解密的特征值一致,则说明网卡访问的虚拟机内存空间是虚拟机1的虚拟机内存空间,网卡可基于VEK1,实现对虚拟机1的虚拟机内存空间的访问;而如果第一解密的特征值与第二解密的特征值不一致,则说明网卡访问的虚拟机内存空间不是虚拟机1的虚拟机内存空间,网卡需取消访问当前访问的虚拟机内存空间,以避免虚拟机内存空间中的数据泄露。
在本申请实施例中,为防止恶意的虚拟机管理器将配置完虚拟机密钥的网卡再直接映射给其他虚拟机,来窃取其他虚拟机的数据,本申请实施例可在网卡对虚拟机内存空间进行访问之前,基于安全处理器生成的特征值,验证网卡所访问的虚拟机内存空间的合法性,从而进一步保障虚拟机的数据安全性。
本申请实施例可在网卡内置加解密引擎,从而安全处理器在基于至少携带身份证书的认证数据,验证网卡可信、合法后,安全处理器可为网卡配置虚拟机的虚拟机密钥;进而网卡可基于所述虚拟机密钥,对虚拟机的虚拟机内存空间进行访问,在虚拟机内存空间基于虚拟机密钥进行加解密的情况下,保障网卡与虚拟机内存空间之间顺利实现直接交互,并保障虚拟机内存空间中虚拟机数据的安全性。
结合上文描述内容,本申请实施例还提供一种网卡,该网卡可被配置为执行本申请实施例提供的网卡角度执行的方法;可选的,所述网卡可用于:
至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成;
在将所述网卡配置给虚拟机时,获取请求认证数据的消息;
至少根据所述身份证书,确定认证数据;
将至少携带所述身份证书的认证数据传输给安全处理器;
在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;
基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
网卡的具体细节功能和扩展功能可参照前文相应部分的描述,此处不再赘述。
本申请实施例还提供一种安全处理器,该安全处理器可被配置为执行本申请实施例提供的安全处理器角度执行的方法;可选的,所述安全处理器可用于:
在将所述网卡配置给虚拟机时,获取网卡传输的至少携带网卡的身份证书的认证数据,其中,所述身份证书至少基于安全处理器的私钥生成;
基于所述认证数据,验证所述网卡是否合法;
若验证所述网卡合法,将所述虚拟机的虚拟机密钥配置给所述网卡,以便所述网卡基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
安全处理器的具体细节功能和扩展功能可参照前文相应部分的描述,此处不再赘述。
本申请实施例还提供一种电子设备,该电子设备可以例如物理主机等,其中,该电子设备可以包括:CPU,如上述所述的网卡,和如上述所述的安全处理器;所述CPU虚拟化有虚拟机,所述虚拟机使用所述网卡进行网络通信,所述安全处理器为所述虚拟机分配有虚拟机密钥,所述虚拟机密钥用于对所述虚拟机对应的虚拟机内存空间中的数据进行加解密。
上文描述了本申请实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本申请实施例披露、公开的实施例方案。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。

Claims (20)

1.一种网卡的内存访问方法,其特征在于,应用于网卡,所述方法包括:
至少存储网卡的身份证书,所述身份证书至少基于安全处理器的私钥生成,用于标识所述网卡的合法性;
在将所述网卡配置给虚拟机时,获取请求认证数据的消息,以启动认证网卡合法性的流程;
至少根据所述身份证书,确定认证数据,所述认证数据用于验证网卡的合法性;
将至少携带所述身份证书的认证数据传输给安全处理器;
在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥,所述虚拟机密钥与安全处理器分配给所述虚拟机的虚拟机密钥一致;
基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
2.根据权利要求1所述的方法,其特征在于,所述身份证书具体基于安全处理器的私钥对网卡的公钥进行数字签名而生成。
3.根据权利要求2所述的方法,其特征在于,还包括:
向密钥服务器发送网卡的公钥;
在密钥服务器基于安全处理器的私钥对网卡的公钥进行数字签名而生成所述身份证书后,获取密钥服务器传输的所述身份证书,其中,所述密钥服务器存储有安全处理器的公钥和私钥。
4.根据权利要求2或3所述的方法,其特征在于,所述在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥包括:
在安全处理器基于安全处理器的私钥,验证所述认证数据中的身份证书通过后,获取安全处理器配置给所述网卡的所述虚拟机密钥。
5.根据权利要求2或3所述的方法,其特征在于,所述网卡还存储网卡的公钥、私钥以及安全处理器的公钥。
6.根据权利要求5所述的方法,其特征在于,所述至少根据所述身份证书,确定认证数据包括:
生成随机数,基于安全处理器的公钥对所述随机数进行加密,得到随机数密文;
基于网卡的私钥,对所述随机数密文进行数字签名,得到签名信息;
根据所述随机数密文,所述签名信息和所述身份证书,生成所述认证数据;
所述将至少携带所述身份证书的认证数据传输给安全处理器包括:
将携带所述随机数密文,所述签名信息和所述身份证书的认证数据发送给安全处理器。
7.根据权利要求6所述的方法,其特征在于,所述在安全处理器基于所述认证数据验证所述网卡合法后,获取安全处理器配置给所述网卡的虚拟机密钥包括:
在安全处理器基于安全处理器的私钥,验证所述身份证书通过,且安全处理器基于所述网卡的公钥验证所述签名信息通过后,获取安全处理器基于传输密钥加密的虚拟机密钥,其中,所述传输密钥由安全处理器解密所述随机数密文得到的随机数派生;
基于所述随机数派生传输密钥,利用所述传输密钥解密所述加密的虚拟机密钥,得到安全处理器配置给所述网卡的虚拟机密钥。
8.根据权利要求7所述的方法,其特征在于,还包括:
获取安全处理器基于传输密钥进行第一加密的特征值;
基于所述传输密钥对所述第一加密的特征值进行解密,得到第一解密的特征值;
针对网卡访问的虚拟机内存空间,从所述虚拟机内存空间中读取出第二加密的特征值,所述第二加密的特征值至少基于所述虚拟机内存空间对应的虚拟机密钥进行加密;
基于安全处理器配置给所述网卡的虚拟机密钥,对所述第二加密的特征值进行解密,得到第二解密的特征值;
判断第一解密的特征值与所述第二解密的特征值是否一致;
若是,进入所述基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间的步骤;
若否,取消访问所述虚拟机内存空间。
9.根据权利要求1所述的方法,其特征在于,所述网卡配置有加解密引擎,所述安全处理器配置给所述网卡的虚拟机密钥,配置在所述网卡的加解密引擎中。
10.根据权利要求1所述的方法,其特征在于,所述基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间包括:
当所述虚拟机使用网卡发送数据时,从所述虚拟机的虚拟机内存空间中读取加密的数据,基于安全处理器配置给所述网卡的虚拟机密钥,解密所读取的加密的数据,将解密的数据通过网络传递;
当网卡从网络接收到数据时,基于安全处理器配置给网卡的虚拟机密钥,加密接收的数据,将加密的数据写入到所述虚拟机的虚拟机内存空间中。
11.一种网卡的内存访问方法,其特征在于,应用于安全处理器,所述方法包括:
在将所述网卡配置给虚拟机时,获取网卡传输的至少携带网卡的身份证书的认证数据,所述认证数据用于验证网卡的合法性,其中,所述身份证书至少基于安全处理器的私钥生成,用于标识所述网卡的合法性;
基于所述认证数据,验证所述网卡是否合法;
若验证所述网卡合法,将所述虚拟机的虚拟机密钥配置给所述网卡,以便所述网卡基于所述虚拟机密钥,访问所述虚拟机的虚拟机内存空间。
12.根据权利要求11所述的方法,其特征在于,所述身份证书具体基于安全处理器的私钥对网卡的公钥进行数字签名而生成。
13.根据权利要求12所述的方法,其特征在于,所述基于所述认证数据,验证所述网卡是否合法包括:
基于安全处理器的私钥,验证所述身份证书是否通过;
若验证所述身份证书通过,确定验证所述网卡合法;
若验证所述身份证书不通过,确定验证所述网卡不合法。
14.根据权利要求12所述的方法,其特征在于,所述认证数据还携带随机数密文和随机数密文的签名信息;其中,所述随机数密文由所述网卡基于安全处理器的公钥,对生成的随机数进行加密得到,所述签名信息由网卡基于网卡的私钥,对所述随机数密文进行数字签名得到。
15.根据权利要求14所述的方法,其特征在于,所述基于所述认证数据,验证所述网卡是否合法包括:
基于安全处理器的私钥,验证所述身份证书是否通过;
若验证所述身份证书不通过,确定验证所述网卡不合法;
若验证所述身份证书通过,基于验证所述身份证书获得的网卡的公钥,校验所述签名信息是否通过;
若校验所述签名信息通过,确定验证所述网卡合法;
若校验所述签名信息不通过,确定验证所述网卡不合法。
16.根据权利要求15所述的方法,其特征在于,所述将所述虚拟机的虚拟机密钥配置给所述网卡包括:
基于安全处理器的私钥,解密所述随机数密文,得到所述随机数;
基于所述随机数派生传输密钥,基于所述传输密钥对所述虚拟机的虚拟机密钥进行加密;
将加密的虚拟机密钥,传输给网卡。
17.根据权利要求16所述的方法,其特征在于,还包括:
随机生成特征值,将所述特征值写入所述虚拟机的虚拟机内存空间,并基于所述传输密钥对所述特征值进行第一加密;其中,所述特征值在所述虚拟机内存空间中至少基于所述虚拟机密钥进行第二加密;
将第一加密的特征值传输给网卡。
18.一种网卡,其特征在于,所述网卡被配置为执行如权利要求1-10任一项所述的网卡的内存访问方法。
19.一种安全处理器,其特征在于,所述安全处理器被配置为执行如权利要求11-17任一项所述的网卡的内存访问方法。
20.一种电子设备,其特征在于,包括:CPU,如权利要求18所述的网卡,和如权利要求19所述的安全处理器;其中,所述CPU虚拟化有虚拟机,所述虚拟机使用所述网卡进行网络通信,所述安全处理器为所述虚拟机分配有虚拟机密钥,所述虚拟机密钥用于对所述虚拟机对应的虚拟机内存空间中的数据进行加解密。
CN202011247061.XA 2020-11-10 2020-11-10 一种网卡的内存访问方法、安全处理器、网卡及电子设备 Active CN112363800B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011247061.XA CN112363800B (zh) 2020-11-10 2020-11-10 一种网卡的内存访问方法、安全处理器、网卡及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011247061.XA CN112363800B (zh) 2020-11-10 2020-11-10 一种网卡的内存访问方法、安全处理器、网卡及电子设备

Publications (2)

Publication Number Publication Date
CN112363800A CN112363800A (zh) 2021-02-12
CN112363800B true CN112363800B (zh) 2023-03-07

Family

ID=74508522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011247061.XA Active CN112363800B (zh) 2020-11-10 2020-11-10 一种网卡的内存访问方法、安全处理器、网卡及电子设备

Country Status (1)

Country Link
CN (1) CN112363800B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114553502B (zh) * 2022-01-29 2024-03-29 联想开天科技有限公司 一种网络认证方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445905A (zh) * 2018-06-22 2019-03-08 华为技术有限公司 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN109858265A (zh) * 2018-11-22 2019-06-07 海光信息技术有限公司 一种加密方法、装置及相关设备
CN109901909A (zh) * 2019-01-04 2019-06-18 中国科学院计算技术研究所 用于虚拟化系统的方法及虚拟化系统
CN111614621A (zh) * 2020-04-20 2020-09-01 深圳奇迹智慧网络有限公司 物联网通信方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109445905A (zh) * 2018-06-22 2019-03-08 华为技术有限公司 虚拟机数据通信方法和系统以及虚拟机配置方法和装置
CN109858265A (zh) * 2018-11-22 2019-06-07 海光信息技术有限公司 一种加密方法、装置及相关设备
CN109901909A (zh) * 2019-01-04 2019-06-18 中国科学院计算技术研究所 用于虚拟化系统的方法及虚拟化系统
CN111614621A (zh) * 2020-04-20 2020-09-01 深圳奇迹智慧网络有限公司 物联网通信方法和系统

Also Published As

Publication number Publication date
CN112363800A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN109858265B (zh) 一种加密方法、装置及相关设备
CN110138799B (zh) 一种基于sgx的安全云存储方法
CN109766165B (zh) 一种内存访问控制方法、装置、内存控制器及计算机系统
CN110928646B (zh) 一种访问共享内存的方法、装置、处理器和计算机系统
US9698988B2 (en) Management control method, apparatus, and system for virtual machine
EP3326103B1 (en) Technologies for trusted i/o for multiple co-existing trusted execution environments under isa control
WO2016180204A1 (zh) 一种安全通讯方法和装置
US20130298205A1 (en) Architecture for virtual security module
JP2013516685A (ja) コンピューターポリシーを施行するためのシステムおよび方法
US10225247B2 (en) Bidirectional cryptographic IO for data streams
CN112632593B (zh) 数据存储方法、数据处理方法、设备以及存储介质
US10270596B2 (en) Generating memory dumps
CN111245813B (zh) 密码资源池系统、加密方法、电子设备及存储介质
WO2015117523A1 (zh) 访问控制方法及装置
CN113098697B (zh) 一种区块链数据写入、访问方法及装置
CN112765637A (zh) 数据处理方法、密码服务装置和电子设备
CN108521424B (zh) 面向异构终端设备的分布式数据处理方法
US20150047001A1 (en) Application program execution device
CN106992978B (zh) 网络安全管理方法及服务器
CN112363800B (zh) 一种网卡的内存访问方法、安全处理器、网卡及电子设备
CN109474431B (zh) 客户端认证方法及计算机可读存储介质
CN116450281A (zh) 访问处理方法、虚拟机标识配置方法、芯片及计算机设备
CN108390892B (zh) 一种远程存储系统安全访问的控制方法和装置
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
CN115994389A (zh) 一种基于risc-v架构的硬件内存加密系统及其应用

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
GR01 Patent grant
GR01 Patent grant