CN116701007A - 数据处理方法、直接内存访问引擎和计算设备 - Google Patents
数据处理方法、直接内存访问引擎和计算设备 Download PDFInfo
- Publication number
- CN116701007A CN116701007A CN202210345755.XA CN202210345755A CN116701007A CN 116701007 A CN116701007 A CN 116701007A CN 202210345755 A CN202210345755 A CN 202210345755A CN 116701007 A CN116701007 A CN 116701007A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- computing device
- dma engine
- bus
- 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
- 238000003672 processing method Methods 0.000 title abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 102
- 230000008569 process Effects 0.000 claims abstract description 48
- 230000006870 function Effects 0.000 claims abstract description 34
- 238000012545 processing Methods 0.000 claims description 211
- 238000004590 computer program Methods 0.000 claims description 17
- 230000002093 peripheral effect Effects 0.000 claims description 10
- 238000013508 migration Methods 0.000 claims description 2
- 230000005012 migration Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 10
- 238000013500 data storage Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 4
- 238000004220 aggregation Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000003863 physical function Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 231100000279 safety data Toxicity 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013175 transesophageal echocardiography Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
公开了一种数据处理方法、直接内存访问DMA引擎和计算设备。该数据处理方法包括:第一计算设备的DMA引擎获取第一计算设备中开放执行环境REE中待处理的加密数据,第一计算设备包括运行通用操作系统的REE和运行可信操作系统的可信执行环境TEE;将加密数据搬迁至TEE;在将加密数据搬迁至TEE的过程中对加密数据执行解密操作,获得解密数据,以此实现DMA引擎对CPU解密功能的硬卸载。
Description
本申请要求于2022年2月24日提交国家知识产权局、申请号为202210172625.0、申请名称为“一种数据处理方法”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及一种安全领域中数据处理方法、直接内存访问引擎和计算设备。
背景技术
随着数据中心算力增强,以及易扩容、易维护等监管优势,越来越多的企事业单位将其软件应用(如Spark、数据虚拟化引擎openLooKeng等大数据软件)部署至数据中心,以此满足数据高效流程的需求。数据的高效流通依赖于数据可信流通体系,而跨企业、跨行业间数据互通往往因为数据传输的安全问题存在诸多壁垒,导致数据流通不畅,严重制约数字经济的发展。虽然,传统技术中已提出在数据传输过程中以数据加解密增强数据的安全性,但是,在上述处理过程中,计算设备的中央处理器(central processing unit,CPU)需要借助内存频繁执行数据的拷贝和加解密操作,占用CPU的资源,影响系统性能。因此,如何提升数据处理的性能成为亟待解决的技术问题。
发明内容
本申请提供了一种数据处理方法、直接内存访问引擎和计算设备,以提升数据处理的性能。
第一方面,提供了一种数据处理方法,第一计算设备的直接内存访问DMA引擎可获取计算设备的开放执行环境REE中待处理的加密数据;进而执行将加密数据搬迁至可信执行环境TEE的操作;并在将加密数据搬迁至TEE的过程中对加密数据执行解密操作,获得解密数据。其中,第一计算设备包括运行通用操作系统的REE和运行可信操作系统的TEE。
由于DMA引擎可以在将加密数据搬迁至TEE的过程中对加密数据执行解密操作,即DMA引擎可以采用随路解密方式实现加密数据的解密操作,不仅实现DMA引擎对计算设备的CPU的解密功能的卸载,避免占用CPU的资源,影响系统性能的问题,而且,通过在数据传输过程中完成解密操作也提升了数据处理的效率。
在一种可能的实现方式中,计算设备还包括处理器和内存,处理器分别运行开放应用程序CA和可信应用程序TA,内存包括共享内存和CA关联内存,共享内存可被可信应用程序TA访问,DMA引擎可将CA关联内存中存储的加密数据拷贝至共享内存。由上述描述可知,DMA执行数据搬迁的过程具体为DMA引擎在执行数据解密前需先将加密数据拷贝至计算设备的共享内存,上述共享内存允许TA的访问,从而在DMA引擎完成解密操作后,TA可以从共享内存中获取解密数据,并进一步执行数据处理操作,实现在DMA引擎卸载解密操作后数据处理过程的连续性。
在另一种可能的实现方式中,DMA引擎按照加密数据和获取的其他加密数据的获取顺序,以及加密数据关联的身份密钥对加密数据执行解密操作,获得所述解密数据。由上述描述可知,DMA引擎可获取多个加密数据,在解密过程中,可按照获取多个加密数据的顺序依次执行解密操作,对每个加密数据可以分别以其关联的身份密钥为准执行解密操作。
在另一种可能的实现方式中,共享内存中包括DMA引擎关联的第一队列,第一队列包括多个条目ENTRY,第一队列用于存储待处理的加密数据,DMA引擎可将加密数据拷贝至第一ENTRY,其中,第一ENTRY为所述多个ENTRY中一个。通过队列存储待处理的数据,DMA引擎可以通过先入先出的顺序依次执行各个加密数据的解密操作,保证解密操作的执行顺序与获取加密数据的顺序一致,避免因加密数据乱序所导致的数据不一致问题。
可选地,第一队列可以为环形队列。
在另一种可能的实现方式中,第一计算设备的内存还包括TA关联内存,TA可从共享内存获取解密数据;再将解密数据存储至TA关联内存;并对解密数据执行数据处理操作,获得数据处理结果。由上述描述可知,在DMA引擎完成解密操作后,由于TA可访问共享内存,也即TA可获取共享内存中解密数据,再在TEE中完成对解密数据的数据处理操作,并获得数据处理结果,由于解密数据被存储在TEE中且在TEE中执行数据处理,保证了数据处理和存储的安全性。
在另一种可能的实现方式中,TA以DMA方式从共享内存中获取解密数据。由于TA可通过DMA方式直接从共享内存中获取解密数据,提升了数据获取速度,进一步加快了数据处理效率。
在另一种可能的实现方式中,第一计算设备还包括存储器,存储器包括TA命名空间,所述方法还包括:TA将第一中间结果存储至TA命名空间,第一中间结果包括对加密数据执行数据处理操作的中间结果。由于TEE环境中存储资源有限,TA关联内存空间大小固定,而大数据软件的数据处理过程经常会生成中间结果等大量临时数据,若TA关联内存空间的可用空间不足,无法存储上述临时数据会导致数据处理失败,通过在计算设备的存储器中设置TA命名空间,拓展了TA可用存储空间的容量,保证数据处理可以顺利完成。
在另一种可能的实现方式中,存储器包括控制器,在将第一中间结果存储至TA命名空间前,控制器对第一中间结果执行加密操作,获得第一中间结果的加密数据。通过在中间结果等临时数据存储至TA命名空间前,由存储器的控制器对中间结果执行加密操作,再将加密后的中间结果存储至存储器,在拓展TA可用存储空间的基础上,能够进一步提升了数据存储的安全性。
在另一种可能的实现方式中,当TA关联内存的可用空间小于第一中间结果的大小时,将第一中间结果存储至TA命名空间。也即当TA关联内存的可用空间小于中间结果的大小时,可以通过拓展的TA命名空间存储上述中间结果,由此保证数据处理过程的完整性。
在另一种可能的实现方式中,第一计算设备还包括网卡,网卡运行安全态TA,计算设备的CPU运行的TA将数据处理结果拷贝至网卡中安全态TA关联的存储区域;安全态TA执行数据处理结果的加密操作。
为了进一步实现网卡对CPU的加密功能的卸载,网卡可运行安全态TA,并在TA将数据处理结果拷贝至网卡中安全态TA关联的存储区域时,执行数据处理结果的加密操作,由此实现网卡卸载CPU的加密功能,避免因加密操作占用CPU资源。
在另一种可能的实现方式中,安全态TA执行数据处理结果的加密操作,包括:安全态TA在接收数据处理结果过程中对数据处理结果执行加密操作,获得加密后的数据处理结果。由上述描述可知,网卡的安全态TA可以以随路加密方式对数据处理结果执行加密操作,即在接收数据处理结果的过程中执行加密操作,网卡不仅卸载了CPU的加密功能,而且,通过随路解密方式也提升了数据处理效率。
在另一种可能的实现方式中,安全态TA向第二计算设备发送加密后的数据处理结果。
在另一种可能的实现方式中,网卡还包括非安全态CA,所述非安全态CA和安全态TA运行在所述网卡的处理器中,且非安全态CA和安全态TA传输数据的资源相互隔离。通过在网卡中划分相互隔离的安全态TA和非安全态CA,使得网卡可以分别通过不同的应用程序运行在不同环境,并在TEE环境中接收数据处理结果,以及对数据处理结果执行加密操作,网卡不仅卸载了CPU的数据加密功能,此外,由于网卡可以采用随路加密方式对数据处理结果加密,也提升了数据处理的效率。
第二方面,提供了一种DMA引擎,DMA引擎包括处理器和存储器,存储器中存储计算机程序指令,处理器执行计算机程序指令用于实现如第一方面或第一方面任一种可能的实现方式中所述DMA引擎所执行操作步骤的功能。
在一种可能的实现方式中,DMA引擎集成在DMA引擎所在计算设备的处理器中,DMA引擎、处理器、计算设备的网卡、计算设备的存储器、计算设备的内存通过总线相连,总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
在另一种可能的实现方式中,DMA引擎为独立硬件,DMA引擎所在计算设备的处理器、DMA引擎、计算设备的网卡、计算设备的存储器、计算设备的内存通过总线相连,总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
可选地,DMA引擎由片上系统实现,片上系统包括处理器和存储器,存储器为片上缓存,片上缓存用于存储计算机程序指令,处理器执行片上缓存存储的计算机程序指令以实现如第一方面或第一方面任一种可能的实现方式中所述DMA引擎所执行操作步骤的功能。
第三方面,提供了一种DMA引擎,DMA引擎包括处理器和供电电路,供电电路用于为处理器供电,该处理器可以由硬件逻辑电路实现,例如,由专用集成电路ASIC实现DMA引擎的功能。其中,该供电电路可以与该处理器位于同一个芯片内,也可以位于该处理器所在的芯片之外的另一个芯片内。该处理器执行计算机程序指令用于实现如第一方面或第一方面任一种可能的实现方式中所述DMA引擎所执行操作步骤的功能。
在一种可能的实现方式中,DMA引擎集成在DMA引擎所在计算设备的处理器中,DMA引擎、处理器、计算设备的网卡、计算设备的存储器、计算设备的内存通过总线相连,总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
在另一种可能的实现方式中,DMA引擎为独立硬件,DMA引擎所在计算设备的处理器、DMA引擎、计算设备的网卡、计算设备的存储器、计算设备的内存通过总线相连,总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
第四方面,提供一种数据传输的方法,该方法由第一计算设备执行,包括:在第一计算设备的开放执行环境REE中接收数据处理请求,数据处理请求包括待处理的加密数据,第一计算设备包括运行通用操作系统的REE和运行可信操作系统的可信执行环境TEE;将加密数据传输至TEE,并以随路解密方式对加密数据执行解密操作,获得解密数据,随路解密方式用于指示解密加密数据的;在TEE中根据解密数据和数据处理请求获得数据处理结果,对数据处理结果执行加密操作,并向第二计算设备发送加密后的数据处理结果。
第五方面,提供一种计算设备,该计算设备包括直接内存访问DMA引擎、处理器、网卡和存储器,DMA引擎、处理器、网卡分别用于执行第一方面或第一方面任一种可能实现方式中的集群管理方法的操作步骤。
第六方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第七方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
第八方面,提供一种芯片系统,该芯片系统包括处理器,用于实现上述第一方面的方法中处理器的功能。在一种可能的设计中,所述芯片系统还包括存储器,用于保存程序指令和/或数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种数据处理系统的逻辑架构示意图;
图2为本申请实施例提供的一种数据处理方法的流程示意图;
图3为本申请实施例提供的另一种数据处理方法的流程示意图;
图4为本申请实施例提供的另一种数据处理方法的流程示意图;
图5为本申请实施例提供的一种数据处理装置500的结构示意图。
具体实施方式
为了便于描述,首先对本申请所涉及的术语进行解释。
开放执行环境(Rich Execution Environment,REE),是指在计算设备或智能设备中部署通用操作系统(operating system,OS)的非可信环境,开放执行环境并不考虑敏感数据传输等安全问题。
通用操作系统,也可以称为REE OS,是指主管并控制计算设备操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
开放应用程序(Client Application,CA),也称为非可信应用,运行在开放执行环境的软件,同一开放执行环境中可运行多个CA。
可信执行环境(Trusted Execution Environment,TEE),也可以称为安全世界(Secure World),安全执行环境或可信硬件执行环境,相比于开放执行环境安全性更高。可在计算设备或智能设备安全区域部署可信操作系统,以获得一个保证各种敏感数据在被存储或被处理的可信环境,通过实施保护、保密性、完整性和数据访问权限确保敏感数据传输和处理过程中端到端的安全。其中,计算设备包括服务器、边缘服务器、工作者、个人电脑(personal computer,PC)等用于执行数据处理的系统。智能设备包括智能手机、平板电脑,或任意移动设备。
可信操作系统,也可以称为安全操作系统或TEE OS,包括欧拉操作系统(openEurla)、可信区域(Trustzone)的操作系统,Trustonic操作系统,高通的QSEE,开源的OPTEE等。
可信应用程序(Trusted Application,TA),也称为可信应用,是指运行在可信操作系统中软件程序,通过权限管控、签名认证等方式授权软件访问权限。同一TEE中可包含相互隔离的多个TA。例如,可将指纹比对、支付时私钥签名等多个应用程序均运行在可信执行环境,保证私钥签名、指纹等敏感数据处理和传输过程中的安全性。
值得说明的是,可信应用程序和开放应用程序无法实现跨环境的数据访问。也即可信应用程序仅能运行在可信执行环境,并在可信执行环境中执行数据的访问和处理,无法访问开放执行环境的数据。相应地,开放应用程序仅能运行在开放执行环境,并在开放执行环境中执行数据的访问和处理,无法访问可信执行环境的数据。
传统技术中,对数据安全传输有需求的软件(如大数据软件),通常部署在基于TEE和REE共存架构的数据处理系统中,该数据处理系统包括多个计算设备,一个计算设备同时包括运行REE OS的REE和运行TEE OS的TEE。以大数据软件为openLooKeng为例,openLooKeng是一款开源的高性能数据虚拟化引擎,可提供统一SQL接口,具备跨数据源/数据中心分析能力以及面向交互式、批、流等融合查询场景,openLooKen可运行涉及敏感数据的数据处理过程。openLooKeng可部署在多个计算设备构成的数据处理系统中,每个计算设备中同时运行REE OS的REE和运行TEE OS的TEE。此外,数据处理系统的计算设备的REE OS中还部署大数据处理引擎(如JAVA引擎),对于涉及用户敏感数据的处理过程,大数据处理引擎可获取数据处理系统的应用编程接口(application programming interface,API)接收的数据处理请求(例如,过滤或处理汇聚处理请求),并根据业务需求选择实现特定功能的TA和/或CA的组合完成数据处理请求的具体操作。其中,TA和/或CA的组合包括一个或多个TA;或者,一个或多个CA;或者,一个或多个TA,以及一个或多个CA。具体可根据业务需求进行配置。为了便于描述,以下实施例以数据处理仅需要一个CA和一个TA的组合完成汇聚操作为例进行说明。
示例地,在计算设备的REE中,大数据处理引擎将待处理的加密数据发送给CA,CA再将上述加密数据存储至TA可访问的共享内存,使得TA可以在TEE中获取上述加密数据并执行上述加密数据的解密操作和数据处理请求的操作,获得数据处理结果;然后,TA再对数据处理请求的数据处理结果进行加密,并将加密结果存储至CA可访问的共享内存,以便CA将加密后的上述数据处理结果传递至大数据处理引擎;再由大数据处理引擎将加密后的上述数据处理结果发送给计算设备的网卡,由网卡将加密后的上述数据处理结果发送给其他计算设备。由上述处理过程可知,加密数据从REE到TEE搬迁过程需要多次拷贝和加解密处理,对运行TA和CA的中央处理器(central processing unit,CPU)而言,由于上述处理过程需占用大量CPU的计算资源、存储资源和网络资源,性能损耗极大。此外,TEE中数据处理结果需要加密后再拷贝至共享内存,然后再将CA、大数据处理引擎传递到网卡,整个过程的数据传输路径长,性能损耗严重,系统性能至少下降10倍以上。
为了提高数据安全传输的性能,本申请使用直接内存访问(direct memoryaccess,DMA)引擎可从REE搬迁加密数据至TEE过程中对加密数据执行解密操作,以便TEE中TA可以获取解密数据并执行数据处理。避免传统技术中CA和TA在执行数据搬迁和解密过程中CPU和内存间要频繁拷贝数据,以及TA执行数据解密操作所导致其所在CPU需频繁与内存交互,占用CPU资源,影响系统数据处理的性能的问题。另一方面,由于大数据处理的中间结果等临时数据量较大,而TEE可用于存储上述临时数据的存储资源有限,往往容易出现存储资源不足导致处理失败的想象,本申请还提出一种存储器扩展TEE存储资源的方案。基于命名空间(Namespace)技术,在存储器中分别配置独立的TA命名空间和CA命名空间,使得同一存储器既支持REE计算也支持TEE计算,实现TEE可用存储资源的扩展。其中,命名空间技术,命名空间是存放变量的场所,通过防止命名冲突来支持模块化,在一个命名空间中定义的标识符不会与已有的标识符冲突。对于CA命名空间和TA命名空间而言,CA命名空间仅对CA可见,TA命名空间则仅对TA可见,由此实现CA和TA的扩展存储资源的隔离,保证数据存储的安全性。同时,为了进一步保证数据存储的安全性,存储器的控制器可以根据来自TA或CA的输入/输出(input/output,IO)请求的地址确定访问TA命名空间或CA命名空间,并在数据存储至TA命名空间前,执行加密处理,保证存储在TA命名空间的数据的安全性。再一方面,计算设备的网卡支持非安全态CA和安全态TA共存,非安全态CA和安全态TA传输数据的资源相互隔离,保证非安全态CA无法获取安全态TA的数据。由于网卡的安全态TA可实现数据处理结果的随路加密处理,避免CPU中运行的TA执行加密处理所带来的CPU资源占用和资源损耗等问题,卸载CPU的功能,进一步提升了数据处理效率。
下面结合附图详细介绍本申请提供的数据处理方法。
图1为本申请提供的一种数据处理系统100的结构示意图,如图所示,数据处理系统100包括安全网关3和多个计算设备,例如,计算设备1和计算设备2。
安全网关3,用于对安全数据源的数据进行实时加密,具体可以采用同一种加密算法对不同数据加密,或采用多种加密算法分别对不同数据加密,以获得加密数据。其中,每种算法包括一个密钥(key),加密数据包括加密数据所采用的加密算法的标识、加密数据的长度。可选地,大数据软件中数据可以以流式方式传输,即待处理的数据不断增加且数据之间存在顺序关系。可选地,加密数据还可以包括序号,用于记录当前的加密数据在数据流中排序。
计算设备1部署大数据软件,用于实现大数据软件的处理过程,例如,接收加密数据,并将加密数据的处理结果加密后发送给计算设备2。计算设备1中同时部署可信操作系统和通用操作系统,即计算设备1包括运行可信操作系统的TEE和运行通用操作系统的REE。计算设备1包括处理器10、网卡20、存储器30、DMA引擎40和内存50。处理器10、网卡20、存储器30、DMA引擎40和内存50通过总线60耦合。
下面分别介绍计算设备1中各个器件的功能。
处理器10,用于部署REE OS 101和TEE OS 102,REE OS 101中运行大数据引擎103、CA 104,TEE OS102中运行TA105。对于涉及用户敏感数据的处理过程,大数据处理引擎103可获取数据处理系统的应用编程接口API接收的数据处理请求(例如,过滤或处理汇聚处理请求),并根据业务需求选择实现特定功能的TA和/或CA的组合完成数据处理请求的具体操作。处理器10可以是CPU,也可以是其他通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、通用阵列逻辑(generic array logic,GAL)、片上系统(system on chip,SoC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
值得说明的是,图1中处理器10的数量和类型不构成对本申请实施例的限定,具体实施时,处理器10可以为一个或多个,处理器10的类型可以是一种或多种,此外,REE OS101和TEE OS 102可以运行在一个处理器10中,也可以分别运行在不同处理器10中。
网卡20,也可以称为智能网卡(intelligent network interface card,iNIC)或数据处理单元(data process unit,DPU),用于实现计算设备1与计算设备2和安全网关3通信连接。网卡20包括处理器210、存储器220,处理器210和存储器220通过总线230实现互联。总线230可以通过内部总线实现,如HT(HyperTransport)总线,也可以通过快捷外围部件互连标准(Peripheral Component Interconnect Express,PCIe)总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cachecoherent interconnect for accelerators,CCIX)实现。
其中,处理器210中分别运行安全态TA 202和非安全态CA 201,安全态TA 201用于执行TEE环境中数据处理,非安全态CA 202用于执行REE环境中数据处理。具体可分别通过固件(Firmware,FW)程序实现数据处理过程中所需资源分离的安全态TA 202和非安全态CA201,使得非安全态CA 201无法获得安全态TA 202的数据,也即分别有不同固件实现非安全态CA 201和安全态TA 202的功能,且二者所关联的存储区域也是相互隔离的,安全态TA关联的存储区域仅允许安全态TA 202访问和使用,非安全态CA关联的存储区域仅允许非安全态CA 201访问和使用。此外,在REE OS 101和TEE OS 102中分别安装有网卡驱动,以便REEOS 101和TEE OS 102的内核(kernel)可以识别网卡20,并在系统初始阶段分别为网卡20分配物理功能(physical function,PF),以便CA 104和TA 105可以分别被REE OS 101和TEEOS 102调度。对网卡20而言,网卡20关联两个PF,两个PF共用同一个互联网协议(InternetProtocol,IP)地址,安全网关3和计算设备2并不感知非安全态CA和安全态TA。此外,网卡20还需要向TEE OS 102获得授权,也即网卡20向TEE实现合法性认证,获取身份密钥702,以便安全态TA在TEE中可执行数据的随路加密操作。其中,身份密钥702与安全网关3加密安全数据源时所使用的key相匹配。
网卡2的存储器220包括安全态TA关联存储区域221和非安全态CA关联存储区域(图中未示出),其中,安全态TA关联存储区域221,用于存储安全态TA 202待处理的加密数据的数据处理结果、以及在对上述数据处理结果进行加密过程中生成的中间结果等临时数据。非安全态CA关联存储区域,则用于存储非安全态CA关联的数据、中间结果等临时数据。
存储器30,用于实现CA命名空间301和TA命名空间302。CA命名空间301和TA命名空间302的空间大小与存储器30的存储空间有关,例如,CA命名空间301和TA命名空间302可在出厂时根据可用存储空间被分别设置为固定大小。其中,CA命名空间301和TA命名空间302的大小可以相同,也可以不同,具体可以根据业务需求进行设置。存储器30可以通过固态硬盘(solid state disk,SSD)实现,也可以通过机械硬盘(hard disk drive,HDD)实现,还可以通过存储级内存(storage class memory,SCM)等存储介质实现。
存储器30还包括控制器300,控制器200可以根据TA或CA下发的IO请求确定访问TA命名空间或CA命名空间,并在数据存储至TA命名空间前,执行加密处理,保证存储在TA命名空间的数据的安全性。
DMA引擎40,用于实现硬解密卸载功能,也即DMA引擎40可用于在REE和TEE间数据搬迁过程中实现加密数据解密的功能,避免占用CPU资源,提升数据的性能。
内存50,用于为DMA引擎提供共享内存501,以便DMA引擎执行解密操作。可选地,内存50还用于存储程序指令。此外,REE OS 101和TEE OS102还会分别为CA 104和TA 105分配内存资源,例如,CA关联内存502和TA关联内存503,以便CA 104和TA 105可以存储待处理数据或数据处理的中间结果。其中,CA关联内存502是指在内存50中为CA 104分配的存储空间,相应地,TA关联内存503是指在内存50中为CA 105分配的存储空间。
内存50可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线60除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线60。总线60可以是快捷外围部件互连标准(PCIe)总线,或扩展工业标准结构(EISA)总线、统一总线(UB)、计算机快速链接(CXL)、缓存一致互联协议(CCIX)等。
可选地,为了提升计算设备1中数据处理过程中安全性,计算设备1还可以利用独立器件存储数据加解密所需的身份密钥701。示例地,计算设备还包括闪存70,闪存70用于存储加解密操作所需的身份密钥701。身份密钥701分别用于对数据执行加密和解密。为了提升计算设备2中数据处理安全性,闪存70可设置指定器件的访问权限,例如,仅允许网卡20和DMA引擎40的访问,以便网卡20和DMA引擎40可基于身份密钥701执行数据的加密或解密操作。
可选地,闪存70还可存储设备序列号(equipment serial number,ESN)。
值得说明的是,图1所示计算设备1仅为一种示例,并不构成对本申请所公开的数据处理方法的限定。具体实施中,计算设备1可包括更多或更少的器件或硬件。例如,存储器30和闪存70可以合一部署,由一个存储器实现身份密钥、CA命名空间和TA命名空间的存储。此外,实现存储器30和闪存70功能的存储介质可以相同或不同,本申请对此不做限定。
计算设备2,用于接收加密后的数据处理结果。计算设备2的硬件结构可能与计算设备1的硬件结构相同,也可能与计算设备1的硬件结构不同。
接下来,结合图1所示的数据处理系统100,以图2为例进一步解释本申请提供的数据处理方法。图2为本申请提供的一种数据处理方法的流程示意图,如图所示,该数据处理方法包括:
S1.网卡20的非安全态CA 201获取加密数据。
安全网关3可以对安全数据源执行加密操作,获得加密数据,并向非安全态CA 201发送上述加密数据。可选的,加密操作是实时进行的。
具体实施过程中,可以是计算设备1根据获取的数据处理请求从安全网关3获取上述加密数据,其中,数据处理请求用于指示对加密数据执行相应处理,例如,数据汇聚或数据过滤操作。
S2.非安全态CA 201向大数据处理引擎103发送加密数据。
S3.大数据处理引擎103向CA 104发送加密数据。
大数据处理引擎103是大数据软件的控制中心,网卡20的非安全态CA 201在获取加密数据后,会将加密数据发送给大数据处理引擎103,以便大数据处理引擎103选择实现特定功能的TA和/或CA的组合完成数据处理请求的具体操作,并将加密数据再发送给选定的CA104。
可选地,数据的加密或解密操作往往需要获取密钥,对数据内容进行逐个加密或解密,上述过程需要占用较多硬件(例如,大数据处理引擎所在处理器)的计算资源、存储资源和网络资源,待处理数据过大会导致加密或解密操作的处理时长过长,影响效率。此外,受限于实现加密或解密功能的硬件(例如,DMA引擎)的处理能力,待处理数据过大可能导致无法处理。通常会对待处理数据执行预处理,将待处理数据切分为多个数据块,并由DMA引擎40分别执行多个数据块的加密操作,以便提升数据处理效率。因此,大数据处理引擎103还可以用于对加密数据进行预处理,即将加密数据切分为多个数据块,并向选定的CA发送其中一个或多个数据块。可选地,当计算设备1中配置多个DMA引擎40时,大数据处理引擎40在完成待处理数据切分为多个数据块后,也可以由多个DMA引擎40分别执行不同数据块的加密操作,由此进一步提升数据处理的效率。
S4.CA 104将加密数据存储至CA关联内存502。
S5.DMA引擎40执行将加密数据搬迁至TEE的操作。
DMA引擎40需将加密数据拷贝至DMA引擎关联的共享内存501,实现将加密数据搬迁至TEE的操作。
作为一种可能的实现方式,DMA引擎40可以监控CA关联内存502的状态,当CA关联内存502中存在待处理的加密数据时,则可以以DMA方式,获取CA关联内存502中待处理的加密数据,并将待处理的数据拷贝至DMA引擎40关联的共享内存501。
作为另一种可能的实现方式,CA 104在将加密数据存储至CA关联内存502后,则向DMA引擎40发送通知消息,由DMA引擎40以DMA方式,获取CA关联内存502中待处理的加密数据,将待处理的数据拷贝至DMA引擎40关联的共享内存501。
S6.DMA引擎40以随路解密方式对加密数据执行解密操作,TA 105获取解密数据并将解密数据存储至TA的关联内存503。
随路解密方式,用于指示DMA引擎40在将加密数据从REE搬迁至TEE的过程中对加密数据执行数据解密操作的处理方式。其中,将加密数据从REE搬迁至TEE的过程,包括如下两种情况:
情况1:如果待处理的加密数据是一个数据,那么,上述过程用于指示:自DMA引擎确定需执行该加密数据的搬迁任务(如DMA引擎监控到CA关联内存存在一个待搬迁的加密数据),直到将该加密数据搬迁至共享内存,完成该加密数据从REE到TEE的搬迁操作的过程。
情况2:如果待处理的加密数据是多个数据,那么,上述过程用于指示:自DMA引擎确定需执行该加密数据的搬迁任务(如DMA引擎监控到CA关联内存存在多个待搬迁的加密数据),直到将所有待搬迁的加密数据均搬迁至共享内存,完成上述多个加密数据从REE到TEE的搬迁操作的过程。
进一步地,DMA引擎40可以根据加密数据中包括的加密算法的标识确定加密密钥,并使用加密密钥将加密数据解密。加密密钥可以根据闪存70中存储的身份私钥获得,例如,根据加密算法的标识查询闪存70中匹配的身份私钥701。具体地,加密密钥可以预先存储在闪存70中,DMA引擎40可根据加密算法的标识获取闪存中查询与该加密算法匹配的身份密钥。TA 105可以获取解密数据并将其存储至TA关联内存503。
可选地,TA 105可以以DMA方式获取解密数据,以便TA 105继续执行如聚合、过滤等数据处理操作。
值得说明的是,DMA引擎40可以直接获取闪存70中身份私钥701,也可以由TA 105获取闪存70中身份私钥701后发送给DMA引擎40。
S7.TA 105对解密数据执行数据处理操作,获得数据处理结果。
由上述描述可知,对于涉及用户敏感数据的处理过程,大数据处理引擎40可以根据数据处理系统的API接收的数据处理请求(例如,过滤或处理汇聚处理请求),并根据业务需求选择实现特定功能的TA和/或CA的组合完成数据处理请求的具体操作,如根据数据汇聚请求选定CA 104和TA 105用于执行数据的汇聚操作,则步骤S7则是TA将对接收的解密数据执行汇聚操作,并将生成的汇聚操作的结果作为数据处理结果。
作为一种可能的实现方式,为了拓展TEE的存储资源,可以在存储器30中配置TA命名空间302,利用命名空间302存储中间结果等临时数据。具体地,当TA关联内存502的可用存储空间不足时,即TA关联内存502的可用空间小于待存储的中间结果等临时数据的大小,则可执行步骤S8。当TA关联内存502的可用空间充足时,即TA关联内存502的可用空间大于或等于待存储的中间结果等临时数据的大小,则可直接执行步骤S9。
S8.当TA关联内存502的可用存储空间不足,将中间结果存储至TA命名空间302。
TA关联内存502是TEE OS 102为TA 105分配的内存空间,由于分配给TA的内存空间的大小固定,且无法动态调整,而在数据处理过程中可能会有中间结果等大量临时数据也需要被存储在TA关联内存502,此时,若TA关联内存502的可用存储空间不足,则中间结果等大量临时数据会因无法存储导致数据处理失败。为了解决上述问题,可以在存储器30中配置TA命名空间301,当TA关联内存503的可用存储空间不足时,将中间结果等大量临时数据存储至TA命名空间302。
作为另一种可能的实施例,为了提升数据安全性,待存储至TA命名空间302的数据还可以在加密后再存储至TA命名空间302。
S9.TA 105将数据处理结果拷贝至网卡20的安全态TA关联的存储区域221。
网卡20的存储器220包括安全态TA关联存储区域221,安全态TA关联存储区域221的大小可以根据加密数据的大小进行配置,例如,根据加密数据的大小的预设倍数确定安全态TA关联存储区域221的大小,以保证安全态TA关联存储区域221可以有足够存储空间存储。其中,预设倍数可以根据经验值进行设置,也可以根据历史数据的统计平均值确定。可选地,安全态TA关联存储区域221还可以根据大数据软件的类型进行配置,例如,对于计算密集型大数据软件,则可以根据该类型大数据软件的业务需求进行配置。
当TA 105完成数据处理后,可以将数据处理结果拷贝至网卡20的安全态TA关联的存储区域220,以便网卡20的安全态TA 202可以以随路加密方式对数据处理结果执行加密操作。
可选地,TA 105可以以DMA方式将数据处理结果拷贝至网卡20的安全态TA关联的存储区域。
S10.网卡20的安全态TA 202以随路加密方式对数据处理结果执行加密操作,并发送加密后的数据处理结果。
随路加密方式,是指安全态TA 202在接收所述数据处理结果过程中对数据处理结果执行加密操作,获得加密后的数据处理结果的处理方式。也即,网卡的安全态TA 202可以卸载处理器的加密功能,实现在传输数据过程中完成对数据处理结果的加密操作。
其中,上述接收所述数据处理结果过程,包括以下两种情况:
情况1:如果待处理的数据处理结果是一个数据,那么,上述过程用于指示:自安全态TA 202确定需执行该数据处理结果的加密任务(如安全态TA 202监控到TA 105开始执行数据处理结果的拷贝的操作),直到将该数据处理结果完整拷贝至安全态TA关联的存储区域221,完成上述数据处理结果的拷贝的过程。
情况2:如果待处理的数据处理结果是多个数据,那么,上述过程用于指示:自安全态TA 202确定需执行多个数据处理结果的加密任务(如安全态TA 202监控到TA 105开始执行第一个数据处理结果的拷贝的操作),直到将所有待加密的所有数据处理结果完整拷贝至安全态TA关联的存储区域221,完成多个数据处理结果的拷贝的过程。
安全态TA可以根据预设策略对数据处理结果进行加密,预设策略可以根据数据来源确定,例如,当数据来源为大数据软件的数据时,则采用一种加密算法对数据处理结果进行加密;当数据来源为支付软件的数据时,则采用另一种加密算法对数据处理结果进行加密。
值得说明的是,本申请并不限定安全态TA所采用的加密算法,具体实施时,可以根据业务需求进行配置。
进一步地,安全态TA将加密后的数据处理结果发送给第二计算设备,由第二计算设备继续执行其他任务,包括根据新的数据处理器请求执行相应数据处理或通过API发送加密后的数据处理结果,本申请对第二计算设备对数据处理请求所执行的具体操作步骤限定,具体实施中,可以根据大数据软件的业务需求进行配置。
通过上述方法的描述可知,本申请所提供的数据处理方法中DMA引擎仅以随路解密方式执行解密操作,即在从REE至TEE搬迁加密数据过程中执行加密数据的解密操作,卸载了传统技术中运行TA和CA的CPU的解密功能,避免CA和TA在执行数据解密操作需多次拷贝数据中内存,导致的CA和TA所在CPU需频繁与内存交互,占用CPU资源,影响系统数据处理的性能的问题。此外,由于DMA引擎可以通过硬件逻辑电路或DMA引擎内的处理器和存储器实现解密功能,实现了一种硬件卸载解密功能的方式,相比于传统技术处理速度更快。另一方面,通过在存储器中配置CA命名空间和TA命名空间,并在数据被存储至TA命名空间前,执行加密操作,不仅拓展了TEE的存储资源,同时保证了数据的安全存储。再一方面,网卡支持安全态CA和非安全态TA的隔离,TEE中加密数据的数据处理结果被安全透传至网卡的安全态TA,由安全态TA以随路加密方式实现硬件加密功能,卸载了传统技术中运行TA和CA的CPU的加密功能,而且,由于网卡可以通过内部的处理器和存储器在数据处理结果的搬迁过程中实现数据的随路解密,避免传统技术中运行TA的CPU需频繁访问内存执行加密操作所导致的性能差的问题,同时,进一步提升了安全数据传的处理性能。
下面结合图3进一步解释图2中步骤S8所述的TEE存储资源的扩展方案的实现过程。
图3为本申请提供的一种支持CA命名空间301和TA命名空间302的存储器30中数据处理过程的流程示意图,如图所示,该数据处理方法包括:
S10.CA 104下发的IO请求。
S11.TA 105下发IO请求。
S20.存储器30的控制器300判断IO请求关联地址归属。
S20.控制器300在CA命名空间301执行IO请求操作。
S21.控制器300在TA命名空间302执行IO请求操作。
存储器30的控制器300可以接收来自CA 104和TA 105的IO请求,并基于IO请求关联地址确定IO请求归属,也即基于IO请求关联地址确定IO请求待访问的地址属于CA命名空间301还是TA命名空间302,并在CA命名空间301或TA命名空间302执行IO请求操作的具体操作。
作为一个可能的实施例,存储器30还可以包括加解密单元,用于当IO操作为写入操作时,在写入数据至TA命名空间302前,对待写入数据执行加密操作,并将加密操作的结果存储至TA命名空间302;以及,当IO操作为读取操作时,从TA命名空间302中获取待读取数据,对待读取数据执行解密操作,并将解密操作的结果发送给TA 105,以此提升数据存储的安全性。
示例地,以图1中步骤S8所涉及的操作步骤为例,当TA关联内存503的可用存储空间不足时,可将中间结果存储至TA命名空间302,此时,TA 105下发给控制器300的IO请求为写入数据的操作请求,控制器300可以对上述中间结果执行加密操作,再将加密后的中间结果存储至TA命名空间302。而当TA 105需要结合中间结果执行其他操作时。例如,TA 105需根据中间结果和新获取的数据执行汇聚操作,此时,TA 105需从控制器300读取上述中间结果,也即TA 105向控制器300发送的IO请求为读取请求,则控制器300在获取加密后的中间结果后,会先执行解密操作获得上述中间结果,再将上述中间结果发送给TA 105。
作为另一个可能的实施例,存储器30中加解密单元可集成于控制器300的硬件单元,也可以是独立的硬件单元。
作为另一个可能的实施例,当CA 104关联内存502的可用存储空间不足时,也可以利用CA命名空间301存储数据。与TA命名空间302存储数据的方式的差异在于,无需对IO请求关联的数据执行加密或解密操作。
通过在存储器中设置划分安全态命名空间和非安全态命名空间,当CA关联内存或TA关联内存的可用存储空间不足,无法满足中间结果等大量临时数据时,可以分别借助TA命名空间和CA命名空间存储数据,以此拓展CA和TA可用的存储资源。而且,对于TA命名空间,可通过加解密单元和/或存储器的控制器实现数据的加密或解密操作,保证TEE中数据安全存储。
接下来,结合图4进一步解释图2中步骤S2至步骤S6所述的DMA引擎如何以随路解密方式执行数据解密的处理过程。如图所示,所述方法包括:
S0.网卡20的非安全态CA201向大数据处理引擎103发送加密数据。
S1.大数据处理引擎103确定执行加密数据处理的TA和/或CA组合。
S2.大数据处理引擎103向CA 104发送加密数据。
S3.CA 104将数据存储至CA关联内存502。
上述步骤S0至步骤S3与图1中步骤S2至步骤S4的处理过程相同,为了简洁,在此不再赘述。
S4.DMA引擎40将加密数据拷贝至DMA引擎关联的共享内存501的第一队列。
S5.DMA引擎40根据第一队列的条目关联的加密数据包括的加密算法的标识对加密数据执行解密操作。
S6.TA 105从第一队列获取解密数据存储至TA关联内存503。
S7.TA 105对TA关联内存503中解密数据执行数据处理操作。
共享内存501包括用于存储加密数据的队列,第一队列包括多个条目(ENTRY),每个条目用于存储一个或多个加密数据。为了便于描述,将存储加密数据的队列称为第一队列,存储加密数据的第一队列中条目称为E-ENTRY。例如,图4所示的队列5011为第一队列,包括多个条目,如E-ENTRY 1……E-ENTRY n。当DMA引擎40接收多个加密数据时,可以按照DMA引擎40获取多个加密数据的顺序,依次将各个加密数据存储至第一队列的E-ENTRY中。
作为一种可能的实现方式,队列5011可以通过环形队列实现,也即通过头指针指示当前可存储数据的条目的位置,通过尾指针指示当前待被读取数据的条目的位置,DMA引擎40可以根据头指针所指示的位置,分别将获取的加密数据依次存储至环形队列中,DMA引擎40可根据尾指针的所指示的位置,以先进先出(first-in-first-out,FIFO)方式依次对各个条目中加密数据执行解密操作,并实现队列资源的循环利用。
作为一种可能的实现方式,DMA引擎40和TA 105之间可以采用流水线(pipeline)方式进行数据传输,当DMA引擎40完成一个加密数据的解密后,即通知TA 105获取解密数据,TA 105即可获得该解密数据。
作为另一种可能的实现方式,除了采用流水线方式实现DMA引擎40和TA 105之间的数据传输外,DMA引擎40可以复用加密数据所在队列5011的条目,即将解密数据存储至存储加密数据的条目中,如将解密数据存储至原加密数据所关联的E-ENTRY。为了便于描述,将存储上述解密数据的条目称为D-ENTRY。
可选地,除了复用队列5011存储解密数据外,共享内存501中还可以包括第二队列(图中未示出),DMA引擎40可以通过第二队列存储解密数据。
进一步地,DMA引擎40和TA 105通过进程间方式通信,当DMA引擎40完成一个或多个加密数据的解密操作后,则通知TA 105,TA 105可获取解密数据,并将其存储至TA关联内存。可选地,TA 105可以DMA方式获取解密数据,并将其存储至TA关联内存。
可选地,TA关联内存503也可以包括队列,该队列包括多个条目,每个条目用于存储一个或多个解密数据。例如,图4中队列1051,包括D-ENTRY 1……D-ENTRY n。为了便于描述,将队列1051称为第三队列。具体地,可以按照TA获取解密数据的顺序,依次被存储至第一队列的D-ENTRY中。
相应地,TA 105也可以按照FIFO方式依次执行解密数据的数据处理过程。
S8.TA 105向网卡20的安全态TA 202发送数据处理结果。
S9.网卡20的安全态TA 202以随路加密方式对数据处理结果执行加密,并发送加密后数据处理结果。
步骤S8和步骤S9与图1中步骤S9和步骤S10相同,为了简洁,在此不再赘述。
作为一种可能的实施例,除了使用队列进行数据处理外,也可以利用其它数据结构实现数据的存储,例如,数据库或表的形式。此外,网卡和TA可以采用相同的数据结构,也可以采用不同的数据结构。
通过上述方法的描述可知,本申请所提供的数据传方法中DMA引擎在REE和TEE件传输数据的过程中执行数据解密操作,实现对TA所在CPU的解密功能的卸载,以随路解密方式执行加密数据的解密,避免TA在执行数据解密过程中,多次数据拷贝和数据解密所导致的TA所在CPU需频繁与内存交互,占用CPU资源,影响系统数据处理的性能的问题。此外,由于DAM引擎为硬件处理单元,可通过硬件逻辑直接执行数据解密操作,避免CPU以软件方式执行解密操作时需频繁调用内存中计算机程序指令所带来的处理效率低问题,也提升了数据传输的安全性。
可以理解的是,为了实现上述实施例中的功能,计算节点包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
上文中结合图1至图4,详细描述了根据本实施例所提供的数据处理的方法,下面将结合图5进一步介绍本申请提供的数据处理装置。图5为本申请实施例提供的一种数据处理装置500的结构示意图,如图所示,数据处理装置500包括获取模块501和处理模块502,其中,
获取模块501,用于获取所述第一计算设备中开放执行环境REE中待处理的加密数据,所述第一计算设备包括运行通用操作系统的所述REE和运行可信操作系统的可信执行环境TEE。
处理模块502,用于将所述加密数据搬迁至所述TEE;以及,在将所述加密数据搬迁至所述TEE的过程中对所述加密数据执行解密操作,获得解密数据,所述随路解密方式用于指示所述DMA引擎在所述REE和所述TEE之间搬迁数据过程中执行解密操作的处理方式。
根据本发明本申请实施例的数据处理装置500可对应于执行本发明本申请实施例中描述的方法,并且数据处理装置500中的各个单元的上述和其它操作和/或功能分别为了实现图2至图4中的各个方法的相应流程,为了简洁,在此不再赘述。
作为一种可能的实现方式,处理装置500可以由DMA引擎实现,DMA引擎包括处理器和存储器,所述存储器中存储计算机程序指令,所述处理器执行所述计算机程序指令实现上述获取模块501和处理模块502的功能。
可选地,DMA引擎可以为片上系统,存储器可以为片上缓存,片上缓存用于存储计算机程序指令,处理器执行片上缓存存储的计算机程序指令,用于实现上述获取模块501和处理模块502的功能。
此外,上述DMA引擎还可以用于实现上述图2至图4所述的各个方法中DMA引擎所执行的相应流程的操作步骤,为了简洁,在此不再赘述。
作为另一种可能的实现方式,处理器装置500还可以由包括处理器和供电电路的DMA引擎实现,该供电电路可为该处理器供电。该处理器可以由硬件逻辑电路实现,例如,由专用集成电路ASIC实现DMA引擎的功能。其中,该供电电路可以与该处理器位于同一个芯片内,也可以位于该处理器所在的芯片之外的另一个芯片内。该供电电路包括但不限于如下至少一个:供电子系统、电管管理芯片、功耗管理处理器或功耗管理控制电路。该处理器可用于实现上述获取模块501和处理模块502的功能。可选地,DMA引擎为独立芯片。
此外,该处理器还用于实现上述图2至图4所述的各个方法中DMA引擎所执行的相应流程的操作步骤,为了简洁,在此不再赘述。
本申请还提供一种如图1所示的计算设备1,计算设备1包括处理器10、网卡20、存储器30、DMA引擎40,处理器10、网卡20、存储器30、DMA引擎40通过总线60耦合,并分别用于执行如实现上述图2至图4所述的各个方法中相应主体所执行的相应流程的操作步骤,为了简洁,在此不再赘述。
本申请还提供一种如图1所示的数据处理系统100,数据处理系统100包括多个计算设备,例如,计算设备1和计算设备2,计算设备1包括处理器10、网卡20、存储器30、DMA引擎40,处理器10、网卡20、存储器30、DMA引擎40通过总线60耦合。计算设备2用于接收计算设备1发送的数据处理结果,计算设备2的结构可以与计算设备1相同,也可以与计算设备2不同,计算设备1中处理器10、网卡20、DMA引擎40分别用于执行如实现上述图2至图4所述的各个方法中相应主体所执行的相应流程的操作步骤,为了简洁,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (17)
1.一种数据处理方法,其特征在于,所述方法包括:
第一计算设备的直接内存访问DMA引擎获取所述第一计算设备的开放执行环境REE中待处理的加密数据,所述第一计算设备包括运行通用操作系统的所述REE和运行可信操作系统的可信执行环境TEE;
所述DMA引擎执行将所述加密数据搬迁至所述TEE的操作;
所述DMA引擎在将所述加密数据搬迁至所述TEE的过程中对所述加密数据执行解密操作,获得解密数据。
2.根据权利要求1所述方法,其特征在于,所述第一计算设备还包括处理器和内存,所述处理器分别运行开放应用程序CA和可信应用程序TA,所述内存包括共享内存和CA关联内存,所述共享内存可被可信应用程序TA访问,则所述DMA引擎将所述加密数据搬迁至所述TEE环境,包括:
所述DMA引擎将所述CA关联内存中存储的所述加密数据拷贝至所述共享内存。
3.根据权利要求1或2所述方法,其特征在于,所述DMA引擎在将所述加密数据搬迁至所述TEE的过程中对所述加密数据执行解密操作,获得解密数据,包括:
按照所述加密数据和获取的其他加密数据的获取顺序,以及所述加密数据关联的身份密钥对所述加密数据执行解密操作,获得所述解密数据。
4.根据权利要求2所述方法,其特征在于,所述内存还包括TA关联内存,所述方法还包括:
所述TA从所述共享内存获取所述解密数据;
所述TA将所述解密数据存储至所述TA关联内存;
所述TA对所述解密数据执行数据处理操作,获得数据处理结果。
5.根据权利要求4所述方法,其特征在于,所述TA从所述共享内存获取所述解密数据,包括:
所述TA以DMA方式从所述共享内存中获取所述解密数据。
6.根据权利要求4所述方法,其特征在于,所述第一计算设备还包括存储器,所述存储器包括TA命名空间,所述方法还包括:
所述TA将第一中间结果存储至所述TA命名空间,所述第一中间结果包括对所述加密数据执行所述数据处理操作的中间结果。
7.根据权利要求6所述方法,其特征在于,所述存储器包括控制器,所述方法还包括:
在将所述第一中间结果存储至所述TA命名空间前,所述控制器对所述第一中间结果执行加密操作,获得第一中间结果的加密数据。
8.根据权利要求4所述方法,其特征在于,所述第一计算设备还包括网卡,所述网卡运行安全态TA,所述方法还包括:
所述TA将所述数据处理结果拷贝至所述网卡中所述安全态TA关联的存储区域;
所述安全态TA执行所述数据处理结果的加密操作。
9.根据权利要求8所述方法,其特征在于,所述安全态TA执行所述数据处理结果的加密操作,包括:
所述安全态TA在接收所述数据处理结果过程中对所述数据处理结果执行加密操作,获得加密后的数据处理结果;
所述方法还包括:
所述安全态TA向第二计算设备发送所述加密后的数据处理结果。
10.根据权利要求8所述方法,其特征在于,所述网卡还包括非安全态CA,所述非安全态CA和所述安全态TA运行在所述网卡的处理器中,且所述非安全态CA和所述安全态TA传输数据的资源相互隔离。
11.一种DMA引擎,其特征在于,所述DMA引擎包括处理器和存储器,所述存储器中存储计算机程序指令,所述处理器执行所述计算机程序指令存储器,用于实现如权利要求1至3中任一所述方法中所述DMA引擎所执行操作步骤的功能。
12.根据权利要求11所述DMA引擎,其特征在于,所述DMA引擎集成在所述DMA引擎所在计算设备的处理器中,所述DMA引擎、所述处理器、所述计算设备的网卡、所述计算设备的存储器、所述计算设备的内存通过总线相连,所述总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
13.根据权利要求11所述DMA引擎,其特征在于,所述DMA引擎为独立硬件,所述DMA引擎所在计算设备的处理器、所述DMA引擎、所述计算设备的网卡、所述计算设备的存储器、所述计算设备的内存通过总线相连,所述总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
14.一种DMA引擎,其特征在于,所述DMA引擎包括处理器和供电电路,所述供电电路用于为所述处理器供电,所述处理器用于实现如权利要求1至3中任一所述方法中所述DMA引擎所执行操作步骤的功能。
15.根据权利要求11所述DMA引擎,其特征在于,所述DMA引擎集成在所述DMA引擎所在计算设备的处理器中,所述DMA引擎、所述处理器、所述计算设备的网卡、所述计算设备的存储器、所述计算设备的内存通过总线相连,所述总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
16.根据权利要求11所述DMA引擎,其特征在于,所述DMA引擎为独立硬件,所述DMA引擎所在计算设备的处理器、所述DMA引擎、所述计算设备的网卡、所述计算设备的存储器、所述计算设备的内存通过总线相连,所述总线包括快捷外围部件互连标准PCIe总线、计算机快速链接CXL总线、统一总线UB总线中至少一种。
17.一种计算设备,其特征在于,包括直接内存访问DMA引擎、处理器、网卡和存储器,所述DMA引擎、所述处理器、所述网卡和所述存储器分别用于实现如权利要求1至10中任一所述方法中所述DMA引擎、所述处理器、所述网卡或所述存储器所执行操作步骤的功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/078028 WO2023160639A1 (zh) | 2022-02-24 | 2023-02-24 | 数据处理方法、直接内存访问引擎和计算设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2022101726250 | 2022-02-24 | ||
CN202210172625 | 2022-02-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701007A true CN116701007A (zh) | 2023-09-05 |
Family
ID=87822699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210345755.XA Pending CN116701007A (zh) | 2022-02-24 | 2022-03-31 | 数据处理方法、直接内存访问引擎和计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701007A (zh) |
-
2022
- 2022-03-31 CN CN202210345755.XA patent/CN116701007A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230110230A1 (en) | Technologies for secure i/o with memory encryption engines | |
CN112612734B (zh) | 文件传输方法、装置、计算机设备及存储介质 | |
US11068446B2 (en) | Multi-cloud bi-directional storage replication system and techniques | |
US9215251B2 (en) | Apparatus, systems, and methods for managing data security | |
US11239997B2 (en) | Techniques for cipher system conversion | |
CN1941780A (zh) | 细胞处理器的安全操作 | |
US20190238560A1 (en) | Systems and methods to provide secure storage | |
EP3719648A1 (en) | Edge component computing system having integrated faas call handling capability | |
US20230069781A1 (en) | Microprocessor, data processing method, electronic device, and storage medium | |
WO2018094962A1 (zh) | 一种迁移文件权限的方法、装置以及系统 | |
US20230102374A1 (en) | Data Encryption Or Decryption Method, Apparatus, And System | |
WO2022228485A1 (zh) | 一种数据传输方法、数据处理方法及相关产品 | |
US20230068658A1 (en) | Microprocessor, data processing method, electronic device, and storage medium | |
CN117561511A (zh) | 具有多个安全策略的PCIe设备的支持 | |
US10469457B1 (en) | Systems and methods for securely sharing cloud-service credentials within a network of computing devices | |
US20210182375A1 (en) | Device Manager Providing Resource Control and Synchronization | |
CN107566499B (zh) | 数据同步的方法、装置和系统 | |
CN115577397B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116701007A (zh) | 数据处理方法、直接内存访问引擎和计算设备 | |
WO2023160639A1 (zh) | 数据处理方法、直接内存访问引擎和计算设备 | |
EP3284207B1 (en) | Device for managing multiple accesses to a secure module of a system on chip of an apparatus | |
US9971900B1 (en) | Zero-copy data privacy and integrity | |
US11824984B2 (en) | Storage encryption for a trusted execution environment | |
CN114244573B (zh) | 数据传输管控方法、装置、计算机设备和存储介质 | |
TW202338563A (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 |