CN115659290B - 代码保护系统、方法、虚拟系统、芯片及电子设备 - Google Patents

代码保护系统、方法、虚拟系统、芯片及电子设备 Download PDF

Info

Publication number
CN115659290B
CN115659290B CN202211385501.7A CN202211385501A CN115659290B CN 115659290 B CN115659290 B CN 115659290B CN 202211385501 A CN202211385501 A CN 202211385501A CN 115659290 B CN115659290 B CN 115659290B
Authority
CN
China
Prior art keywords
code
task
heterogeneous acceleration
heterogeneous
protection system
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
CN202211385501.7A
Other languages
English (en)
Other versions
CN115659290A (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 CN202211385501.7A priority Critical patent/CN115659290B/zh
Publication of CN115659290A publication Critical patent/CN115659290A/zh
Priority to PCT/CN2023/079580 priority patent/WO2024098594A1/zh
Application granted granted Critical
Publication of CN115659290B publication Critical patent/CN115659290B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

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

Abstract

本发明提供了一种代码保护系统、方法、虚拟系统架构、芯片及电子设备,该系统可以包括:为所述代码保护系统配置的异构加速资源,所述异构加速资源用于执行软件的代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;异构加速模块,用于为所述代码保护系统配置的异构加速资源分配代码执行任务;异构加速驱动模块,用于驱动所配置的异构加速资源执行所分配的代码执行任务。本发明可以提升代码保护方案的运算能力。

Description

代码保护系统、方法、虚拟系统、芯片及电子设备
技术领域
本发明实施例涉及代码保护技术领域,具体涉及一种代码保护系统、方法、虚拟系统、芯片及电子设备。
背景技术
软件代码保护是指对软件的代码提供安全保护,包括提供对软件代码的数据机密性保护,以及,提供对软件代码的数据完整性保护等。
现有的代码保护方案,可以结合加密技术和硬件隔离技术,为软件的代码提供独立的虚拟运行环境,并使该虚拟运行环境运行于由主机的OS(操作系统)隔离出的硬件环境中,实现软件代码保护。
然而,现有的代码保护方案的运算能力不足,如何提升代码保护方案的运算能力,一直是本领域技术人员研究的问题。
发明内容
有鉴于此,本发明实施例提供一种代码保护系统、方法、虚拟系统、芯片及电子设备,以提升代码保护方案的运算能力。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例还提供一种代码保护系统,包括:
为所述代码保护系统配置的异构加速资源,所述异构加速资源用于执行软件的代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;
异构加速模块,用于为所述代码保护系统配置的异构加速资源分配代码执行任务;
异构加速驱动模块,用于驱动所配置的异构加速资源执行所分配的代码执行任务。
可选的,所述异构加速资源为异构加速设备或虚拟异构模块,且所述异构加速资源由虚拟机管理器配置至所述代码保护系统。
可选的,所述虚拟异构模块为虚拟机管理器基于对应异构加速设备的异构设备驱动创建,不同虚拟异构模块对应所述异构加速设备内的不同的内存区域。
可选的,所述异构加速资源仅执行所配置的代码保护系统的代码执行任务。
可选的,所述代码执行任务中配置有所述代码保护系统的身份信息,所述异构加速资源用于在所分配执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行所述代码执行任务。
可选的,所述异构加速驱动模块用于驱动所配置的异构加速资源执行所分配的代码执行任务,包括:
基于内存映射I/O接口,访问所述异构加速资源。
可选的,还包括,安全内存,所述安全内存中存储有用于执行所述代码执行任务的任务代码和/或任务数据。
可选的,所述异构加速资源包括命令处理器和直接存储访问DMA模块;
所述命令处理器用于基于所述异构加速资源所分配的代码执行任务的任务信息,确定所需访问的任务代码和/或任务数据的地址;
所述DMA模块用于根据所需访问的任务代码和/或任务数据的地址,向输入输出内存管理单元发送内存数据访问请求,并接收输入输出内存管理单元传输所述任务代码和/或任务数据。
可选的,所述命令处理器基于异构加速资源所执行的代码执行任务,确定代码执行任务对应的代码保护系统的身份信息,并将所述身份信息配置至所述内存数据访问请求。
可选的,所述代码保护系统用于提供基于软件的可信执行环境,和/或,所述代码保护系统用于为多方安全计算和/或联邦学习提供运行环境。
本发明实施例还提供了一种代码保护方法,应用于代码保护系统,所述代码保护系统配置有异构加速资源,包括:
获取代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;
将所述代码执行任务分配至所述代码保护系统配置的异构加速资源;
驱动所配置的异构加速资源执行所分配的代码执行任务。
可选的,所述代码执行任务中配置有所述代码保护系统的身份信息,以使得所述异构加速资源在所分配执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行所述代码执行任务。
可选的,所述驱动所配置的异构加速资源执行所分配的代码执行任务,包括:
基于内存映射I/O接口,访问所述异构加速资源。
可选的,用于执行所述代码执行任务的任务代码和/或任务数据存储于安全内存中,所述方法还包括:
基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据;其中,所述内存数据访问请求基于所述代码执行任务的任务信息确定的所述异构加速资源所需访问的任务代码和/或任务数据的地址发送。
可选的,所述内存数据访问请求配置有代码保护系统的身份信息,所述身份信息基于所述异构加速资源所执行的代码执行任务确定;所述基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据,包括:
确定所述身份信息与所述内存数据访问请求所访问的地址是否匹配;
若匹配,向所述异构加速资源传输任务代码和/或任务数据。
本发明实施例还提供了一种虚拟系统,包括:安全虚拟机、虚拟机管理器、异构加速设备;其中,所述安全虚拟机为本发明实施例所述的代码保护系统。
可选的,所述虚拟机管理器用于为所述安全虚拟机配置异构加速资源,所述异构加速资源为所述异构加速设备或虚拟异构模块,所述虚拟异构模块为虚拟机管理器基于对应异构加速设备的异构设备驱动创建,不同虚拟异构模块对应所述异构加速设备内的不同的内存区域。
可选的,所述虚拟机管理器用于为所述安全虚拟机配置嵌套页表,所述嵌套页表用于指示所述安全虚拟机的用户物理地址至异构加速资源的主机物理地址的映射关系。
可选的,还包括:安全内存和输入输出内存管理单元;所述安全内存配置至所述安全虚拟机,所述安全内存中存储有用于执行所述代码执行任务的任务代码和/或任务数据;
所述输入输出内存管理单元用于接收所述异构加速资源发送的内存数据访问请求,并基于所述内存数据访问请求,向所述异构加速资源传输所述任务代码和/或任务数据。
可选的,所述内存数据访问请求配置有对应安全虚拟机的身份信息,所述输入输出内存管理单元用于基于所述内存数据访问请求,向所述异构加速资源传输所述任务代码和/或任务数据,包括:
确定所述身份信息与所述内存数据访问请求所访问的地址是否匹配;
若匹配,向所述异构加速资源传输任务代码和/或任务数据。
本发明实施例还提供一种芯片,包括上述所述的代码保护系统。
本发明实施例还提供一种电子设备,包括上述所述的芯片。
本发明实施例所提供的代码保护系统包括:为所述代码保护系统配置的异构加速资源,所述异构加速资源用于执行软件的代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;异构加速模块,用于为所述代码保护系统配置的异构加速资源分配代码执行任务;异构加速驱动模块,用于驱动所配置的异构加速资源执行所分配的代码执行任务。
可以看出,本发明实施例通过直接为所述代码保护系统配置异构加速资源,并设置相应的模块使得代码保护系统直接驱动其所配置的异构加速资源执行所分配的代码执行任务,从而不必通过主机进行异构加速设备的调用,在保障数据安全的前提下,提升了系统的运算能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为一种基于安全虚拟化技术的虚拟化环境的系统示意图;
图2为本发明实施例提供的一种代码保护系统的可选结构;
图3为本发明实施例提供的一种基于安全虚拟化技术的虚拟化环境的系统的示意图;
图4为本发明实施例提供的代码保护方法的流程图。
具体实施方式
软件代码保护是指对软件的代码提供安全保护,不仅提供对软件代码的数据机密性保护,还提供对软件代码的数据完整性保护;此处所指的软件并不限于应用软件,还可以是系统软件。
现有的代码保护方案,可以结合加密技术和硬件隔离技术,为软件的代码提供独立的虚拟运行环境,并使虚拟运行环境运行于由主机的OS(操作系统)隔离出的硬件环境中,实现软件代码保护。
在一个具体的实现中,软件代码保护方案可基于安全虚拟化技术实现,安全虚拟化技术是在常规虚拟化技术基础上改进的,可对虚拟机内存进行安全保护的虚拟化技术;参考图1示出了基于安全虚拟化技术的虚拟化环境的系统架构示意图,该系统架构可以包括:CPU(Central Processing Unit,中央处理器)1、内存2、主机3和安全虚拟机4。
其中,CPU1作为数据处理核心,用于为主机3和安全虚拟机4提供数据处理的硬件基础;内存2作为数据存储设备,用于存储主机3和安全虚拟机4的数据;主机3可以基于安全虚拟化技术,虚拟化出多台安全虚拟机4;安全虚拟机4独立运行于由主机3的OS(操作系统)隔离出的硬件环境中。
安全虚拟机4可以通过加密技术和硬件隔离技术为软件代码提供独立的虚拟运行环境。例如,通过内存加密技术,将内存数据加密存储,并且,不同安全虚拟机的内存通过不同的密钥进行加密,即便主机也无法访问密钥,从而保障安全虚拟机数据的安全性。或者,继续参考图1,通过硬件隔离技术,在内存2中设置安全内存5,其中,不同安全虚拟机配置不同区域的安全内存,且安全内存仅允许对应配置的安全虚拟机访问,从而保障安全虚拟机数据的安全性。
其中,安全虚拟机4可以理解为可信执行环境(Trusted Execution Environment,TEE),可以作为一种可选的代码保护系统,实现软件的机密数据(例如代码)的保护。安全虚拟机4可以采用不同的加密标准进行加密,需要说明的是,采用中国国标加密的安全虚拟化技术生成的虚拟机可以称为
CSV(China Secure Virtualization,国标安全虚拟化技术)虚拟机。
然而,此种软件代码保护方案的运算能力不足。这是由于,此种软件代码保护方案中,安全虚拟机仅能利用CPU的硬件资源进行数据的计算,计算资源有限,从而导致其运算能力不足。
在一种可选的实现中,继续参考图1,安全虚拟机可以通过加速接口,利用主机中的辅助加速程序和异构加速模块,调用异构加速设备进行数据的辅助计算。其中,异构加速设备可以理解为一种与CPU结构不同的计算设备,针对特定类型的数据处理任务,具有强大的算力。然而,此种方式需要与主机进行数据交互,数据安全难以保障。
在此基础上,若要保障数据安全,安全虚拟机作为代码保护系统,只能对软件的代码和数据进行区分,将软件需要安全保护的机密数据(软件需要安全保护的数据可称为机密数据,软件的非安全数据可称为普通数据)隔离在安全虚拟机内,在将机密数据相关的流程运行完毕后,进行数据的脱敏处理,以使得脱敏处理后的数据不再敏感,再由异构加速设备对脱敏后的数据和普通数据进行计算。
显然,上述流程过于复杂、且数据泄漏风险大,使得安全虚拟机运算能力的提升并不明显。
基于此,本发明实施例提供了一种代码保护系统,通过直接为所述代码保护系统配置异构加速资源,并设置相应的模块使得代码保护系统直接驱动其所配置的异构加速资源执行所分配的代码执行任务,从而不必通过主机进行异构加速设备的调用,在保障数据安全的前提下,提升了系统的运算能力。
参考图2示出的一种代码保护系统的可选结构,所述代码保护系统可以包括:异构加速资源10、异构加速模块11和异构加速驱动模块12。
所述异构加速资源10可以为硬件中的异构加速设备,也可以为软件中的虚拟异构模块。其中,虚拟异构模块可以理解为从异构加速设备中分解出的算力和/或空间资源,其在软件层面可以看作独立的模块,能够基于其所分解出的算力和/或空间资源执行相应的任务。以虚拟异构模块作为异构加速资源进行配置,可以根据实际需求对异构加速设备中的算力和/或空间资源进行分配,从而最大化的利用硬件资源。
其中,所述异构加速设备可以为外设设备,对应的,所述异构加速资源可以为外设设备资源。所述外设设备例如可以为图形处理器(graphics processing unit,GPU)、通用图形处理器(General-purpose computing on graphics processing units,GPGPU)、深度计算单元、人工智能(Artificial Intelligence,AI)加速卡、现场可编程门阵列(Field-Programmable Gate Array,FPGA)等用于提供算力和/或空间资源的设备等,相应的,所述异构加速资源可以用于执行软件的代码执行任务,例如图形处理、AI加速等。
需要说明的是,为所述代码保护系统配置的异构加速资源为独占资源,其仅执行所配置的代码保护系统的代码执行任务,而不执行其他代码保护系统或主机系统的任务,从而隔离代码保护系统所配置的异构加速资源。在一个可选的示例中,可以基于硬件隔离技术对所述代码保护系统配置的异构加速资源进行隔离,进而实现对数据的隔离保护。
在一个具体的示例中,所述异构加速资源可以基于所述代码保护系统的身份信息进行所述异构加速资源所配置的代码保护系统的确认,在所需执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行对应的代码执行任务。需要说明的是,所述代码保护系统的身份信息可以为软件的身份信息,也可以为系统配置的用于表明所述代码保护系统身份的身份信息。
其中,为所述代码保护系统配置的异构加速资源,可以为一个,也可以为多个,本发明在此并不做具体的限定。
可以理解的是,通过为所述代码保护系统配置异构加速资源,使得所述代码保护系统直接驱动其所配置的异构加速资源,从而可以将异构加速资源结合至所述代码保护系统所提供的可信执行环境中,在保证数据安全的前提下,提高了代码保护系统的运算能力。
所述代码执行任务可以理解为运行软件流程中所需执行的任务,通过一个或多个代码执行任务,实现软件的运行。其中,所述代码执行任务包括运行软件的代码和/或存取软件的数据。
需要说明的是,在本发明实施例中,由于所述代码保护系统可以通过直接为所述代码保护系统配置异构加速资源,并设置相应的模块使得代码保护系统直接驱动其所配置的异构加速资源,从而使得所述软件中的数据均可以在可信执行环境中被处理,相应的,本发明实施例中软件中的代码和数据不必基于安全保护的需要区分安全代码和普通代码,以及区分安全数据和普通数据。
所述异构加速模块11用于为所述代码保护系统配置的异构加速资源分配代码执行任务。其中,所述异构加速模块可以基于代码执行任务的种类、代码保护系统的任务执行效率等,确定异构加速资源所需执行的代码执行任务,从而为异构加速资源分配相应的代码执行任务。
异构加速驱动模块12,用于驱动所配置的异构加速资源执行所述代码执行任务。其中,在确定所述代码保护系统配置的异构加速资源所分配的代码执行任务后,所述异构加速驱动模块可以将所分配的代码执行任务的任务信息发送至所述异构加速资源,从而驱动所述异构加速资源执行所分配的代码执行任务。
在一个可选的示例中,异构加速模块11和异构加速驱动模块12可以配置在安全虚拟机内,所述安全虚拟机用于为代码保护系统提供隔离环境的操作系统,为运行在其内的软件提供代码保护。
在进一步的可选示例中,所述代码保护系统还进一步包括为所述代码保护系统配置的安全内存13,其中,所述安全内存13可以基于加密技术和/或硬件隔离技术配置至所述代码保护系统。其中,所述安全内存13仅允许基于所述代码保护系统的身份信息的访问,以保证所述代码保护系统的数据安全。
可以理解的是,所述异构加速资源可以基于代码执行任务中配置的身份信息进行分配所述代码执行任务的代码保护系统的身份确认,同时,还可以基于所述身份信息和所述代码执行任务的任务信息,访问安全内存中存储的用于执行所述代码执行任务的任务代码和/或任务数据,从而执行所述代码执行任务。
可以看出,本发明实施例提供的一种代码保护系统,可以包括为所述代码保护系统配置异构加速资源,并通过设置异构加速模块和异构加速驱动模块,使得代码保护系统可以直接为异构加速资源分配代码执行任务,并驱动所述异构加速资源执行所分配的代码执行任务,从而不必通过主机进行异构加速设备的调用,在保障数据安全的前提下,提升了系统的运算能力。
在进一步的可选示例中,参考图3,本发明实施例进一步提供了一种基于安全虚拟化技术的虚拟化环境的系统(也可称为虚拟系统),所述虚拟系统包括安全虚拟机20、虚拟机管理器(Virtual Machine Monitor,VMM)21、异构加速设备22、输入输出内存管理单元(Input/Output Memory Management Unit,IOMMU)23和安全内存24。
其中,所述安全虚拟机20可以理解为代码保护系统,用于为软件运行提供可信执行环境,所述虚拟机管理器21为主机系统中配置的管理模块,用于维护/配置安全虚拟机的页表、资源分配等,所述异构加速设备22用于为代码保护系统提供异构加速资源,所述输入输出内存管理单元23用于协同实现异构加速设备与安全内存24之间的数据传输。
所述异构加速设备22可以作为一个或多个异构加速资源配置至安全虚拟机。在所述异构加速设备作为多个异构加速资源进行配置时,可以由虚拟机管理器基于对应异构加速设备的异构设备驱动,为所述异构加速设备创建多个虚拟异构模块,不同虚拟异构模块对应所述异构加速设备的不同硬件资源,一虚拟异构模块作为一异构加速资源。例如,不同虚拟异构模块对应异构加速设备内的不同的内存区域,从而可以在软件层面作为不同异构加速资源配置至不同的安全虚拟机。
在所述安全虚拟机需要配置异构加速资源时(例如启动安全虚拟机时,或者,创建安全虚拟机时),可以由所述虚拟机管理器进行异构加速资源的配置。需要说明的是,在其他示例中,还可以主机的OS系统或其他具有异构加速资源配置权限的主体进行配置,本发明以虚拟机管理器为例进行说明。
具体的,虚拟机管理器可以通过其所配置的异构设备驱动,将对应的异构加速资源(例如虚拟异构模块)配置至所述安全虚拟机,使得所述安全虚拟机对异构加速资源直接访问,从而实现所述异构加速资源直通给所述安全虚拟机使用。其中,安全虚拟机对异构加速资源的直接访问,可以基于MMIO(memory mapped io,内存映射I/O)接口技术实现。具体在一个可选的示例中,虚拟机管理器可以为安全虚拟机创建并维护对应异构加速资源的嵌套页表,从而使得安全虚拟机的异构加速驱动模块可以基于嵌套页表,利用MMIO接口对所述异构加速资源进行访问。
可以理解的是,嵌套页表用于指示用户物理地址GPA至主机物理地址HPA的映射关系。在嵌套页表创建时,对应的地址映射关系尚未建立,从而,在安全虚拟机对异构加速资源访问时,可以产生缺页异常(即安全虚拟机给出的访问地址GPA无法查询到对应的HPA),虚拟机管理器可以基于该缺页异常捕获安全虚拟机对异构加速资源的访问,进而基于为安全虚拟机配置的异构加速资源,为安全虚拟机的GPA配置对应该异构加速资源的HPA。在嵌套页表对应的地址映射关系建立后,安全虚拟机则可以在后续的访问过程中,直接基于嵌套页表进行异构加速资源的访问。
基于上述描述,可以实现为安全虚拟机配置异构加速资源,并使得安全虚拟机直接访问所述异构加速资源。然而,在一些可选的示例中,所述安全虚拟机配置的异构加速资源还进一步访问安全内存中的数据,下面,对异构加速资源访问安全内存的过程进行介绍。
可以理解的是,在进行软件的任务处理过程中,对应的代码执行任务可能需要读取安全内存中的其他任务代码或者读取安全内存中存储的软件的任务数据,若由安全虚拟机读取后再传输至异构加速资源,则需消耗相应的CPU资源,同时消耗相应的处理时长。
在一些可选的示例中,为提高数据传输效率,同时降低对CPU资源的消耗,所述异构加速资源可以基于直接存储访问(Direct Memory Access,DMA)技术,利用输入输出内存管理单元(Input/Output Memory Management Unit,IOMMU)进行安全内存的数据的直接存取。
具体的,所述异构加速资源中可以进一步包括命令处理器(图中未示出)和DMA模块,其中,命令处理器可以基于所述异构加速资源所分配的代码执行任务的任务信息,确定所需访问的任务代码和/或任务数据的地址,DMA模块则根据所需访问的任务代码和/或任务数据的地址,向输入输出内存管理单元发出内存数据访问请求,由输入输出内存管理单元读取相应的任务代码和/或任务数据后,传输至所述异构加速资源。
在一个可选的示例中,为保证安全虚拟机的数据安全,所述命令处理器可以基于异构加速资源所执行的代码执行任务,确定代码执行任务对应的安全虚拟机的身份信息,并将所述身份信息同时配置至内存数据访问请求,并由DMA模块发送至输入输出内存管理单元,由输入输出内存管理单元确认其所访问的代码或数据的地址与所述身份信息是否匹配,进而在确认身份信息后,进行安全内存与异构加速资源之间的数据传输。
在进一步的可选示例中,所述安全内存中的存储的数据(包括任务代码和/或任务数据)为加密数据。相应的,所述输入输出内存管理单元可以基于所述身份信息,确定安全虚拟机在安全内存中存储数据的密钥,进而基于该密钥实现安全内存中加密数据的解密,从而将相应的数据(包括任务代码和/或任务数据)传输至所述异构加速资源。
基于本发明实施例提供的代码保护系统,安全性得以保障,运算性能得到提升,从而可以用于提供基于软件的可信执行环境,和/或,所述代码保护系统用于为多方安全计算和/或联邦学习提供运行环境。
其中,多方安全计算(Secure Multi-party Computation,MPC)是现代密码学的一个重要工具,对于隐私数据共享的巨大需求使得MPC受到密码学界的高度重视并发展成为解决各种隐私保护问题的关键技术。MPC是基于密码学的算法协议来实现隐私计算目的,可以看作多种密码学基础工具的综合应用。
联邦学习(federal learning,FL)是一种新兴的人工智能基础技术,通过由每一个拥有数据源的机构训练一个模型,并将各自模型相关信息(模型的权重更新和梯度信息)采取加密的方式反复交互优化,进而通过模型聚合得到一个全局模型。其中,已训练好的联邦学习模型不共享,分别置于各参与方,在实际使用时共同配合形成预测。
在一个具体的示例中,本发明实施例提供的代码保护系统使得MPC软件可以直接利用CPU的计算能力来执行,也可以利用异构加速资源来执行,对于FL中需要用到AI或者其他异构加速时则可以使用其中的异构加速资源,例如GPGPU或者其他加速卡。
可以看出,本发明实施例提供的系统,在保证数据安全的前提下,提升了数据运算性能,同时,提高了数据传输效率。
基于本发明实施例提供的代码保护系统,本发明实施例还可提供代码保护方法,使得软件可以基于该方法在可信执行环境下运行。
可选的,图4示出了本发明实施例提供的代码保护方法的流程图,参照图4,该流程可用于描述代码保护系统中软件的代码在需要异构加速时的流程,该流程中的软件可以运行在前述实施例提供的代码保护系统下;下文描述的代码保护方法的内容,可与上文描述的代码保护系统的内容相互对应参照。
参照图4,该流程可以包括:
步骤S10:获取代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;
步骤S11:将所述代码执行任务分配至所述代码保护系统配置的异构加速资源;
步骤S12:驱动所配置的异构加速资源执行所分配的代码执行任务。
可选的,所述代码执行任务中配置有所述代码保护系统的身份信息,以使得所述异构加速资源在所分配执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行所述代码执行任务。
可选的,步骤S12驱动所配置的异构加速资源执行所分配的代码执行任务可以包括:
基于内存映射I/O接口,访问所述异构加速资源。
可选的,用于执行所述代码执行任务的任务代码和/或任务数据存储于安全内存中,所述方法还包括:
步骤S13:基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据;
其中,所述内存数据访问请求基于所述代码执行任务的任务信息确定的所述异构加速资源所需访问的任务代码和/或任务数据的地址发送。
可选的,所述内存数据访问请求配置有代码保护系统的身份信息,所述身份信息基于所述异构加速资源所执行的代码执行任务确定;所述步骤S13基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据,包括:
确定所述身份信息与所述内存数据访问请求所访问的地址是否匹配;
若匹配,向所述异构加速资源传输任务代码和/或任务数据。
通过本发明实施例提供的认证方法,可以在保证数据安全的前提下,提升了数据运算性能,同时,提高了数据传输效率。
作为一种可选实现,本发明实施例还提供一种芯片,该芯片可以包括本发明实施例提供的代码保护系统。
作为一种可选实现,本发明实施例还提供一种电子设备,该电子设备可以包括上述所述的芯片。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (22)

1.一种代码保护系统,其特征在于,包括:
为用于为软件及软件的代码执行任务提供代码保护的所述代码保护系统配置的异构加速资源,所述异构加速资源用于执行软件的代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据,所述代码保护系统直接访问所述异构加速资源;
异构加速模块,用于为所述代码保护系统配置的异构加速资源分配代码执行任务;
异构加速驱动模块,用于驱动所配置的异构加速资源执行所分配的代码执行任务。
2.根据权利要求1所述的代码保护系统,其特征在于,所述异构加速资源为异构加速设备或虚拟异构模块,且所述异构加速资源由虚拟机管理器配置至所述代码保护系统。
3.根据权利要求2所述的代码保护系统,其特征在于,所述虚拟异构模块为虚拟机管理器基于对应异构加速设备的异构设备驱动创建,不同虚拟异构模块对应所述异构加速设备内的不同的内存区域。
4.根据权利要求1所述的代码保护系统,其特征在于,所述异构加速资源仅执行所配置的代码保护系统的代码执行任务。
5.根据权利要求1所述的代码保护系统,其特征在于,所述代码执行任务中配置有所述代码保护系统的身份信息,所述异构加速资源用于在所分配执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行所述代码执行任务。
6.根据权利要求1所述的代码保护系统,其特征在于,所述异构加速驱动模块用于驱动所配置的异构加速资源执行所分配的代码执行任务,包括:
基于内存映射I/O接口,访问所述异构加速资源。
7.根据权利要求1所述的代码保护系统,其特征在于,还包括,安全内存,所述安全内存中存储有用于执行所述代码执行任务的任务代码和/或任务数据。
8.根据权利要求7所述的代码保护系统,其特征在于,所述异构加速资源包括命令处理器和直接存储访问DMA模块;
所述命令处理器用于基于所述异构加速资源所分配的代码执行任务的任务信息,确定所需访问的任务代码和/或任务数据的地址;
所述DMA模块用于根据所需访问的任务代码和/或任务数据的地址,向输入输出内存管理单元发送内存数据访问请求,并接收输入输出内存管理单元传输所述任务代码和/或任务数据。
9.根据权利要求8所述的代码保护系统,其特征在于,所述命令处理器基于异构加速资源所执行的代码执行任务,确定代码执行任务对应的代码保护系统的身份信息,并将所述身份信息配置至所述内存数据访问请求。
10.根据权利要求1所述的代码保护系统,其特征在于,所述代码保护系统还用于提供基于软件的可信执行环境,和/或,所述代码保护系统还用于为多方安全计算和/或联邦学习提供运行环境。
11.一种代码保护方法,其特征在于,应用于代码保护系统,用于为软件及软件的代码执行任务提供代码保护的所述代码保护系统配置有异构加速资源,所述代码保护系统直接访问所述异构加速资源,包括:
获取代码执行任务,所述代码执行任务包括运行软件的代码和/或存取软件的数据;
将所述代码执行任务分配至所述代码保护系统配置的异构加速资源;
驱动所配置的异构加速资源执行所分配的代码执行任务。
12.根据权利要求11所述的代码保护方法,其特征在于,所述代码执行任务中配置有所述代码保护系统的身份信息,以使得所述异构加速资源在所分配执行的代码执行任务所属的代码保护系统的身份信息与预先配置的代码保护系统的身份信息相匹配时,执行所述代码执行任务。
13.根据权利要求11所述的代码保护方法,其特征在于,所述驱动所配置的异构加速资源执行所分配的代码执行任务,包括:
基于内存映射I/O接口,访问所述异构加速资源。
14.根据权利要求11所述的代码保护方法,其特征在于,用于执行所述代码执行任务的任务代码和/或任务数据存储于安全内存中,所述方法还包括:
基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据;其中,所述内存数据访问请求基于所述代码执行任务的任务信息确定的所述异构加速资源所需访问的任务代码和/或任务数据的地址发送。
15.根据权利要求14所述的代码保护方法,其特征在于,所述内存数据访问请求配置有代码保护系统的身份信息,所述身份信息基于所述异构加速资源所执行的代码执行任务确定;所述基于所述异构加速资源的内存数据访问请求,向所述异构加速资源传输任务代码和/或任务数据,包括:
确定所述身份信息与所述内存数据访问请求所访问的地址是否匹配;
若匹配,向所述异构加速资源传输任务代码和/或任务数据。
16.一种虚拟系统,其特征在于,包括:安全虚拟机、虚拟机管理器、异构加速设备;其中,所述安全虚拟机为权利要求1~10任一项所述的代码保护系统。
17.根据权利要求16所述的虚拟系统,其特征在于,所述虚拟机管理器用于为所述安全虚拟机配置异构加速资源,所述异构加速资源为所述异构加速设备或虚拟异构模块,所述虚拟异构模块为虚拟机管理器基于对应异构加速设备的异构设备驱动创建,不同虚拟异构模块对应所述异构加速设备内的不同的内存区域。
18.根据权利要求16所述的虚拟系统,其特征在于,所述虚拟机管理器用于为所述安全虚拟机配置嵌套页表,所述嵌套页表用于指示所述安全虚拟机的用户物理地址至异构加速资源的主机物理地址的映射关系。
19.根据权利要求16所述的虚拟系统,其特征在于,还包括:安全内存和输入输出内存管理单元;所述安全内存配置至所述安全虚拟机,所述安全内存中存储有用于执行代码执行任务的任务代码和/或任务数据;
所述输入输出内存管理单元用于接收异构加速资源发送的内存数据访问请求,并基于所述内存数据访问请求,向所述异构加速资源传输所述任务代码和/或任务数据。
20.根据权利要求19所述的虚拟系统,其特征在于,所述内存数据访问请求配置有对应安全虚拟机的身份信息,所述输入输出内存管理单元用于基于所述内存数据访问请求,向所述异构加速资源传输所述任务代码和/或任务数据,包括:
确定所述身份信息与所述内存数据访问请求所访问的地址是否匹配;
若匹配,向所述异构加速资源传输所述任务代码和/或任务数据。
21.一种芯片,其特征在于,包括权利要求1-10任一项所述的代码保护系统。
22.一种电子设备,其特征在于,包括权利要求21所述的芯片。
CN202211385501.7A 2022-11-07 2022-11-07 代码保护系统、方法、虚拟系统、芯片及电子设备 Active CN115659290B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211385501.7A CN115659290B (zh) 2022-11-07 2022-11-07 代码保护系统、方法、虚拟系统、芯片及电子设备
PCT/CN2023/079580 WO2024098594A1 (zh) 2022-11-07 2023-03-03 代码保护系统、方法、虚拟系统架构、芯片及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211385501.7A CN115659290B (zh) 2022-11-07 2022-11-07 代码保护系统、方法、虚拟系统、芯片及电子设备

Publications (2)

Publication Number Publication Date
CN115659290A CN115659290A (zh) 2023-01-31
CN115659290B true CN115659290B (zh) 2023-07-21

Family

ID=85016590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211385501.7A Active CN115659290B (zh) 2022-11-07 2022-11-07 代码保护系统、方法、虚拟系统、芯片及电子设备

Country Status (2)

Country Link
CN (1) CN115659290B (zh)
WO (1) WO2024098594A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115659290B (zh) * 2022-11-07 2023-07-21 海光信息技术股份有限公司 代码保护系统、方法、虚拟系统、芯片及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579961A (zh) * 2013-09-25 2016-05-11 Arm有限公司 数据处理系统
CN110348204A (zh) * 2019-06-17 2019-10-18 海光信息技术有限公司 一种代码保护系统、认证方法、装置、芯片及电子设备
CN112181583A (zh) * 2019-07-05 2021-01-05 中国电信股份有限公司 虚拟化管理系统、方法和计算机可读存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
US8327059B2 (en) * 2009-09-30 2012-12-04 Vmware, Inc. System and method to enhance memory protection for programs in a virtual machine environment
US8646028B2 (en) * 2009-12-14 2014-02-04 Citrix Systems, Inc. Methods and systems for allocating a USB device to a trusted virtual machine or a non-trusted virtual machine
US8694781B1 (en) * 2012-03-30 2014-04-08 Emc Corporation Techniques for providing hardware security module operability
US8583920B1 (en) * 2012-04-25 2013-11-12 Citrix Systems, Inc. Secure administration of virtual machines
US10853118B2 (en) * 2015-12-21 2020-12-01 Intel Corporation Apparatus and method for pattern-driven page table shadowing for graphics virtualization
US10587412B2 (en) * 2017-11-07 2020-03-10 International Business Machines Corporation Virtual machine structure
EP4220396A1 (en) * 2017-11-15 2023-08-02 Huawei Technologies Co., Ltd. Acceleration resource scheduling method and acceleration system
EP3734928A4 (en) * 2018-03-23 2021-01-20 Huawei Technologies Co., Ltd. PROCESS ALLOWING A VIRTUAL MACHINE ACCESS TO A REMOTE ACCELERATION DEVICE, AND SYSTEM
US11520611B2 (en) * 2018-08-20 2022-12-06 Intel Corporation Secure public cloud using extended paging and memory integrity
US11474916B2 (en) * 2018-08-22 2022-10-18 Intel Corporation Failover of virtual devices in a scalable input/output (I/O) virtualization (S-IOV) architecture
US11836091B2 (en) * 2018-10-31 2023-12-05 Advanced Micro Devices, Inc. Secure memory access in a virtualized computing environment
US11295008B2 (en) * 2019-02-13 2022-04-05 Nec Corporation Graphics processing unit accelerated trusted execution environment
US10817441B2 (en) * 2019-03-29 2020-10-27 Intel Corporation Shared accelerator memory systems and methods
CN110196754A (zh) * 2019-04-24 2019-09-03 苏州浪潮智能科技有限公司 一种GPU设备在Linux KVM下的直通方法及装置
US11288377B1 (en) * 2019-10-03 2022-03-29 Pavel Izhutov Virtual machine-based trusted execution environment
US11531770B2 (en) * 2019-12-23 2022-12-20 Intel Corporation Trusted local memory management in a virtualized GPU
CN112256331B (zh) * 2020-12-22 2021-04-27 鹏城实验室 虚拟机指令解析加速方法、装置和计算机存储介质
CN112286645B (zh) * 2020-12-29 2021-03-23 北京泽塔云科技股份有限公司 一种gpu资源池调度系统及方法
CN113254129B (zh) * 2021-05-13 2022-11-29 贵州海誉科技股份有限公司 一种云桌面gpu直通虚拟化重定向管理系统及方法
CN113434261B (zh) * 2021-08-27 2021-12-17 阿里云计算有限公司 异构计算设备虚拟化方法及系统
CN114238185A (zh) * 2021-12-20 2022-03-25 海光信息技术股份有限公司 直接存储访问及命令数据传输方法、装置及相关设备
CN115080183A (zh) * 2022-06-10 2022-09-20 阿里巴巴(中国)有限公司 一种vgpu加速方法、设备及存储介质
CN115130140B (zh) * 2022-08-31 2022-12-06 北京锘崴信息科技有限公司 多方隐私数据及金融隐私数据的安全联合分析方法
CN115659290B (zh) * 2022-11-07 2023-07-21 海光信息技术股份有限公司 代码保护系统、方法、虚拟系统、芯片及电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105579961A (zh) * 2013-09-25 2016-05-11 Arm有限公司 数据处理系统
CN110348204A (zh) * 2019-06-17 2019-10-18 海光信息技术有限公司 一种代码保护系统、认证方法、装置、芯片及电子设备
CN112181583A (zh) * 2019-07-05 2021-01-05 中国电信股份有限公司 虚拟化管理系统、方法和计算机可读存储介质

Also Published As

Publication number Publication date
CN115659290A (zh) 2023-01-31
WO2024098594A1 (zh) 2024-05-16

Similar Documents

Publication Publication Date Title
CN112005237B (zh) 安全区中的处理器与处理加速器之间的安全协作
JP7072123B2 (ja) トラステッド実行環境を加速されたグラフィック処理ユニット
US11061710B2 (en) Virtual machine exit support by a virtual machine function
US9948616B2 (en) Apparatus and method for providing security service based on virtualization
CN111090869B (zh) 一种数据加密方法、处理器及计算机设备
CN115659290B (zh) 代码保护系统、方法、虚拟系统、芯片及电子设备
US10671419B2 (en) Multiple input-output memory management units with fine grained device scopes for virtual machines
US10013199B2 (en) Translation bypass by host IOMMU for systems with virtual IOMMU
US10713081B2 (en) Secure and efficient memory sharing for guests
CN114238185A (zh) 直接存储访问及命令数据传输方法、装置及相关设备
CN114600108A (zh) 异构处理器通过开放式连接器进行具有远距认证及信息独立的可信运算系统及方法
CN113704041A (zh) Fpga设计的安全调试
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
US20210133315A1 (en) Unifying hardware trusted execution environment technologies using virtual secure enclave device
CN116418522A (zh) 一种基于虚拟化技术的云服务器密码机系统
US10678577B2 (en) Method for implementing virtual secure element
Isakovic et al. Secure channels in an integrated MPSoC architecture
CN113157396A (zh) 一种虚拟化服务系统和方法
CN114996719B (zh) 可信处理单元的隐私数据及金融隐私数据的安全分析方法
CN116225614A (zh) 一种安全密码模块分片虚拟化方法及系统
US20220335109A1 (en) On-demand paging support for confidential computing
CN116126455A (zh) 一种虚拟机的数据处理方法、计算设备及存储介质
CN116841691A (zh) 加密硬件的配置方法、数据机密计算方法及相关设备
WO2020005984A1 (en) Virtualization under multiple levels of security protections
CN111949369B (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
GR01 Patent grant
GR01 Patent grant