CN111949369A - 面向图形处理器的可信执行环境构建方法及系统 - Google Patents

面向图形处理器的可信执行环境构建方法及系统 Download PDF

Info

Publication number
CN111949369A
CN111949369A CN202010767635.XA CN202010767635A CN111949369A CN 111949369 A CN111949369 A CN 111949369A CN 202010767635 A CN202010767635 A CN 202010767635A CN 111949369 A CN111949369 A CN 111949369A
Authority
CN
China
Prior art keywords
gpu
module
page table
execution environment
trusted execution
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
CN202010767635.XA
Other languages
English (en)
Other versions
CN111949369B (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.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
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 Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202010767635.XA priority Critical patent/CN111949369B/zh
Priority claimed from CN202010767635.XA external-priority patent/CN111949369B/zh
Publication of CN111949369A publication Critical patent/CN111949369A/zh
Application granted granted Critical
Publication of CN111949369B publication Critical patent/CN111949369B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种面向图形处理器的可信执行环境构建方法及系统,包括:步骤S1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;步骤S2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;步骤S3:获取面向图形处理器的可信执行环境构建结果信息。本发明利用IOMMU的虚拟化支持,为不同GPU进程分配不同的PASID,从而实现每个GPU可信执行环境间的内存隔离的方法。

Description

面向图形处理器的可信执行环境构建方法及系统
技术领域
本发明涉及面向图形处理器技术领域,具体地,涉及一种面向图形处理器的可信执行环境构建方法及系统。
背景技术
人工智能概念出现于上个世纪中后期。受限于当时计算机有限的计算能力,以及匮乏的经验样本和数据,相关的技术在当时难以实现。进入二十一世纪后,限制人工智能发展的几个问题相继被解决。首先,CPU的计算能力遵循摩尔定律不断增强,而云计算的出现更是进一步降低了使用算力的成本;其次,经验样本和数据丰富且容易获得。最后,深度学习神经网络算法的提出,以及利用图形处理器进行机器学习训练的方式,进一步令人工智能变得具有现实意义。
图形处理器,即GPU,在人工智能程序的搭建过程中扮演了非常重要的角色。由于深度学习神经网络的训练需要对大量矩阵数据进行运算,CPU的电路逻辑虽然能胜任这样的计算,但却未对其进行相应的优化。而图形处理器由于处理图像需求,对这类运算进行了大量的优化,因此利用图像处理器来进行神经网络训练能够获得巨大的性能提升。随着人工智能的普及和流行,云服务商开始提供图形处理器的算力,客户无需自行购买图形处理器,仅需将待训练的模型和训练样本上传到云端,即可使用图形处理器进行训练。
然而,云计算方案并不是万全之策。用户使用云厂商提供的服务,就意味着需要信任云上的所有软件栈和硬件栈。而这个信任却难以建立,一方面,其他应用、操作系统、虚拟机监视器都存在各种漏洞,容易被攻击者利用;另一方面,硬件本身也存在漏洞,并且可能遭受来自恶意云服务管理者的威胁。由于云上大量使用了虚拟化技术,运行在同一台物理机上的其他虚拟机,能够通过利用软件或硬件层面的各种漏洞,对其他使用者运行的程序造成威胁。在云端进行机器学习模型训练的过程中,模型和算法往往是客户的重要资产,需要保证其不被窃取;而同时,训练数据集也是需要保证安全的内容,因为其中可能包含了大量隐私数据,或者本身就是客户资产的一部分。
为了保证计算机中运行的程序的机密性和完整性,诞生了可信执行环境技术。可信执行环境,是指在一定的威胁模型假设下,能够保证其中的数据、代码的完整性、机密性,提供比操作系统更强的安全性保证。运行在可信执行环境中的应用能够免受以下各类攻击者的攻击:具有操作系统权限的攻击者、恶意的硬件和驱动、能够物理接触计算机的攻击者。目前已有很多厂商提供了可信执行环境的硬件支持,比如英特尔的SGX技术,ARM的TrustZone技术,AMD的SEV技术等。这些技术能够保证在CPU上运行的程序的安全性。然而机器学习模型训练的过程中,需要将计算过程下发到GPU等加速设备上,上述技术就无法继续保证程序的安全性了。能够支持GPU运算的可行执行环境技术,自2018年以来已经逐步出现。现有技术中亟需一种面向图形处理器的可信执行环境构建方法及系统。
专利文献CNCN110119302A公开了一种虚拟机监视器以及虚拟可信执行环境构建方法。本发明中提供了一种虚拟机监视器,基于可信硬件启动客户虚拟机,并在客户虚拟机中启动应用,虚拟机监视器包括:可信扩展页表管理模块、指令模拟模块;可信扩展页表管理模块用于在应用启动时建立可信扩展页表;指令模拟模块用于在可信扩展页表中为受保护物理内存建立映射、将应用的代码和数据加载至受保护物理内存中、并验证代码和数据的完整性;其中,指令模拟模块在验证通过时,完成虚拟可信执行环境的构建。该专利所产生的技术效果仍然有待提高的空间。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种面向图形处理器的可信执行环境构建方法及系统。
根据本发明提供的一种面向图形处理器的可信执行环境构建方法,包括:
步骤S1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
步骤S2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
步骤S3:获取面向图形处理器的可信执行环境构建结果信息。
优选地,所述步骤S1包括:
步骤S1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
步骤S1.2:调用vmfunc,切换扩展页表,然后进入内核态;
步骤S1.3:GPU驱动执行创建上下文的代码;
步骤S1.4:IOMMU驱动为步骤S1.3中创建的上下文分配新的PASID;
步骤S1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
步骤S1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
步骤S1.7:GPU上下文创建完成,返回用户态;
步骤S1.8:调用vmfunc,切换扩展页表,进入用户态。
优选地,所述步骤S2包括:
步骤S2.1:用户将数据和GPU kernel从磁盘加载到内存;
步骤S2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
步骤S2.3:切换到内核态页表,进入内核态;
步骤S2.4:GPU驱动通过MMIO分配显存空间;
步骤S2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
优选地,所述步骤S2还包括:
步骤S2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
步骤S2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
步骤S2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
步骤S2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤2,若开始执行则进入步骤10;
步骤S2.10:用户启动GPU任务;
步骤S2.11:切换到内核态页表,进入内核态;
步骤S2.12:GPU驱动通过MMIO启动GPU任务。
优选地,所述步骤S2还包括:
步骤S2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
步骤S2.14:GPU执行任务;在任务完成之前,CPU继续执行;
步骤S2.15:任务结束,GPU通过中断通知驱动;
步骤S2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
根据权利要求1所述的一种面向图形处理器的可信执行环境构建方法,包括:
模块M1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
模块M2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
模块M3:获取面向图形处理器的可信执行环境构建结果信息。
优选地,所述模块M1包括:
模块M1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
模块M1.2:调用vmfunc,切换扩展页表,然后进入内核态;
模块M1.3:GPU驱动执行创建上下文的代码;
模块M1.4:IOMMU驱动为模块M1.3中创建的上下文分配新的PASID;
模块M1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
模块M1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
模块M1.7:GPU上下文创建完成,返回用户态;
模块M1.8:调用vmfunc,切换扩展页表,进入用户态。
优选地,所述模块M2包括:
模块M2.1:用户将数据和GPU kernel从磁盘加载到内存;
模块M2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
模块M2.3:切换到内核态页表,进入内核态;
模块M2.4:GPU驱动通过MMIO分配显存空间;
模块M2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
优选地,所述模块M2还包括:
模块M2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
模块M2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
模块M2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
模块M2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤2,若开始执行则进入步骤10;
模块M2.10:用户启动GPU任务;
模块M2.11:切换到内核态页表,进入内核态;
模块M2.12:GPU驱动通过MMIO启动GPU任务。
优选地,所述模块M2还包括:
模块M2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
模块M2.14:GPU执行任务;在任务完成之前,CPU继续执行;
模块M2.15:任务结束,GPU通过中断通知驱动;
模块M2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
与现有技术相比,本发明具有如下的有益效果:
1、本发明利用IOMMU的虚拟化支持,为不同GPU进程分配不同的PASID,从而实现每个GPU可信执行环境间的内存隔离的方法;
2、本发明利用扩展页表,对GPU的MMIO区域进行写保护,避免操作系统恶意操纵GPU的保护方法;
3、本发明采用虚拟化的技术对用户进程、用户和内核进行隔离,在防御常规的软件漏洞攻击的同时,也对部分硬件漏洞引起的攻击进行了防御,比如Meltdown;
4、本发明适用于已有的CPU、PCIe等硬件,无需对硬件进行修改即可部署并运行。
5、由于避免了耗时的加密和解密操作,本发明在达到保护效果的同时,与已有采用密码学方案的技术相比,有一定性能上的优势;
6、本发明的对用户程序是透明的,已有的采用GPU加速计算的应用无需对自身进行修改即可在本发明构建的可信执行环境中运行;
7、本发明的核心在于,在操作系统内核中嵌入了一个有更高权限级别的微型虚拟机监视器,从而使整个系统拥有了原本虚拟机才能拥有的隔离级别。由于硬件能够被唯一的操作系统独占,因此仅有比较微小的性能开销。利用虚拟化技术构建可行执行环境的思路可以应用在现有的大型虚拟机监视器上,并且在通过硬件或软件手段解决解决了可伸缩性之后,可以在多个虚拟机之间共享同一个GPU硬件,同时保证细粒度的隔离。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例中的GPU可信执行环境创建流程示意图。
图2为本发明实施例中的GPU可信执行环境内的任务流程示意图。
图3为本发明实施例中的装置实施例-软件架构示意图。
图4为本发明实施例中的GPU访存地址翻译过程示意图。
图5为本发明实施例中的IOMMU结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
根据本发明提供的一种面向图形处理器的可信执行环境构建方法,包括:
步骤S1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
步骤S2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
步骤S3:获取面向图形处理器的可信执行环境构建结果信息。
本发明利用虚拟化技术构建GPU可信执行环境的方法。
本发明利用扩展页表,对操作系统的内核和用户进行隔离,避免操作系统内核恶意读写用户内存。
本发明利用IOMMU的虚拟化支持,为不同GPU进程分配不同的PASID,从而实现每个GPU可信执行环境间的内存隔离。
利用扩展页表,对GPU的MMIO区域进行写保护,避免操作系统恶意操纵GPU。
优选地,所述步骤S1包括:
步骤S1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
步骤S1.2:调用vmfunc,切换扩展页表,然后进入内核态;
步骤S1.3:GPU驱动执行创建上下文的代码;
步骤S1.4:IOMMU驱动为步骤S1.3中创建的上下文分配新的PASID;
步骤S1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
步骤S1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
步骤S1.7:GPU上下文创建完成,返回用户态;
步骤S1.8:调用vmfunc,切换扩展页表,进入用户态。
优选地,所述步骤S2包括:
步骤S2.1:用户将数据和GPU kernel从磁盘加载到内存;
步骤S2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
步骤S2.3:切换到内核态页表,进入内核态;
步骤S2.4:GPU驱动通过MMIO分配显存空间;
步骤S2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
优选地,所述步骤S2还包括:
步骤S2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
步骤S2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
步骤S2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
步骤S2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤2,若开始执行则进入步骤10;
步骤S2.10:用户启动GPU任务;
步骤S2.11:切换到内核态页表,进入内核态;
步骤S2.12:GPU驱动通过MMIO启动GPU任务。
优选地,所述步骤S2还包括:
步骤S2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
步骤S2.14:GPU执行任务;在任务完成之前,CPU继续执行;
步骤S2.15:任务结束,GPU通过中断通知驱动;
步骤S2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
根据权利要求1所述的一种面向图形处理器的可信执行环境构建方法,包括:
模块M1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
模块M2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
模块M3:获取面向图形处理器的可信执行环境构建结果信息。
优选地,所述模块M1包括:
模块M1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
模块M1.2:调用vmfunc,切换扩展页表,然后进入内核态;
模块M1.3:GPU驱动执行创建上下文的代码;
模块M1.4:IOMMU驱动为模块M1.3中创建的上下文分配新的PASID;
模块M1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
模块M1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
模块M1.7:GPU上下文创建完成,返回用户态;
模块M1.8:调用vmfunc,切换扩展页表,进入用户态。
优选地,所述模块M2包括:
模块M2.1:用户将数据和GPU kernel从磁盘加载到内存;
模块M2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
模块M2.3:切换到内核态页表,进入内核态;
模块M2.4:GPU驱动通过MMIO分配显存空间;
模块M2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
优选地,所述模块M2还包括:
模块M2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
模块M2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
模块M2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
模块M2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤2,若开始执行则进入步骤10;
模块M2.10:用户启动GPU任务;
模块M2.11:切换到内核态页表,进入内核态;
模块M2.12:GPU驱动通过MMIO启动GPU任务。
优选地,所述模块M2还包括:
模块M2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
模块M2.14:GPU执行任务;在任务完成之前,CPU继续执行;
模块M2.15:任务结束,GPU通过中断通知驱动;
模块M2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
IOMMU全称是i/o memory management unit,即IO内存管理单元。iommu有两大功能:控制设备dma地址映射到机器物理地址(dma remapping)和中断重映射(interruptremap)。即,MMU为CPU提供地址翻译,IOMMU为设备提供地址翻译。
Solaris最早在SPARC平台上提供了IOMMU的功能,原因由两个,一个是对老设备的支持,另外一个是对scatter/gather的支持。要在64位系统上支持32位设备,如果没有IOMMU,则需要在32位地址空间内分配一段bounce buffer,在设备每次进行DMA操作前,都需要将实际物理地址上的内容拷贝到bounce buffer,因此带来了很大性能开销。如果有了IOMMU,则设备可以直接使用32位地址长度发起DMA,由IOMMU翻译成真实额物理地址。在设备驱动做DMA绑定的时候,系统返回给驱动的不再是物理地址,而是IO虚拟地址,传输的时候,这个IOVA会经由IOMMU单元,翻译为物理地址。而scatter/gather给驱动提供了一个完整的虚拟地址空间,简化设备驱动程序的开发。
引入IOMMU也增强了系统本身的安全性。由于设备的DMA操作需要经过IOMMU的地址翻译,系统可以通过操控IOMMU页表映射的方式,决定设备能够访问的内存范围,从而提供了隔离的效果,避免恶意的外设对系统进行攻击。
目前,Intel、AMD、ARM等厂商都提供了各自的IOMMU实现和支持。除了上面提到的DMA地址翻译功能外,一个共同的重要特性是提供了对虚拟化的支持。以intel iommu为例,开启虚拟化支持后,IOMMU接受的输入是客户机虚拟地址(GVA),经过一级页表翻译得到中间地址,中间地址作为新的输入进入二级页表,翻译得到宿主机物理地址。这一特性不仅使IOMMU的可扩展性更好,也使设备的隔离性更强。
Intel IOMMU支持传统模式和扩展模式。每次DMA请求的Request ID包含bus id,device id,function id。传统模式下,IOMMU以bus id为索引查找root table,再以deviceid和function id为索引查找context table,最后得到该设备所属的域(domain)。每个域对应一个IOMMU做地址翻译所需要查询的页表结构。
扩展模式下,DMA请求除了携带由bus id.Device id,function id外,还携带了与进程地址空间有关的PASID(进程地址空间标识,process address space identifier)。IOMMU查询context table后,得到PASID目录,再使用PASID为索引继续查表,可以得到两个页表基地址,分别用来进行两次页表查询操作。
目前能够保证在GPU上数据和代码机密性和完整性的可信执行环境方案主要有三种:微软研究院Stavros Volos等人提出的Graviton方案,韩国科学技术院的Insu Jang、Taehoon Kim等人提出的HIX方案以及中国科学院信息工程研究所的侯锐等人提出的HETEE方案。
Graviton通过加密信道的方式保证GPU数据的安全。GPU的内部结构中有一个名为指令处理单元的模块,Graviton扩展了该模块的指令集,添加了一系列可信信道管理指令,用于可信信道的创建、销毁和信道属性配置。应用程序想要利用GPU加速计算时,首先通过远程验证的方式获取加密信道的密钥;然后每次向GPU提交指令或上传数据时,都使用密钥加密后再保存到DMA缓冲区,保证操作系统内核无法破坏其完整性和机密性。由于数据在暴露给操作系统内核的时间内都是加密的,因此Graviton能够保证GPU上执行的代码和数据的安全。
Graviton对GPU硬件提出了新的要求,显然已有的GPU硬件无法满足该系统的要求。另外,GPU厂商的开发周期也意味着支持该系统的GPU硬件没有办法立刻问世。因此,Graviton无法在短时间内完成在已有云环境上的部署,也无法对已有的GPU硬件提供支持。
HIX扩展英特尔的SGX指令集来实现GPU可信执行环境。HIX中,用户通过新增的EGCREATE创建GPU Enclave,GPU Enclave内运行GPU的驱动,并且具有排他的GPU MMIO读写权限。HIX修改了CPU的内存管理单元和PCIE来保证恶意的操作系统内核无法读写MMIO所在的页或是修改PCIE中MMIO的映射和路由配置。DMA的过程中,HIX使用DH密钥交换算法生成的对称密钥加密数据,确保恶意的操作系统无法窃取数据。
HIX系统对大量硬件提出了新的要求,包括SGX指令集、MMU流程、PCIE接口等,因此也无法在短时间内实现推广和使用。另一方面,HIX系统无法对恶意的GPU进行防御,即操作系统能够通过操作IOMMU页表映射,令GPU访问到恶意构造的数据,或是将结果写回到恶意的地址。
HETEE是一种平台即服务(platform as a service,FaaS)的可信执行环境方案。HETEE的核心是HETEE BOX,其内部一个由FPGA实现的安全控制器,若干代理节点、加速器,并由PCIe Fabric Switch将上面这些硬件相连。安全控制器提供安全相关的功能,包括安全启动、加密解密算法、远程验证,以及PCIE网络的管理,确保HETEE内部的资源分部和隔离访问。用户程序通过加密队列向HETEE发送代码和数据,经过安全控制器的解密后,交给代理节点进行执行。
显然,HETEE的裸金属设计无法兼容已有的云计算平台。而且,HETEE BOX内部的所有软件栈都是固定版本的,无法随着硬件厂商同步更新,因此也可能存在一系列版本、接口不兼容,以及由此引发的后续问题。
另外,已有方案都采用了加密传输的方式来确保数据的安全性,造成比较明显的性能开销。
本发明所提出的方法能够有效解决之前方案中所遇到的问题,包括:
如何利用虚拟化技术实现GPU可信执行环境的构建?目前已有的虚拟化硬件支持、GPU硬件等基础上尚无成熟的GPU可信执行环境方案。本发明将基于现有的硬件技术,提出基于虚拟化的GPU可信执行环境构建方案。
如何通过GPU可信执行环境保证程序的安全性?在程序创建、运行、终止的各个流程中,GPU可信执行环境采用什么样的方式保证可信执行环境和一般程序之间、不同可信执行环境之间的互相隔离,以及可信执行环境的创建、运行流程如何工作。本发明将详细叙述这一问题。
本发明利用虚拟化技术,基于已有CPU芯片上的虚拟化硬件技术支持,和PCIe的PASID技术,为通用图形处理器构建可行执行环境。操作系统启动后,经过简单的配置,CPU通过特定指令进入虚拟化模式,令操作系统和应用都运行在虚拟化环境下。该模式下,虚拟机监视器拥有比操作系统更高的权限等级。通过精心控制扩展页表的映射内容和权限,本发明能够实现CPU上运行代码的安全性保证。当程序使用GPU进行计算时,本发明通过为每个GPU上下文构建不同的进程地址空间标识符(process address space identifier,PASID),保证每个GPU上下文都拥有独立的、不可被篡改的地址空间映射,从而实现以GPU上下文为粒度的GPU可信执行环境构建。
本发明的具体装置实施例如图3所示。利用虚拟化技术,在宿主机与硬件之间插入了新的tiny hypervisor层。与传统的虚拟机监视器不同,tiny hypervisor只负责一个操作系统的虚拟化,即原本的操作系统,启动后,经过tiny hypervisor简单配置扩展页表和其他虚拟化必需的结构,就将CPU切换到VMX NON-ROOT模式。Tiny hypervisor利用虚拟化为CPU配置使用扩展页表,以保护CPU对内存的访问操作;利用IOMMU的扩展模式,tinyhypervisor可以通过控制IOMMU页表的方法,实现外设访问内存的进程级隔离。
扩展页表构建模块如下:
在初始化阶段时为操作系统内核配置两张不同的扩展页表,分别是用户扩展页表和内核扩展页表。其中,用户扩展页表映射用户态虚拟地址所对应的客户物理地址,以及部分进出内核态所必要的代码段的客户物理地址,并且所有映射的权限不做修改。而内核扩展页表映射内核态客户虚拟地址所对应的物理地址,以及部分进出内核态所必要的代码段,所有映射权限不做修改。由于tiny hypervisor不需要维护多个虚拟机,因此在扩展页表上,可以直接为客户物理地址映射宿主物理地址,即GPA=HPA。客户机中,用户态使用用户扩展页表,内核态使用内核扩展页表。
扩展页表控制了客户物理地址到宿主物理地址的映射。对于内核扩展页表,存储客户内核页表页的客户物理页的映射保持不变,存储了客户用户页表页的客户物理地址,将被映射到新的宿主物理页上。而对于用户扩展页表,储存内核页表页的客户物理页将被映射到一个新的宿主物理页上。通过控制宿主物理页中的内容,Tiny hypervisor能够控制客户页表。由于Linux的页表设计原因,所有进程页表拥有相同的内核地址空间,即内核所使用的页上层目录(page upper directory)、页中层目录(page middle directory)和末级页表在所有进程中都相同。页表切换模块在用户扩展页表中,把页上层目录的物理页映射到内容为零的宿主物理页,在内核扩展页表中,把除了客户内核页表页以外的其他页上层目录页表页都映射到内容为零的宿主物理页,实现客户操作系统的用户和内核隔离。
扩展页表构建模块完成扩展页表的构建后,可以提供以下保护:
1、内核代码无法读写用户内存。内核态下,CPU读写用户内存时会触发客户页表页错误,且内核无法处理,造成系统崩溃。
2、用户、内核都无法恶意的调用vmfunc来切换扩展页表。由于用户和内核的扩展页表都只有部分物理内存的映射,当一个用户态程序调用vmfunc切换扩展页表后,下一次取指令操作会触发客户页表页错误,造成系统崩溃。内核态代码同理。
3、用户态程序无法通过meltdown等侧信道攻击窃取内核数据。由于用户态下页表不含内核段内存的映射,当用户代码试图用meltdown或类似的攻击方法读内核段地址时,客户页表的翻译无法成功进行,导致无法得到最终的宿主物理地址,也就无法从缓存中窃取数据。
扩展页表切换模块如下:
负责程序在进出内核态、用户态时进行扩展页表切换。在初始化阶段,扩展页表构建模块为已经初始化完成的操作系统内核配置两张不同的扩展页表,分别是用户扩展页表和内核扩展页表。两张扩展页表的内容不完全相同。客户操作系统在进入内核态和返回用户态时,调用vmfunc指令进行扩展页表切换,令用户态使用用户扩展页表,内核态使用内核扩展页表。
由于在用户态下,页表不具有内核段的映射,因此恶意访问内核内存会导致页错误,并且页错误处理函数无法正确处理,从而导致系统崩溃。在内核态下,页表不具有用户段的映射,因此访问用户内存会导致页错误,进而引起系统崩溃。
同理,当用户态程序调用vmfunc切换扩展页表时,切换完成后,由于内核视角的页表中不具有用户段的内存,下一次取指令操作会导致无法处理的页错误,vmfunc后的指令就无法继续执行了,攻击就无法进行。
扩展页表管理模块如下:
负责维护用户扩展页表和内核扩展页表的映射内容和权限。扩展页表管理模块追踪并捕获客户操作系统对页表的修改。捕获之后,tiny hypervisor检查本次操作所涉及到的进程和物理页,确保操作系统没有恶意的修改页表或将一个物理页同时映射给多个进程。扩展页表管理模块将页目录(page directory)页的客户物理地址映射在扩展页表上设置为只读,当客户操作系统每次试图修改页目录页的内容使,都会下陷到Tiny hypervisor中,扩展页表管理模块就能够获得页上层目录的客户物理地址,并同样通过在扩展页表中配置只读权限的方式对其进行追踪。对于更多的低层页表,用同样的方法进行追踪,并捕获客户操作系统的修改。扩展页表管理模块保证以下规则不被破坏:
1、一个物理页无法同时映射给内核页表和用户页表,部分固定用于参数传递的页除外。
2、一个物理页无法同时映射给属于不同进程的页表。
扩展页表管理模块还负责捕获和模拟GPU驱动、操作系统的对MMIO区域的读写。通过在扩展页表上将MMIO段的客户物理地址映射为只读权限,能够实现捕获。捕获后,模块能够进行安全检查保证隔离,然后进行仿真。
扩展页表管理模块负责处理正常的扩展页错误。即,当一次合法的EPT VIOLATION发生时,扩展页管理模块负责在扩展页表上填上正确的映射,保证系统正常运行。
IOMMU页表管理模块如下:
IOMMU页表管理模块负责管理IOMMU的页表映射,并与GPU驱动协作,为每个GPU上下文分配不同的PASID,令每个GPU上下文拥有不同的IOMMU页表,实现地址空间隔离,从而达到以GPU上下文为粒度的可信执行环境构建。
在系统初始化时,IOMMU页表管理模块把硬件IOMMU设置为扩展模式,令其进行地址翻译的过程中会以PASID作为查找域的索引之一。每当GPU驱动创建新的GPU上下文时,调用IOMMU页表管理模块分配不同且唯一的PASID给GPU上下文。属于不同GPU上下文的GPU任务在发起读内存请求时,请求ID具有不同的PASID信息,对应不同的IOMMU域,硬件IOMMU进行地址翻译时会使用不同的IOMMU页表,从而实现GPU上下文间地址空间的隔离。
操作系统对IOMMU页表和硬件配置进行修改时,IOMMU模块进行捕获,并检查操作的合法性,对合法操作进行仿真。IOMMU页表管理模块同样采用写保护的方法对所有IOMMU页表页进行追踪。模块从IOMMU的页表基地址寄存器中获得页表基地址,并把它对应的客户物理地址在扩展页表上的映射设置为写保护。每次驱动添加新的映射时,都会下陷到Tinyhypervisor中,使得模块能够得到下一级页表的地址,并同样用写保护的方法进行追踪。
IOMMU页表管理模块保证以下规则不被破坏:
1、一个物理页不会被映射给多个IOMMU域;
2、操作系统无法绕过IOMMU页表管理模块直接对IOMMU页表进行更改。
3、IOMMU域与其对应的GPU上下文同步创建和销毁。
本发明利用IOMMU的虚拟化支持,为不同GPU进程分配不同的PASID,从而实现每个GPU可信执行环境间的内存隔离的方法;本发明利用扩展页表,对GPU的MMIO区域进行写保护,避免操作系统恶意操纵GPU的保护方法;本发明的核心在于,在操作系统内核中嵌入了一个有更高权限级别的微型虚拟机监视器,从而使整个系统拥有了原本虚拟机才能拥有的隔离级别。由于硬件能够被唯一的操作系统独占,因此仅有比较微小的性能开销。利用虚拟化技术构建可行执行环境的思路可以应用在现有的大型虚拟机监视器上,并且在通过硬件或软件手段解决解决了可伸缩性之后,可以在多个虚拟机之间共享同一个GPU硬件,同时保证细粒度的隔离。
在本申请的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

Claims (10)

1.一种面向图形处理器的可信执行环境构建方法,其特征在于,包括:
步骤S1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
步骤S2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
步骤S3:获取面向图形处理器的可信执行环境构建结果信息。
2.根据权利要求1所述的面向图形处理器的可信执行环境构建方法,其特征在于,所述步骤S1包括:
步骤S1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
步骤S1.2:调用vmfunc,切换扩展页表,然后进入内核态;
步骤S1.3:GPU驱动执行创建上下文的代码;
步骤S1.4:IOMMU驱动为步骤S1.3中创建的上下文分配新的PASID;
步骤S1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
步骤S1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
步骤S1.7:GPU上下文创建完成,返回用户态;
步骤S1.8:调用vmfunc,切换扩展页表,进入用户态。
3.根据权利要求1所述的面向图形处理器的可信执行环境构建方法,其特征在于,所述步骤S2包括:
步骤S2.1:用户将数据和GPU kernel从磁盘加载到内存;
步骤S2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
步骤S2.3:切换到内核态页表,进入内核态;
步骤S2.4:GPU驱动通过MMIO分配显存空间;
步骤S2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
4.根据权利要求3所述的面向图形处理器的可信执行环境构建方法,其特征在于,所述步骤S2还包括:
步骤S2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
步骤S2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
步骤S2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
步骤S2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤2,若开始执行则进入步骤10;
步骤S2.10:用户启动GPU任务;
步骤S2.11:切换到内核态页表,进入内核态;
步骤S2.12:GPU驱动通过MMIO启动GPU任务。
5.根据权利要求4所述的面向图形处理器的可信执行环境构建方法,其特征在于,所述步骤S2还包括:
步骤S2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
步骤S2.14:GPU执行任务;在任务完成之前,CPU继续执行;
步骤S2.15:任务结束,GPU通过中断通知驱动;
步骤S2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
6.一种面向图形处理器的可信执行环境构建系统,其特征在于,包括:
模块M1:根据GPU可信执行环境创建控制信息,创建GPU可信执行环境创建,获取GPU可信执行环境创建控制信息;
模块M2:根据GPU提交控制信息、GPU执行任务控制信息,进行GPU提交和执行任务,获取GPU提交和执行任务结果信息;
根据GPU检查控制信息、GPU启动控制信息,进行GPU任务在可信执行环境中检查和启动,获取GPU提交和执行任务结果信息;
模块M3:获取面向图形处理器的可信执行环境构建结果信息。
7.根据权利要求6所述的面向图形处理器的可信执行环境构建系统,其特征在于,所述模块M1包括:
模块M1.1:用户程序调用驱动相关接口,创建新的GPU上下文;
模块M1.2:调用vmfunc,切换扩展页表,然后进入内核态;
模块M1.3:GPU驱动执行创建上下文的代码;
模块M1.4:IOMMU驱动为模块M1.3中创建的上下文分配新的PASID;
模块M1.5:IOMMU驱动在IOMMU页表上为新的PASID区域填写页表项;
模块M1.6:Tiny hypervisor捕获并仿真IOMMU页表写操作;
模块M1.7:GPU上下文创建完成,返回用户态;
模块M1.8:调用vmfunc,切换扩展页表,进入用户态。
8.根据权利要求6所述的面向图形处理器的可信执行环境构建系统,其特征在于,所述模块M2包括:
模块M2.1:用户将数据和GPU kernel从磁盘加载到内存;
模块M2.2:用户调用GPU驱动接口,在GPU的内部存储上分配空间;
模块M2.3:切换到内核态页表,进入内核态;
模块M2.4:GPU驱动通过MMIO分配显存空间;
模块M2.5:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真。
9.根据权利要求8所述的面向图形处理器的可信执行环境构建系统,其特征在于,所述模块M2还包括:
模块M2.6:IOMMU驱动在当前上下文对应的IOMMU页表上新增映射;
模块M2.7:Tiny hypervisor捕获写IOMMU页表操作,执行检查,并进行仿真;
模块M2.8:GPU驱动通过DMA把数据拷贝到GPU显存上;
模块M2.9:切换到用户扩展页表,进入用户态;根据用户代码,若继续分配内存则进入步骤M2.2,若开始执行则进入步骤M2.10;
模块M2.10:用户启动GPU任务;
模块M2.11:切换到内核态页表,进入内核态;
模块M2.12:GPU驱动通过MMIO启动GPU任务。
10.根据权利要求9所述的面向图形处理器的可信执行环境构建系统,其特征在于,所述模块M2还包括:
模块M2.13:Tiny hypervisor捕获MMIO操作,执行检查,并进行仿真;
模块M2.14:GPU执行任务;在任务完成之前,CPU继续执行;
模块M2.15:任务结束,GPU通过中断通知驱动;
模块M2.16:用户调用GPU驱动接口,得知任务已经完成,读取数据。
CN202010767635.XA 2020-08-03 面向图形处理器的可信执行环境构建方法及系统 Active CN111949369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010767635.XA CN111949369B (zh) 2020-08-03 面向图形处理器的可信执行环境构建方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010767635.XA CN111949369B (zh) 2020-08-03 面向图形处理器的可信执行环境构建方法及系统

Publications (2)

Publication Number Publication Date
CN111949369A true CN111949369A (zh) 2020-11-17
CN111949369B CN111949369B (zh) 2024-05-31

Family

ID=

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540831A (zh) * 2020-12-23 2021-03-23 海光信息技术股份有限公司 虚拟可信环境加载、运行方法、数据处理及安全处理装置
CN113674133A (zh) * 2021-07-27 2021-11-19 阿里巴巴新加坡控股有限公司 Gpu集群共享显存系统、方法、装置及设备
CN113886834A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的gpu可信执行方法、系统、设备及存储介质
CN116611124A (zh) * 2023-05-25 2023-08-18 南京恒木兴信息科技有限公司 一种gpu可信执行环境构建方法、系统及数据传输方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106687975A (zh) * 2014-09-14 2017-05-17 微软技术许可有限责任公司 可信执行环境可扩展计算装置接口
CN109558211A (zh) * 2018-11-27 2019-04-02 上海瓶钵信息科技有限公司 保护可信应用与普通应用的交互完整性和保密性的方法
CN110058921A (zh) * 2019-03-13 2019-07-26 上海交通大学 客户虚拟机内存动态隔离和监控方法及系统
CN110119302A (zh) * 2019-04-23 2019-08-13 上海隔镜信息科技有限公司 虚拟机监视器以及虚拟可信执行环境构建方法
KR20190142910A (ko) * 2018-06-19 2019-12-30 한국과학기술원 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법
US20200057664A1 (en) * 2018-08-20 2020-02-20 Intel Corporation Secure public cloud using extended paging and memory integrity
US20200134208A1 (en) * 2019-12-23 2020-04-30 Intel Corporation Trusted local memory management in a virtualized gpu

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106687975A (zh) * 2014-09-14 2017-05-17 微软技术许可有限责任公司 可信执行环境可扩展计算装置接口
KR20190142910A (ko) * 2018-06-19 2019-12-30 한국과학기술원 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법
US20200057664A1 (en) * 2018-08-20 2020-02-20 Intel Corporation Secure public cloud using extended paging and memory integrity
CN109558211A (zh) * 2018-11-27 2019-04-02 上海瓶钵信息科技有限公司 保护可信应用与普通应用的交互完整性和保密性的方法
CN110058921A (zh) * 2019-03-13 2019-07-26 上海交通大学 客户虚拟机内存动态隔离和监控方法及系统
CN110119302A (zh) * 2019-04-23 2019-08-13 上海隔镜信息科技有限公司 虚拟机监视器以及虚拟可信执行环境构建方法
US20200134208A1 (en) * 2019-12-23 2020-04-30 Intel Corporation Trusted local memory management in a virtualized gpu

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112540831A (zh) * 2020-12-23 2021-03-23 海光信息技术股份有限公司 虚拟可信环境加载、运行方法、数据处理及安全处理装置
CN112540831B (zh) * 2020-12-23 2022-11-11 海光信息技术股份有限公司 虚拟可信环境加载、运行方法、数据处理及安全处理装置
CN113674133A (zh) * 2021-07-27 2021-11-19 阿里巴巴新加坡控股有限公司 Gpu集群共享显存系统、方法、装置及设备
CN113674133B (zh) * 2021-07-27 2023-09-05 阿里巴巴新加坡控股有限公司 Gpu集群共享显存系统、方法、装置及设备
CN113886834A (zh) * 2021-09-29 2022-01-04 南方科技大学 基于arm架构的gpu可信执行方法、系统、设备及存储介质
CN116611124A (zh) * 2023-05-25 2023-08-18 南京恒木兴信息科技有限公司 一种gpu可信执行环境构建方法、系统及数据传输方法
CN116611124B (zh) * 2023-05-25 2024-04-05 南京恒木兴信息科技有限公司 一种gpu可信执行环境构建方法、系统及数据传输方法

Similar Documents

Publication Publication Date Title
US11783081B2 (en) Secure public cloud
US11836276B2 (en) Peripheral device with resource isolation
Priebe et al. SGX-LKL: Securing the host OS interface for trusted execution
US11520906B2 (en) Cryptographic memory ownership table for secure public cloud
CN108509250B (zh) 具有受保护的访客机验证主机控制的安全公共云
CN107077428B (zh) 保护应用秘密的方法、电子系统和计算机存储介质
US7840964B2 (en) Mechanism to transition control between components in a virtual machine environment
US20200409740A1 (en) Systems, methods, and media for trusted hypervisors
US10331591B2 (en) Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention
JP7350868B2 (ja) 複数のセキュリティ・ドメインにわたるセキュア・メモリの共用
JP2022523785A (ja) セキュア・インターフェース制御ストレージのためのホスト仮想アドレス空間使用方法、システム、プログラム
JP7436495B2 (ja) セキュア・ストレージの分離
JP7410161B2 (ja) ページ変更検出によるセキュアなページング
JP2022522374A (ja) 割り込みイネーブルのためのセキュア・インターフェース制御ハイレベル命令インターセプト
Sahita et al. Security analysis of confidential-compute instruction set architecture for virtualized workloads
CN111949369B (zh) 面向图形处理器的可信执行环境构建方法及系统
CN111949369A (zh) 面向图形处理器的可信执行环境构建方法及系统
Yu An I/O Separation Model and its Applications to On-Demand I/O on Commodity Platforms
US20230401081A1 (en) Software isolation of virtual machine resources
US20240104193A1 (en) Direct assignment of physical devices to confidential virtual machines
Li et al. GSLAC: GPU Software Level Access Control for Information Isolation on Cloud Platforms
WO2019148447A1 (zh) 数据保护方法和数据保护装置
CN117708832A (zh) 高性能异构可信执行环境实现方法及系统
Danisevskis Accelerated secure GUI for virtualized mobile handsets
Raut Flexible Hypervisor

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