CN116860666A - 一种gpu内存保护方法、装置、芯片及电子设备 - Google Patents
一种gpu内存保护方法、装置、芯片及电子设备 Download PDFInfo
- Publication number
- CN116860666A CN116860666A CN202310627097.8A CN202310627097A CN116860666A CN 116860666 A CN116860666 A CN 116860666A CN 202310627097 A CN202310627097 A CN 202310627097A CN 116860666 A CN116860666 A CN 116860666A
- Authority
- CN
- China
- Prior art keywords
- gpu memory
- address
- secure device
- access address
- secure
- 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
- 238000000034 method Methods 0.000 title claims abstract description 230
- 238000001514 detection method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000006378 damage Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
Abstract
本申请实施例提供一种GPU内存保护方法、装置、芯片及电子设备,适用于安全处理器,包括:获取GPU内存的系统地址;获取非安全设备的访问地址;通过所述GPU内存的系统地址和所述访问地址确定是否有非安全设备的进程使用所述GPU内存;若是,则停止访问所述GPU内存的安全设备。本申请实施例可在现有GPU内存的基础上,不影响GPU内存带宽的前提下,保证安全设备使用GPU内存时的信息的安全。
Description
技术领域
本申请实施例涉及计算机安全技术领域,具体涉及一种GPU内存保护方法、装置、芯片及电子设备。
背景技术
随着人工智能(AI)的发展,对于系统算力要求越来越高,云计算主机CPU无法为客户提供高性能的计算服务。云服务商开始在云主机部署GPU,通过将GPU直通给虚拟机使用,虚拟机客户可以高效地使用GPU来运行各种计算密集型业务。现有的GPU作为一个外设,通常不具有对GPU内存进行加解密的功能,因此GPU内存中的信息很容易被窃取,但是加密虚拟机和GPU内存之间是明文的,这就导致加密虚拟机数据泄漏。
现有技术中,通过PCIe通道加密的方式使GPU的运行由加密虚拟机管理,其他装置不应该有访问GPU内存的能力,再通过定制的GPU硬件,使得GPU硬件具备加解密的能力。运行时加密虚拟机把密文拷贝到GPU内存中,再由内置的密码引擎把密文解密并送到GPU核心内运行。
这种方法需要定制的GPU才能保护GPU内存,而现有的GPU硬件则不具备安全功能。如果替换掉现有GPU,势必造成大量资源的浪费。
因此,如何在现有GPU硬件基础上,保护GPU内存中的加密虚拟机的数据,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请实施例提供一种GPU内存保护方法,以在现有GPU硬件基础上,保护GPU内存中的加密虚拟机的数据。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例提供一种GPU内存保护方法,适用于安全处理器,包括:
获取GPU内存的系统地址;
获取非安全设备的访问地址;
通过所述GPU内存的系统地址和所述访问地址确定是否有非安全设备的进程使用所述GPU内存;
若是,则停止访问所述GPU内存的安全设备。
可选的,所述获取非安全设备的访问地址包括:
获取非安全设备的进程页表基地址,根据所述非安全设备的进程页表基地址获取主机物理地址;
所述通过所述GPU内存的系统地址和所述访问地址确定是否有非安全设备的进程使用所述GPU内存的步骤还包括:
通过所述GPU内存的系统地址和所述主机物理地址检查非安全设备的进程是否使用GPU内存。
可选的,所述通过所述GPU内存的系统地址和所述主机物理地址检查进程是否使用GPU内存包括:
检查所述GPU内存的系统地址是否包括所述主机物理地址。
可选的,所述获取非安全设备的访问地址包括:
从页表控制模块获取所述访问地址。
可选的,还包括:若否,则获取下一个非安全设备的访问地址。
可选的,所述安全设备包括目标虚拟机。
可选的,所述非安全设备包括主机和/或非目标虚拟机。
可选的,所述获取GPU内存的系统地址包括:
在上电初始化分配系统地址时,获取所述GPU内存的系统地址。
可选的,还包括:
接收消息包;
检测所述消息包的发送频率是否为预设频率,若否,则停止访问所述GPU内存的安全设备。
可选的,还包括:获取所述非安全设备的访问地址对应进程的进程标志;
当同时接收到非安全设备的访问地址和所述进程标志时,存储所述非安全设备的访问地址。
可选的,还包括:当只接收到所述进程标志时,删除所述进程标志对应的非安全设备的访问地址。
本发明实施例还提供一种GPU内存保护方法,适用于BIOS,包括:
发送GPU内存的系统地址至安全处理器,以便所述安全处理器在通过所述GPU内存的系统地址和获取的非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
本发明实施例还提供一种GPU内存保护方法,适用于非安全设备,包括:
发送非安全设备的访问地址至安全处理器,以便所述安全处理器在通过获取的GPU内存的系统地址和所述访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
本发明实施例还提供一种GPU内存保护装置,包括:
系统地址获取模块,用于获取GPU内存的系统地址;
访问地址获取模块,用于获取非安全设备的访问地址;
安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
可选的,所述访问地址获取模块,用于获取非安全设备的访问地址,包括:
获取非安全设备的进程页表基地址,根据所述非安全设备的进程页表基地址获取主机物理地址;
所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当通过所述GPU内存的系统地址和所述主机物理地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
可选的,所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当所述GPU内存的系统地址包括所述主机物理地址时,停止访问所述GPU内存的安全设备。
可选的,所述访问地址获取模块,用于获取非安全设备的访问地址,包括:从页表控制模块获取非安全设备的访问地址。
可选的,所述系统地址获取模块,用于获取GPU内存的系统地址,包括:在上电初始化分配系统地址时,获取GPU内存的系统地址。
可选的,所述地址处理模块还用于:若否,则获取下一个非安全设备的访问地址。
可选的,所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定无非安全设备的进程使用所述GPU内存时,获取下一个非安全设备的访问地址。
可选的,还包括频率检测模块,用于接收消息包;检测所述消息包的发送频率是否为预设频率,若否,则停止使用所述GPU内存的安全设备。
可选的,还包括访问地址存储模块,用于获取所述非安全设备的访问地址对应进程的进程标志,若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志则存储所述非安全设备的访问地址。
可选的,所述访问地址存储模块,获取所述非安全设备的访问地址对应进程的进程标志;若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志则存储所述非安全设备的访问地址还包括:若只接收到进程标志,则删除所述进程标志对应的非安全设备的访问地址。
本发明实施例还提供一种芯片,包括上述所述的GPU内存保护装置。
本发明实施例还提供一种电子设备,包括上述所述的芯片。
本申请实施例提供的GPU内存保护方法,首先获取GPU内存的系统地址;获取非安全设备的访问地址;通过所述GPU内存的系统地址和所述非安全设备的访问地址确定是否有进程使用所述GPU内存;若是,则停止访问所述GPU内存的安全设备。这样,通过GPU内存的系统地址和非安全设备的访问地址,可以确定非安全设备的进程是否访问GPU内存,并在非安全设备要访问GPU内存时,及时停止正在访问GPU内存的安全设备,避免非安全设备和安全设备同时访问GPU内存,从而可以避免其他设备读取GPU内存中安全设备的信息,可以在现有GPU内存的基础上,不影响GPU内存带宽的前提下,保证安全设备使用GPU内存时的信息的安全。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种CPU内存保护装置结构示意图;
图2为一种GPU/CPU和加密虚拟机的计算机系统示意图;
图3为另一种GPU/CPU和加密虚拟机计算机系统示意图;
图4为本申请实施例提供的GPU内存保护方法一流程示意图;
图5为一种重映射示意图;
图6为一种页表结构示意图;
图7为本申请实施例提供的重映射检查示意图;
图8为本申请实施例提供的GPU内存保护方法另一流程示意图;
图9为本申请实施例提供的基本输入输出系统流程示意图;
图10为本申请实施例提供的页表控制模块工作流程图;
图11为本申请实施例提供的GPU内存保护装置一结构示意图;
图12为本申请实施例提供的计算机系统的结构示意图;
图13本申请实施例提供的GPU内存保护装置另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着云技术的广泛应用,更多的企业把业务系统部署到云端,以降低自身的运营成本。云主机上通常运行多个虚拟机系统,主机操作系统可以轻松获取虚拟机中的所有内存数据,容易造成业务数据泄漏。
为了提高云计算的安全性,CPU厂商通过在CPU SOC(System-on-a-Chip,系统级芯片)内新增密码协处理器和安全处理器等硬件模块,对虚拟机内存进行加密,为云主机用户系统提供机密性保护,CSV(China Secure Virtualization,国标安全虚拟化技术)能够实现在硬件虚拟化的基础上,提供安全性更高的国密内存加密功能,从而使得运行的各个CSV虚拟机在各自独立的加密内存中运行。
该加密装置系统结构如图1所示,包括加密虚拟机、监视器、主机、安全处理器、加密引擎和主机内存,加密虚拟机运行时,监视器会给全部虚拟机设置标记,该标记在芯片内系统运行时保持不变,当将数据写入主机内存或从主机内存读出时,加密引擎使用该标记对应的密钥对数据进行加密或解密,这样数据在经过监视器和主机时为密文,难以被窃取。加密虚拟机启动时,需经过安全处理器度量或认证后才可启动,之后安全处理器为其设置内存加密密钥;加密虚拟机自己可以设置部分内存为非加密的普通内存,利用非加密的普通内存与外设或主机交互。因此加密虚拟机是一个可信的执行环境,其内部运行的软件安全可信。
随着人工智能(AI)的发展,对于系统算力要求越来越高,此时仅依靠云计算主机CPU无法为用户提供足够高性能的计算服务。因此云服务商开始在云主机部署GPU,GPU通常由PCIe(peripheral component interconnect express,一种高速串行计算机扩展总线标准)总线接入主机,以提供更高性能的计算服务。利用IOMMU(I/O Memory ManagementUnit,输入输出存储器管理单元),可以直接将GPU配置给虚拟机使用,虚拟机的客户可以高效地使用GPU来运行各种
计算密集型业务。
在部署GPU后,GPU/CPU和加密虚拟机计算机系统如图2所示,包括CPU、CPU内的加密引擎、主机内存、主机操作系统,加密虚拟机、GPU、GPU内存和PCIe通道。很明显地,加密虚拟机和主机内存之间通过加密引擎对加密数据进行密码学处理,保证加密虚拟机的数据机密性。但是加密虚拟机和GPU内存之间的交流是明文的,现有的GPU作为一个外设,通常不具有对GPU内存进行加解密的功能。而主机操作系统是非可信环境,很容易被攻击并窃取GPU内存中的信息,导致加密虚拟机数据泄漏。
此时,可通过在GPU中新增加密引擎保证GPU内存安全。如图3所示的另一种GPU/CPU和加密虚拟机计算机系统,当GPU直接连接加密虚拟机时,此时GPU的运行由加密虚拟机管理,其他装置不应该有访问GPU内存的能力。目前通过PCIe通道加密的方式来解决,通过定制GPU硬件,使得GPU硬件具备加解密的能力。加密虚拟机把密文拷贝到GPU内存中,此时即使主机操作系统窃取GPU内存中的信息,也仅可获取到GPU内存中的密文,无法获得明文的机密数据。GPU在执行业务时,由内置的密码引擎把密文解密并送到GPU核心内运行。
基于上述说明,可以发现,这种GPU加密方法及装置需要更换定制的GPU才能保护GPU内存,因此现有的GPU硬件则不具备安全功能。如果替换掉现有GPU,会造成大量资源的浪费,且成本较高。另外,GPU在云主机中通常用于处理大量数据的密集计算业务,对数据的读写带宽要求很高,因此在GPU内增加密码引擎会降低GPU内存对数据的读写速度,严重降低GPU内存带宽,影响GPU的数据处理性能。
为了解决前述问题,本发明实施例提供了一种内存装置的保护方法,适用于安全处理器,可以在现有设备的基础上,不影响GPU内存带宽的前提下,保证安全设备使用GPU内存时的信息的安全。该流程具体步骤如图4所示,包括:
步骤S1:获取GPU内存的系统地址;
为了实现本申请实施例所提供的内存装置的保护方法,安全处理器需要首先获取GPU内存的系统地址。
在一种具体实施方式中,可以在上电初始化分配系统地址时,获取GPU内存的系统地址,从而在后续多次进行判断时,都与已经获取的GPU内存的系统地址进行比较,可以减少运算次数,提高效率。
步骤S2:获取非安全设备的访问地址;
为了防止安全设备和非安全设备同时访问GPU内存,还需获取非安全设备的访问地址,在一种可选实现中,所述非安全设备可以包括主机操作系统和/或非目标虚拟机。主机和非目标虚拟机即为常见的非安全设备。
容易理解的是,
对应地,在一种可选实现中,本申请还提供一种GPU内存保护方法,适用于非安全设备,发送非安全设备的访问地址至安全处理器。
即非安全设备的访问地址是非安全设备发送至安全处理器。由于非安全设备可以包括主机操作系统和/或非目标虚拟机,其中目标虚拟机与主机连接,进而非目标虚拟机的访问地址也是通过主机发送至安全处理器。
在一种具体实施方式中,为了方便主机发送非安全设备的访问地址,可以从页表控制模块获取非安全设备的访问地址并发送至安全处理器。步骤S3:通过所述GPU内存的系统地址和所述非安全设备的访问地址确定是否有非安全设备的进程使用所述GPU内存,若是,则执行步骤S4,若否,则执行步骤S5;步骤S4:停止访问所述GPU内存的安全设备。
当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,从而防止安全设备使用GPU内存时有非安全设备同时访问GPU内存,从而通过GPU内存窃取数据。
进一步的,在一种可选实现中,所述安全设备包括目标虚拟机。具体的,所述目标虚拟机可以包括预设的加密虚拟机和/或CSV加密虚拟机。
在一种可选实现中,如图4所示,还包括步骤S5:获取下一个非安全设备的访问地址。
当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定所述非安全设备的进程未使用所述GPU内存时,则获取下一个非安全设备的进程的访问地址,进而继续检查其他非安全设备的进程是否使用所述GPU内存。
具体的,为了实现短时间内的多个非安全设备的进程的检查,可以通过链表的方式在安全处理器内存储非安全设备的访问地址,再逐一进行检查。
而获取下一个非安全设备的访问地址,则可以通过该步骤为把当前页表基地址的链表节点插入到存储页表的链表尾部。这样,可以很容易地实现通过链表结构可以更简单高效的实现对进程页表的管理。
可见,通过GPU内存的系统地址和非安全设备的访问地址,可以确定非安全设备的进程是否访问GPU内存,并在非安全设备要访问GPU内存时,及时停止正在访问GPU内存的安全设备,避免非安全设备和安全设备同时访问GPU内存,从而可以避免其他设备读取GPU内存中安全设备的信息,可以在现有GPU内存的基础上,不影响GPU内存带宽的前提下,保证安全设备使用GPU内存时的信息的安全。
需要说明的是,在主机操作系统中,主机操作系统通过重映射实现GPU内存的读写,所述重映射具体如图5所示,通过把GPU内存的系统地址映射到主机页表上实现。
现代CPU一般都采用分页的内存管理,利用页表隔离各个进程的地址空间,页表实现虚拟地址到物理地址的转换。常见的页表结构如下图6所示,页表中存储有进程页表基地址,可用于虚拟地址到物理地址的转换,而现代CPU在读写内存时都需要通过页表做地址转换。
由于GPU是一个外设,主机操作系统很容易将GPU内存的物理地址映射到任意的进程页表或内核页表中,因此,如图7所示,本申请的方法为检测所述重映射。因此,只要通过检测所述重映射,检测进程页表内是否包含GPU内存的系统地址范围内的地址,就可以得知是否有非安全设备的进程访问GPU内存,进而可以判断GPU内存是否被非法读写,再通过例如有非安全设备的进程访问GPU内存时停止加密虚拟机的操作即可保证GPU内存的数据安全。进一步的,通过获取非安全设备的进程的页表基地址就可以遍历出主机物理地址,再通过检查所述主机物理地址是否在GPU内存的系统地址范围内,即可判断非安全设备的进程是否使用GPU内存。
因此,本申请实施例还提供另一种GPU内存保护方法,请参考图8,图8为本申请实施例提供的GPU内存保护方法另一流程示意图。
如图中所示,本申请实施例所提供的GPU内存保护方法包括:
步骤S11:BIOS发送GPU内存的系统地址至安全处理器。
BIOS向安全处理器发送GPU内存的系统地址,从而安全处理器获取到GPU内存的系统地址。
具体如图9所示,BIOS(Basic Input Output System,基本输入输出系统)在计算机上电初始化时需要先进行硬件初始化,再遍历PCIe设备并分配系统地址,此时通过为BIOS增加功能,可将GPU内存的PCIe BAR(基地址寄存器)空间映射到系统地址空间的系统地址发送至安全处理器,之后再进行其他初始化,启动操作系统等任务从而安全处理器可以获取GPU内存的系统地址。在PCIe配置空间里,0x10开始后面有6个32位的BAR寄存器,BAR寄存器中存储的数据是表示PCIe设备在PCIe地址空间中的基地址,而GPU内存就位于这些BAR空间上。因此GPU BAR的系统地址和本申请中的GPU内存的系统地址是同一概念,本文统称为GPU内存的系统地址。
根据上述对页表结构的解释可知,所述步骤S2获取非安全设备的访问地址,可以包括:
步骤S21:获取非安全设备的进程页表基地址;
步骤S22:根据所述非安全设备的进程页表基地址获取主机物理地址;
容易理解的是,所述访问地址包括主机物理地址,所述主机物理地址可以通过进程页表基地址获取。
步骤S3可以包括:
通过所述GPU内存的系统地址和所述主机物理地址检查非安全设备的进程是否使用GPU内存,若是,则执行步骤S4,若否,则执行步骤S5。
这样可以通过检查所述主机物理地址是否在GPU内存的系统地址范围内,判断是否有进程使用GPU内存。
进一步,在一种可选实现中,如图8所示,所述步骤S3的具体方法为步骤S31:检查所述GPU内存的系统地址是否包括所述主机物理地址。
特别的,在一种具体实施方式中,本申请实施例的GPU内存保护方法无法直接获取主机操作系统中的进程页表基地址,因此需要增加页表控制模块辅助安全处理器获取进程页表基地址。
需要说明的是,所述页表控制模块内可以被配置多种方法,所述方法用于发送记录有进程页表基地址的页表,其工作是记录各个进程页表基地址,并将进程页表基地址发送至安全处理器,而进程页表基地址可通过主机操作系统中的进程管理器获取。
页表控制模块发送非安全设备的访问地址通常是在进程创建时执行,其具体工作过程如图10所示,当有进程创建时,进程管理模块都需要向页表控制模块发送消息;其中,当有进程创建时,进程管理模块向页表控制模块发送当前进程的进程标志和页表基地址等信息,以通知页表控制模块创建该进程标志所对应的进程。之后页表控制模块再向安全处理器发送当前进程的进程标志和进程地址,安全处理器接收后,存储所述进程地址。
为了方便进程页表基地址的存储和获取,在一种具体实施方式中,可以通过链表存储所述进程页表基地址。
进一步,为了方便进程的销毁时删除存储的非安全设备的访问地址,本申请的GPU内存保护方法还包括:
当有进程销毁时,进程管理模块仅向页表控制模块发送进程标志,指示该进程标志所对应的当前进程销毁,之后页表控制模块再发送当前进程标志,安全处理器接收后,删除所述进程标志对应的访问地址。
在一种实施方式中,每个进程都有独立的进程页表,为了方便被存储的访问地址的创建和销毁,可以通过进程标志将进程和访问地址所在的页表相关联,再使用链表的结构来进行增删等更新操作。具体流程如图10,当接收到页表控制模块发送的当前进程的进程标志和访问地址时,表明新增该进程,此时将该进程的页表存储至链表;当只接收到当前进程的进程标志,表明该进程已销毁,此时则删除所述进程标志对应的进程的页表。
因此,在一种可选实现中,如图10所示,页表控制模块还需执行步骤S23:发送所述非安全设备的访问地址,和步骤S24:发送进程标志。相对的安全处理器需接收所述非安全设备的访问地址对应进程的进程标志,且若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志,则执行步骤S251:存储所述非安全设备的访问地址;若只接收到进程标志,则进行步骤S252:删除所述进程标志对应的非安全设备的访问地址。
进一步的,在一种可选实现中,为避免链表内为空时出错,需要对链表内进行检查,因此在检测前还需检查页表链表是否为空,若否,则继续执行后续步骤,若是,则继续等待页表控制模块发送非安全设备的访问地址,直至页表链表不为空。这样可以保证在未存储非安全设备的进程及其页表基地址时继续获取新的非安全设备的进程及其页表基地址。
进一步的,为保证页表控制模块乃至主机操作系统的安全性,避免页表控制模块遭受攻击,如图10所示,页表控制模块还需以预设的频率向安全处理器发送信息包,当页表控制模块或者主机遭受攻击时,页表控制模块的行为会产生异常,信息包的频率就会产生波动,此时可以根据发送信息包的频率变化判断页表控制模块是否出现异常。接收到信息包后,需要记录并更新频率,预设频率允许有一定变化范围,当检测到信息包的发送频率不在预设的合法频率范围内,表明页表控制模块出现异常,此时停止加密虚拟机运行。
因此,在一种可选实现中,如图10所示,本申请实施例的GPU内存保护方法还包括:
步骤S61:页表控制模块发送消息包;
步骤S62:安全处理器检测所述消息包的发送频率是否为预设频率,若否,则执行步骤S4:停止访问GPU内存的安全设备。这样可以防止通过直接攻击主机操作系统窃取加密数据。
需要说明的是,图8所展示的步骤可以与如图9和图10中部分或全部步骤所示的方法结合,得到其他全部实施例。
上述本申请实施例的GPU内存保护方法可以在非安全设备访问GPU内存时停止安全设备,从而避免非安全设备和安全设备同时使用GPU内存,进而保证安全设备使用GPU内存时的信息的安全。
本申请实施例还提供一种GPU内存保护装置,如图11所示,包括:
系统地址获取模块20,用于获取GPU内存的系统地址;
为了实现本申请实施例所提供的内存装置的保护方法,安全处理器需要首先获取GPU内存的系统地址。
在一种具体实施方式中,可以在上电初始化分配系统地址时,获取GPU内存的系统地址,从而在后续多次进行判断时,都与已经获取的GPU内存的系统地址进行比较,可以减少运算次数,提高效率。
需要说明的是,安全处理器无法轻易获取GPU内存的系统地址,因此可以通过在计算机启动时,BIOS将GPU内存的系统地址发送至安全处理器。此时需要BIOS在计算机上电初始化枚举PCIe设备,并统一为他们分配系统地址后,为BIOS增加功能,将GPU内存的PCIeBAR(基地址寄存器)空间映射到系统地址空间的系统地址发送至安全处理器,从而使安全处理器获得GPU内存的系统地址。
因此在一种可选实现中,所述系统地址获取模块20用于获取GPU内存的系统地址还包括:在上电初始化分配系统地址时,获取GPU内存的系统地址。
访问地址获取模块30,用于获取非安全设备的访问地址;
安全设备停止模块40,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
在一种可选实现中,如图11所示安全设备50包括目标虚拟机,所述非安全设备10包括主机和/或非目标虚拟机。
进一步的,如图7所示,主机通过将GPU内存重映射到主机进程的进程页表中使用GPU内存,而本申请中安全处理器的任务如图8所示,为检查主机中的内存重映射,此时安全处理器从进程页表中获取的地址为虚拟地址,还需要将虚拟地址转化为主机物理地址才能完成重映射检查。因此,在一种可选实现中,所述访问地址获取模块30,用于获取非安全设备的访问地址还包括:获取非安全设备的进程页表基地址,根据所述非安全设备的进程页表基地址获取主机物理地址;通过所述GPU内存的系统地址和所述主机物理地址检查进程是否使用GPU内存。
此时所述安全设备停止模块40,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有进程使用所述GPU内存时,停止访问所述GPU内存的安全设备还包括:检查所述GPU内存的系统地址是否包括所述主机物理地址。
需要说明的是,如图12所示的计算机系统,此时安全处理器与CPU(所述主机的一部分)相连,无法直接从主机操作系统中获取非安全设备的访问地址,因此需要在主机操作系统中增加页表控制模块。页表控制模块内可以设置任意一种发送页表的方法,其工作是用于记录各个进程页表基地址,进程页表基地址可通过主机操作系统中的进程管理器获取。当进程创建或销毁时,进程管理模块都需要向页表控制模块发送消息;当有进程创建时,进程管理模块向页表控制模块发送当前进程的进程标志和页表基地址等信息,页表控制模块再发送当前进程的进程标志和页表基地址给安全处理器处理;当有进程销毁时进程管理模块向页表控制模块发送进程标志指示当前进程退出,页表控制模块再发送当前进程标志给安全处理器处理。
因此,在一种可选实现中,所述访问地址获取模块30还用于:从页表控制模块获取非安全设备的访问地址。
在安全处理器中,为了方便被存储的进程页表基地址的创建和销毁,使用链表存储页表,这样可以利用链表结构轻松实现增删等更新操作。相对应的,页表控制模块也需要从进程管理器获取进程新增信息和进程删除信息并发送至安全处理器。操作系统中进程管理模块通过具体流程如图10,当接收到页表控制模块发送的当前进程的进程标志和访问地址时,表明新增该进程,此时安全处理器将该进程的页表存储至链表;当只接收到当前进程的进程标志,表明该进程已销毁,此时安全处理器删除所述进程标志对应的进程的页表。
因此,在一种可选实现中,如图13所示,还包括访问地址存储模块60:用于获取所述非安全设备的访问地址对应进程的进程标志;若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志则存储所述非安全设备的访问地址;若只接收到进程标志,则删除所述进程标志对应的非安全设备的访问地址。
进一步的,为保证页表控制模块乃至主机操作系统的安全性,避免页表控制模块遭受攻击,如图10所示,页表控制模块还需以预设的频率向安全处理器发送信息包,当页表控制模块遭受攻击时,页表控制模块的行为会产生异常,信息包的频率就会产生波动,安全处理器可以根据发送信息包的频率变化判断页表控制模块是否出现异常。安全处理器接收到信息包后,需要记录并更新频率,预设频率允许有一定变化范围,当收检测到信息包的发送频率不在预设的合法频率范围内,表明页表控制模块出现异常,此时安全处理器停止加密虚拟机运行。
因此,在一种可选实现中,如图13所示,还包括频率检测模块70,用于接收消息包;检测所述消息包的发送频率是否为预设频率,若否,则停止使用所述GPU内存的安全设备。
上述本申请实施例的GPU内存保护装置,可以在使用现有设备的前提下,通过使用安全处理器检查GPU内存重映射,避免非安全设备和安全设备同时使用GPU内存,从而实现保证安全设备使用GPU内存时的信息的安全。
本申请实施例还提供一种芯片,在本申请实施例中,该芯片可以配置上述的GPU内存保护装置。
本申请实施例还提供一种电子设备,在本申请实施例中,该电子设备可以配置上述的芯片。
虽然本申请实施例披露如上,但本申请并非限定于此。任何本领域技术人员,在不脱离本申请的精神和范围内,均可作各种更动与修改,因此本申请的保护范围应当以权利要求所限定的范围为准。
Claims (24)
1.一种GPU内存保护方法,其特征在于,适用于安全处理器,包括:
获取GPU内存的系统地址;
获取非安全设备的访问地址;
通过所述GPU内存的系统地址和所述访问地址确定是否有非安全设备的进程使用所述GPU内存;
若是,则停止访问所述GPU内存的安全设备。
2.如权利要求1所述的一种GPU内存保护方法,其特征在于,所述获取非安全设备的访问地址包括:
获取非安全设备的进程页表基地址,根据所述非安全设备的进程页表基地址获取主机物理地址;
所述通过所述GPU内存的系统地址和所述访问地址确定是否有非安全设备的进程使用所述GPU内存的步骤还包括:
通过所述GPU内存的系统地址和所述主机物理地址检查非安全设备的进程是否使用GPU内存。
3.如权利要求2所述的一种GPU内存保护方法,其特征在于,所述通过所述GPU内存的系统地址和所述主机物理地址检查进程是否使用GPU内存包括:
检查所述GPU内存的系统地址是否包括所述主机物理地址。
4.如权利要求1所述的一种GPU内存保护方法,其特征在于,所述获取非安全设备的访问地址包括:
从页表控制模块获取所述访问地址。
5.如权利要求1所述的一种GPU内存保护方法,其特征在于,还包括:
若否,则获取下一个非安全设备的访问地址。
6.如权利要求1所述的一种GPU内存保护方法,其特征在于,所述安全设备包括目标虚拟机。
7.如权利要求1所述的一种GPU内存保护方法,其特征在于,所述非安全设备包括主机和/或非目标虚拟机。
8.如权利要求1所述的一种GPU内存保护方法,其特征在于,所述获取GPU内存的系统地址包括:
在上电初始化分配系统地址时,获取所述GPU内存的系统地址。
9.如权利要求1所述的一种GPU内存保护方法,其特征在于,还包括:
接收消息包;
检测所述消息包的发送频率是否为预设频率,若否,则停止访问所述GPU内存的安全设备。
10.如权利要求1所述的一种GPU内存保护方法,其特征在于,还包括:
获取所述非安全设备的访问地址对应进程的进程标志;
当同时接收到非安全设备的访问地址和所述进程标志时,存储所述非安全设备的访问地址。
11.如权利要求10所述的一种GPU内存保护方法,其特征在于,还包括:当只接收到所述进程标志时,删除所述进程标志对应的非安全设备的访问地址。
12.一种GPU内存保护方法,其特征在于,适用于BIOS,包括:
发送GPU内存的系统地址至安全处理器,以便所述安全处理器在通过所述GPU内存的系统地址和获取的非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
13.一种GPU内存保护方法,其特征在于,适用于非安全设备,包括:
发送非安全设备的访问地址至安全处理器,以便所述安全处理器在通过获取的GPU内存的系统地址和所述访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
14.一种GPU内存保护装置,其特征在于,包括:
系统地址获取模块,用于获取GPU内存的系统地址;
访问地址获取模块,用于获取非安全设备的访问地址;
安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
15.如权利要求14所述的一种GPU内存保护装置,其特征在于,所述访问地址获取模块,用于获取非安全设备的访问地址,包括:
获取非安全设备的进程页表基地址,根据所述非安全设备的进程页表基地址获取主机物理地址;
所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当通过所述GPU内存的系统地址和所述主机物理地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备。
16.如权利要求15所述的一种GPU内存保护装置,其特征在于,所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当所述GPU内存的系统地址包括所述主机物理地址时,停止访问所述GPU内存的安全设备。
17.如权利要求14所述的一种GPU内存保护装置,其特征在于,所述访问地址获取模块,用于获取非安全设备的访问地址,包括:从页表控制模块获取非安全设备的访问地址。
18.如权利要求14所述的一种GPU内存保护装置,其特征在于,所述系统地址获取模块,用于获取GPU内存的系统地址,包括:在上电初始化分配系统地址时,获取GPU内存的系统地址。
19.如权利要求14所述的一种GPU内存保护装置,其特征在于,所述安全设备停止模块,用于当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定有非安全设备的进程使用所述GPU内存时,停止访问所述GPU内存的安全设备,包括:
当通过所述GPU内存的系统地址和所述非安全设备的访问地址确定无非安全设备的进程使用所述GPU内存时,获取下一个非安全设备的访问地址。
20.如权利要求14所述的一种GPU内存保护装置,其特征在于,还包括频率检测模块,用于接收消息包;检测所述消息包的发送频率是否为预设频率,若否,则停止使用所述GPU内存的安全设备。
21.如权利要求14所述的一种GPU内存保护装置,其特征在于,还包括访问地址存储模块,用于获取所述非安全设备的访问地址对应进程的进程标志,若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志则存储所述非安全设备的访问地址。
22.如权利要求21所述的一种GPU内存保护装置,其特征在于,所述访问地址存储模块,用于获取所述非安全设备的访问地址对应进程的进程标志;若同时接收到非安全设备的访问地址和所述非安全设备的访问地址对应的进程标志则存储所述非安全设备的访问地址还包括:
若只接收到进程标志,则删除所述进程标志对应的非安全设备的访问地址。
23.一种芯片,其特征在于,所述芯片被配置为如权利要求14-22任一所述的GPU内存保护装置。
24.一种电子设备,其特征在于,包括权利要求23所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627097.8A CN116860666A (zh) | 2023-05-30 | 2023-05-30 | 一种gpu内存保护方法、装置、芯片及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627097.8A CN116860666A (zh) | 2023-05-30 | 2023-05-30 | 一种gpu内存保护方法、装置、芯片及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116860666A true CN116860666A (zh) | 2023-10-10 |
Family
ID=88222394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310627097.8A Pending CN116860666A (zh) | 2023-05-30 | 2023-05-30 | 一种gpu内存保护方法、装置、芯片及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860666A (zh) |
-
2023
- 2023-05-30 CN CN202310627097.8A patent/CN116860666A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109844751B (zh) | 用于提供信息隔离的方法和处理器 | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
US10261919B2 (en) | Selective memory encryption | |
KR102013841B1 (ko) | 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치 | |
US7657754B2 (en) | Methods and apparatus for the secure handling of data in a microcontroller | |
JP5249399B2 (ja) | 安全なメモリ区分を使用した安全な実行のための方法および装置 | |
KR101717263B1 (ko) | 가상 머신들의 측정용 신뢰 루트 | |
CN110348204B (zh) | 一种代码保护系统、认证方法、装置、芯片及电子设备 | |
CN111241564B (zh) | 内存页面交换方法和安全处理器 | |
KR20040094724A (ko) | 멀티-토큰 실 및 실 해제 | |
KR20050085678A (ko) | 고정형 토큰 및 이동형 토큰 모두를 이용한 어테스테이션 | |
WO2022132184A1 (en) | System, method and apparatus for total storage encryption | |
WO2016060859A1 (en) | An interface between a device and a secure processing environment | |
EP4332810A1 (en) | Method for realizing virtualized trusted platform module, and secure processor and storage medium | |
CN114238185A (zh) | 直接存储访问及命令数据传输方法、装置及相关设备 | |
CN110955904B (zh) | 一种数据加密方法、数据解密方法、处理器及计算机设备 | |
US20230236870A1 (en) | Safe entropy source for encrypted virtual machines | |
CN116126463A (zh) | 内存访问方法、配置方法、计算机系统及相关器件 | |
CN116048716A (zh) | 一种直接存储访问方法、装置及相关设备 | |
US20190042800A1 (en) | Technologies for authenticated usb device policy enforcement | |
JP2004272816A (ja) | マルチタスク実行システム及びマルチタスク実行方法 | |
WO2021164167A1 (zh) | 一种密钥存取方法、装置、系统、设备和存储介质 | |
CN116860666A (zh) | 一种gpu内存保护方法、装置、芯片及电子设备 | |
CN112363800A (zh) | 一种网卡的内存访问方法、安全处理器、网卡及电子设备 | |
Bove | Secure Services for Standard RISC-V Architectures |
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 |