CN113553204B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN113553204B CN113553204B CN202111084817.8A CN202111084817A CN113553204B CN 113553204 B CN113553204 B CN 113553204B CN 202111084817 A CN202111084817 A CN 202111084817A CN 113553204 B CN113553204 B CN 113553204B
- Authority
- CN
- China
- Prior art keywords
- model
- application
- data
- memory
- trusted
- 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
Links
Images
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
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种数据传输方法及装置,方法应用于终端设备,终端设备设置有REE和TEE,REE中部署有依赖于业务模型的业务应用,TEE中部署有与业务应用对应的可信应用。REE中的原生开发工具包SDK在获得业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存;原生SDK将模型相关数据存储至所申请的ION内存;原生SDK将ION内存的描述信息发送至业务应用对应的客户端目标进程;客户端目标进程将描述信息发送至可信应用对应的可信进程;可信进程基于描述信息,从ION内存中读取模型相关数据。
Description
技术领域
本说明书涉及信息安全技术领域,尤其涉及一种数据传输方法及装置。
背景技术
随着隐私保护与效率的要求,越来越多的业务模型被部署到终端设备上执行。一个业务模型的生成涉及大量的训练以及研发等人力成本的投入,业务模型通常被看作一个企业的核心知识产权。
目前,为了更好的保护业务模型,当前许多方案尝试将部分或者全部业务模型放入终端设备的可信执行环境TEE中进行训练或者在TEE中进行计算。相应的,终端设备在REE中获得模型存储服务器下发的业务模型的相关数据之后,需要将业务模型的部分或全部的相关数据作为待传输数据,从其REE传输至其TEE,以在TEE中执行这部分数据,实现业务模型的执行。
目前,在将待传输数据从REE传输至TEE的过程中,需要结合匿名共享ashmem内存以及ION内存,共同实现对待传输数据的传输。在该传输过程中,需要对待传输数据进行多次复制,传输过程损耗较大。
如何提供一种快捷且低损耗的将数据从终端设备的REE传输到TEE的数据传输方法成为亟待解决的问题。
发明内容
本说明书一个或多个实施例提供了一种数据传输方法及装置,以实现快捷且低损耗的将数据从设备的REE传输到该设备的TEE。
根据第一方面,提供一种数据传输方法,应用于终端设备,所述终端设备包含可信执行环境TEE和通用执行环境REE,所述REE中部署有依赖于业务模型的业务应用,所述TEE中部署有与所述业务应用对应的可信应用,所述方法包括:
所述REE中的原生开发工具包SDK在获得所述业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存;
所述原生SDK将所述模型相关数据存储至所申请的ION内存;
所述原生SDK将所述ION内存的描述信息发送至所述业务应用对应的客户端目标进程;
所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程;
所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据。
在一种可实施方式中,所述描述信息包括,ION内存的文件描述符和内存大小。
在一种可实施方式中,所述业务模型被划分为需安全保护的目标模型和除所述目标模型之外的主干模型,所述模型相关数据包括:所述目标模型的运行文件及其运算所需的参数集合,以及所述主干模型运行所得的输出数据。
在一种可实施方式中,所述模型相关数据还包括:所述运行文件、参数集合以及输出数据各自的数据大小;
所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据,包括:
所述可信进程基于所述数据大小和所述描述信息,从所述ION内存中分别读取所述运行文件、所述参数集合和所述输出数据,并根据所述数据大小和所述描述信息,确定结果存储地址;
所述方法还包括:
所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法,得到计算结果;
所述可信进程基于所述结果存储地址,将所述计算结果写入所述ION内存的相应位置。
在一种可实施方式中,还包括:
第一种实现方式:
所述原生SDK从所述结果存储地址,读取所述计算结果;
所述原生SDK将所述计算结果传递至所述业务应用;
第二种实现方式:
所述原生SDK将所述结果存储地址发送至所述业务应用;
所述业务应用从所述结果存储地址,读取所述计算结果。
在一种可实施方式中,所述向内存管理器申请ION内存,包括:
所述原生SDK向所述内存管理器申请目标大小的ION内存,其中,所述目标大小基于所述运行文件,所述参数集合,所述输出数据各自的数据大小以及预设大小确定,所述预设大小基于对所述计算结果的预估大小而确定。
在一种可实施方式中,还包括:
所述业务应用获得服务器下发的所述业务模型;
所述业务应用基于所获得的模型输入数据运行所述主干模型,得到所述输出数据。
在一种可实施方式中,所述原生SDK将所述ION内存的描述信息发送至业务应用对应的客户端目标进程,包括:
所述原生SDK通过运行于所述REE的应用相关层的应用SDK,将所述描述信息发送至所述客户端目标进程;
所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程,包括:
所述客户端进程通过调用命令的方式,将所述描述信息发送至所述可信进程。
在一种可实施方式中,所述终端设备为物联网IoT设备,所述业务应用为刷脸支付应用,相应的,所述业务模型包括人脸识别模型;
或者,所述业务应用为用于对图像识别分析的应用,相应的,所述业务模型包括OCR模型。
根据第二方面,提供一种数据传输装置,应用于终端设备的原生开发工具包SDK,所述终端设备包含可信执行环境TEE和通用执行环境REE,所述REE中部署有依赖于业务模型的业务应用和所述原生SDK,所述TEE中部署有与所述业务应用对应的可信应用,所述装置包括:
内存申请模块,配置为在获得所述业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存;
存储模块,配置为将所述模型相关数据存储至所申请的ION内存;
第一发送模块,配置为将所述ION内存的描述信息发送至所述业务应用对应的客户端目标进程,以使所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程,从而使得所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据。
根据第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
根据第四方面,提供一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
根据本说明书实施例提供的方法及装置,原生开发工具包SDK在获得模型相关数据之后,直接向内存管理器申请ION内存,以用于存储模型相关数据。后续的,客户端目标进程直接将该ION内存的描述信息发送至可信应用对应的可信进程,可信进程基于描述信息从ION内存中读取模型相关数据,实现模型相关数据从REE到TEE的传输。传输过程中仅利用既可支持进程间的数据共享,又可支持硬件设备与用户空间的数据共享的ION内存,无需多次复制数据,数据传输过程快捷且低损耗。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为相关技术中从终端设备的REE传输数据至TEE的一种实施框架示意图;
图1B为本说明书披露的一个实施例的实施框架示意图;
图2为实施例提供的数据传输方法的一种流程示意图;
图3为实施例提供的数据传输装置的一种示意性框图。
具体实施方式
下面将结合附图,详细描述本说明书实施例的技术方案。
本说明书实施例披露一种数据传输方法及装置,下面对数据传输方法的应用场景和发明构思进行介绍,具体如下:
目前,对模型进行保护的方案中,一种示例性场景中,服务器将需要保护的业务模型,拆分成主干模型和需要保护的目标模型,并将运行目标模型所需的数据,拆分成运行文件及其运行所需的模型参数集合,其中,运行文件用于执行目标模型的模型算法;将主干模型、模型参数集合以及运行文件,加密传输至终端设备。终端设备在其通用执行环境REE中,获得加密的主干模型、加密的运行文件及加密的模型参数集合之后,在REE中,通过模型引擎运行解密所得的主干模型明文,得到主干模型的输出数据;将该输出数据、加密的模型参数集合以及加密的运行文件作为待传输数据,从REE传输至其可信执行环境TEE,以在TEE中运行目标模型的模型算法。
另一种示例性场景中,服务器向终端设备下发需要保护的业务模型时,将运行业务模型所需的数据拆分成运行文件及其运行所需的模型参数集合,其中,运行文件用于执行业务模型的模型算法。服务器将模型参数集合以及运行文件,加密传输至终端设备。终端设备在其通用执行环境REE中,获得加密的运行文件及加密的模型参数集合之后,将加密的模型参数集合以及加密的运行文件作为待传输数据,从REE传输至其可信执行环境TEE,以在TEE中运行业务模型的模型算法。
在上述示例性场景中,都需要将业务模型有关的数据作为待传输数据,从REE传输到TEE。将待传输数据从REE传输至TEE的过程,如图1A所示,具体可以如下执行。
如图1A所示,一种示例中,终端设备设置有REE和TEE,REE设置有应用相关层、原生native层以及内核空间。其中,应用相关层包括应用层以及应用框架层,应用层包括终端设备安装的应用程序;应用框架层包括:供应用程序开发人员使用的应用程序接口和应用程序开发所需的组件。native层包括终端设备的原生库。内核空间包括硬件抽象层和内核层,硬件抽象层用于将硬件抽象化,也就是说,硬件抽象层对内核层的内核驱动程序进行封装,向上(应用程序相关层和原生native层)提供接口,向下(内核层)屏蔽具体实现细节;内核层提供核心系统服务,包括Linux内核以及内核驱动程序。
如图1A所示,REE的应用相关层部署有依赖于业务模型的业务应用,TEE部署有与业务应用对应的可信应用。
业务应用获得服务器下发的模型有关数据,例如包括加密的主干模型、运行文件及加密后的模型参数集合,并运行主干模型,得到主干模型的输出数据。之后,业务应用将输出数据、加密的模型参数集合以及加密的运行文件作为待传输数据,发送至native层的原生开发工具包SDK。
如图1A所示,原生SDK通过匿名共享ashmem内存的方式,即申请ashmem内存,将待传输数据写入至ashmem内存,并将ashmem内存的相关信息例如,包括ashmem内存中存储待传输数据的地址信息,以及待传输数据的长度信息等,通过Java SDK发送至客户端目标进程。后续的,客户端目标进程基于接收的ashmem内存的相关信息,从ashmem内存读取待传输数据,实现将待传输数据发送至业务应用对应的客户端目标进程,其中,客户端目标进程运行于native层。
之后,客户端目标进程向内存管理器申请ION内存,将从ashmem内存读取的待传输数据,转存至ION内存,并将ION内存的描述信息发送至TEE中的可信应用对应的可信进程。其中,描述信息包括ION内存的文件描述符和内存大小。
可信进程基于描述信息从ION内存读取待传输数据,进而,可信应用基于输出数据、解密所得的模型参数,运行解密所得的运行文件中模型算法。
可见,上述将待传输数据从REE传输至TEE的过程中,需要结合匿名共享内存以及ION内存,共同实现对模型有关数据的传输。在该传输过程中,需要对待传输数据进行多次复制,例如:原生SDK申请到ashmem内存之后,需要将待传输数据复制到ashmem内存中;客户端目标进程申请到ION内存后,需要将从ashmem内存中读取的待传输数据,复制到ION内存,其传输过程损耗较大。
鉴于此,本说明实施例提供了一种数据传输方法,如图1B所示,为本说明书披露的一个实施例的实施框架示意图。该方法可以应用于终端设备,该终端设备可以为智能手机以及IoT机具等。其中,如图所示,终端设备设置有REE和TEE,REE中部署有依赖于业务模型的业务应用,TEE中部署有可信应用1和可信应用2,其中,可信应用1与业务应用。
REE中的原生开发工具包SDK在获得业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存;原生SDK将模型相关数据存储至所申请的ION内存;原生SDK将ION内存的描述信息发送至业务应用对应的客户端目标进程;客户端目标进程将描述信息发送至可信应用对应的可信进程;可信进程基于描述信息,从ION内存中读取模型相关数据。
其中,向内存管理器申请的ION内存为一块连续的内存,为内存厂商预留的一块内存。
需要说明的,图1B仅作为本实施例的一种示例图,TEE中可以仅部署一个可信应用,该可信应用与业务应用对应,也可以部署更多的可信应用,分别与REE中部署的不同的业务应用对应。
一种实现中,如图1B所示,REE设置有应用相关层、原生native层以及内核空间。其中,业务应用部署于应用相关层,原生SDK以及客户端目标进程部署于native层,内存管理器部署于内核空间。
本实现方式中,仅通过既可支持进程间的数据共享,又可支持硬件设备与用户空间的数据共享的ION内存,实现对业务模型的需安全保护的模型相关数据的传输,传输过程中无需多次复制数据,数据传输过程快捷且低损耗。
下面结合具体实施例,对本说明书提供的数据传输方法进行阐述。
图2示出了本说明书一个实施例中数据传输方法的流程图。该方法应用于终端设备,该终端设备可以是任一具有计算、处理能力的设备,该终端设备可以为电脑、智能手机以及IoT机具。终端设备包含可信执行环境TEE和通用执行环境REE,REE中部署有依赖于业务模型的业务应用, TEE中部署有与业务应用对应的可信应用,所述方法包括如下步骤S210- S250:
S210:REE中的原生开发工具包SDK在获得业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存。其中,该业务模型包括但不限于:人脸识别模型、身份认证模型、目标检测模型、目标分类模型以及OCR(Optical Character Recognition)模型,等。在一种可实施方式中,终端设备为物联网IoT设备,业务应用为刷脸支付应用,业务模型包括人脸识别模型。在另一种可实施方式中,终端设备为物联网IoT设备,业务应用为用于对图像识别分析的应用,业务模型包括OCR模型。
在一种实现中,业务应用在存在使用模型服务需求的情况下,可以向服务器请求下发业务模型,其中,业务模型被划分为需安全保护的目标模型和除目标模型之外的主干模型。业务应用获得服务器下发的业务模型之后,基于所获得的模型输入数据运行主干模型,得到输出数据。一种示例性场景中,业务模型为人脸识别模型,相应的,模型输入数据可以为包含待识别人脸的人脸图像;又一种示例性场景中,业务模型为目标分类模型,相应的,模型输入数据可以为包括待分类目标的图像。
在一种实现中,业务应用部署于REE中的应用层,原生SDK部署与REE中的native层。业务应用得到主干模型输出数据之后,即得到需要安全保护的模型相关数据,其中,模型相关数据包括目标模型和主干模型输出数据,该主干模型输出数据作为目标模型的输入数据。
后续的,业务应用需要调用原生SDK,以将模型相关数据传输至终端设备的TEE。具体的可以是:业务应用将模型相关数据发送至原生SDK。原生SDK获得业务模型的需安全保护的模型相关数据,并向内存管理器ION Driver申请ION内存,以用于存储模型相关数据。一种实现中,该ION内存为终端设备预留的一块连续性内存。
在一种情况中,为了实现对目标模型的保护,并且考虑到终端设备的TEE的物理存储空间的有限性,服务器侧将运行目标模型所需的数据,划分为运行文件及其运行所需的参数集合,运行文件用于执行目标模型的模型算法。后续的,运行文件存储于TEE中,参数集合存储于REE中;在TEE中根据运行文件运行其中的模型算法时,再将参数集合中,当前待运行的模型算法部分对应的参数,读取至TEE中。具体的,模型相关数据可以包括:目标模型的运行文件及其运算所需的参数集合,以及主干模型运行所得的输出数据。
S220:原生SDK将模型相关数据存储至所申请的ION内存。
S230:原生SDK将ION内存的描述信息发送至业务应用对应的客户端目标进程。
原生SDK向内存管理器申请ION内存之后,可以获得内存管理器反馈的申请到的ION内存的描述信息,并可以将模型相关数据存储至所申请的ION内存。之后,原生SDK将描述信息发送至业务应用对应的客户端目标进程,该客户端目标进程用于与TEE进行数据共享,即业务应用依赖客户端目标进程将模型相关数据传输至TEE中。在一种情况中,如图1B所示,客户端目标进程部署于native层。
在一种实现中,描述信息包括,ION内存的文件描述符和内存大小。
S240:客户端目标进程将描述信息发送至可信应用对应的可信进程。客户端目标进程获得描述信息之后,将描述信息发送至可信应用对应的可信进程。
S250:可信进程基于描述信息,从ION内存中读取模型相关数据。该描述信息可以指示存储模型相关数据的存储位置,可信进程基于描述信息,从ION内存中的相应存储位置处,读取模型相关数据。
在一种实现中,可信进程读取到模型相关数据之后,可信应用基于模型相关数据中的输出数据以及参数集合,运行运行文件,实现对目标模型的安全运行,实现对目标模型的安全保护。
本实施例中,原生SDK在获得模型相关数据之后,直接向内存管理器申请ION内存,用于存储模型相关数据,后续的,客户端目标进程直接将该ION内存的描述信息发送至可信应用对应的可信进程,可信进程基于描述信息从ION内存中读取模型相关数据,实现模型相关数据从REE到TEE的传输。传输过程中仅利用既可支持进程间的数据共享,又可支持硬件设备与用户空间的数据共享的ION内存,无需多次复制数据,数据传输过程快捷且低损耗。
在本说明书的一种可实施方式中,所述S230,可以包括如下步骤:
原生SDK通过运行于REE的应用相关层的应用SDK,将描述信息发送至客户端目标进程。一种情况中,该应用SDK可以为java SDK,该java SDK运行于REE的应用相关层的应用层。原生SDK可以通过运行于应用层的应用SDK,将描述信息发送至客户端目标进程。具体的可以是,原生SDK可以通过反射调用reflection call的方式,调用应用SDK,进而,应用SDK通过bindler指令,将描述信息发送至客户端目标进程。
一种实现中,所述S240,可以包括如下步骤:客户端进程通过调用命令的方式,将描述信息发送至可信进程。
在本说明书的一种可实施方式中,为了保证后续的目标模型的正常运行,模型相关数据还可以包括:运行文件、参数集合以及输出数据各自的数据大小;
所述S250,可以包括如下步骤11:
步骤11:可信进程基于数据大小和描述信息,从ION内存中分别读取运行文件、参数集合和输出数据,并根据数据大小和描述信息,确定结果存储地址。其中,结果存储地址用于存储模型算法基于参数集合和输出数据计算所得的结果。
相应的,所述方法还可以包括如下步骤:
步骤12:可信应用基于参数集合、输出数据,运行运行文件中的模型算法,得到计算结果。
步骤13:可信进程基于结果存储地址,将计算结果写入ION内存的相应位置。
其中,通过数据大小和描述信息,可信进程可以准确地从ION内存中分别读取运行文件、参数集合和输出数据。并且,根据数据大小和描述信息,确定结果存储地址。
在一种实现中,考虑到终端设备的TEE中物理存储空间的有限性,可信进程可以首先基于数据大小和描述信息,从ION内存中读取出运行文件和输出数据,将运行文件和输出数据存储于TEE中。可信应用在将要执行运行文件中的至少一部分模型算法时,基于数据大小和描述信息从ION内存中的参数集合中,读取该至少一部分模型算法运行所需的参数,并基于输出数据和该至少一部分模型算法运行所需的参数,运行该至少一部分模型算法,直至将模型算法完全运行完毕,得到计算结果。可信进程基于结果存储地址,将计算结果写入ION内存的相应位置。
其中,可信应用可以通过调用模型运行引擎,基于输出数据和该至少一部分模型算法运行所需的参数,运行该至少一部分模型算法。在一种实现中,该模型运行引擎可以是运行在TEE内的一种轻量级的引擎,以避免对TEE的内存的过多占用。可信应用调用模型运行引擎之后,模型运行引擎可以调用其对应的算子库ops lib中存储的相关函数,支持该至少一部分模型算法中算子的运行。
在一种实现中,为了保护业务模型,服务器下发的目标模型对应的运行文件、参数集合以及主干模型均为加密数据,业务应用接收到主干模型之后需要对主干模型进行解密,进而运行解密后的主干模型。后续的,业务应用发送至原生SDK的运行文件和参数集合均为加密数据,相应的,原生SDK存储至ION内存的运行文件和参数集合也均为加密数据。后续的,在一种实现中,可信进程读取到运行文件、参数集合之后,可信应用先对运行文件、参数集合进行解密,进而基于读取到的参数集合以及输出数据,运行运行文件中的模型算法。
在本说明书的一种可实施方式中,所述方法还可以包括如下步骤14-15:
步骤14:原生SDK从结果存储地址,读取计算结果。
步骤15:原生SDK将计算结果传递至业务应用。
可信进程将计算结果写入ION内存中该结果存储地址的相应位置之后,可以通知客户端目标进程,计算结果已写入。后续的,客户端目标进程通知原生SDK可从ION内存的结果存储地址处读取数据。继而原生SDK从结果存储地址,读取计算结果,并将计算结果传递至业务应用。一种实现中,上述将计算结果传递至业务应用的过程为:原生SDK将计算结果存储至申请的第一内存中,得到相应的计算结果存储信息,将该计算结果存储信息发送至业务应用,该业务应用基于计算结果存储信息,从第一内存中,读取得到计算结果。其中,该第一内存不同于传输业务模型有关的数据时所申请的ION内存。
在本说明书的一种可实施方式中,所述方法还可以包括如下步骤16-17:
步骤16:原生SDK将结果存储地址发送至业务应用;
步骤17:业务应用从结果存储地址,读取计算结果。
本实施方式中,为了更好实现对数据传输过程的优化,降低数据传输过程的损耗,可信进程将计算结果写入ION内存中该结果存储地址的相应位置之后,可以通知客户端目标进程,计算结果已写入。后续的,客户端目标进程通知原生SDK计算结果已写入,原生SDK将结果存储地址发送至业务应用,业务应用直接从结果存储地址,读取计算结果,降低了数据传输过程的损耗。
业务应用获得计算结果之后,可以基于计算结果执行其后续的任务。举例而言,业务应用为刷脸支付应用,业务模型包括人脸识别模型,后续的任务为支付任务,若计算结果为人脸识别准确,为相应的真实账户用户,则完成支付任务。
在本说明书的一种实施方式中,原生SDK从结果存储地址,读取计算结果之后,可以释放所申请的ION内存。
在本说明书的一种可实施方式中,所述S210,可以包括如下步骤:
原生SDK向内存管理器申请目标大小的ION内存,其中,目标大小基于运行文件,参数集合,输出数据各自的数据大小以及预设大小确定,预设大小基于对计算结果的预估大小确定。在一种情况中,该预设大小可以设置为3兆。
其中,模型相关数据中还可以包括运行文件、参数集合以及输出数据各自的数据大小,以及预设大小,原生SDK向内存管理器申请ION内存时,直接基于数据大小以及预设大小,向内存管理器申请目标大小的ION内存,以在保证申请得到足够的内存用于存储相应的数据的同时,避免内存的资源浪费。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
相应于上述方法实施例,本说明书实施例,提供了一种数据传输装置300,应用于终端设备的原生开发工具包SDK,所述终端设备包含可信执行环境TEE和通用执行环境REE,所述REE中部署有依赖于业务模型的业务应用和所述原生SDK,所述TEE中部署有与所述业务应用对应的可信应用,其示意性框图如图3所示,所述装置包括:
内存申请模块310,配置为在获得所述业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存;
存储模块320,配置为将所述模型相关数据存储至所申请的ION内存;
第一发送模块330,配置为将所述ION内存的描述信息发送至所述业务应用对应的客户端目标进程,以使所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程,从而使得所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据。
在一种可实施方式中,所述描述信息包括,ION内存的文件描述符和内存大小。
在一种可实施方式中,所述业务模型被划分为需安全保护的目标模型和除所述目标模型之外的主干模型,所述模型相关数据包括:所述目标模型的运行文件及其运算所需的参数集合,以及所述主干模型运行所得的输出数据。
在一种可实施方式中,所述模型相关数据还包括:所述运行文件、参数集合以及输出数据各自的数据大小;
所述装置还包括:
数据读取模块(图中未示出),配置为从所述ION内存的结果存储地址,读取计算结果,其中所述结果存储地址根据所述数据大小和所述描述信息而确定,所述计算结果是所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法而得到的结果;
第二发送模块(图中未示出),配置为将所述计算结果传递至所述业务应用;
或者,所述装置还包括:
第三发送模块(图中未示出),配置为将所述结果存储地址发送至所述业务应用,以使所述业务应用从所述结果存储地址,读取所述计算结果,其中所述结果存储地址根据所述数据大小和所述描述信息而确定,所述计算结果是所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法而得到的结果。
在一种可实施方式中,所述内存申请模块310,具体配置为向所述内存管理器申请目标大小的ION内存,其中,所述目标大小基于所述运行文件,所述参数集合,所述输出数据各自的数据大小以及预设大小确定,所述预设大小基于对所述计算结果的预估大小而确定。
在一种可实施方式中,所述输出数据为:所述业务应用基于所获得的模型输入数据运行主干模型所得的,所述主干模型由服务器下发所得。
在一种可实施方式中,所述第一发送模块330,具体配置为通过运行于所述REE的应用相关层的应用SDK,将所述描述信息发送至所述客户端目标进程,以使所述客户端进程通过调用命令的方式,将所述描述信息发送至所述可信进程。
在一种可实施方式中,所述终端设备为物联网IoT设备,所述业务应用为刷脸支付应用,相应的,所述业务模型包括人脸识别模型;
或者,所述业务应用为用于对图像识别分析的应用,相应的,所述业务模型包括OCR模型。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书所提供的所述数据传输方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书所提供的所述数据传输方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (18)
1.一种数据传输方法,应用于终端设备,所述终端设备包含可信执行环境TEE和通用执行环境REE,所述REE中部署有依赖于业务模型的业务应用,所述TEE中部署有与所述业务应用对应的可信应用,所述方法包括:
所述REE中的原生SDK在获得所述业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存,其中,所申请的ION内存供所述REE与所述TEE数据共享;
所述原生SDK将所述模型相关数据存储至所申请的ION内存;
所述原生SDK将所述ION内存的描述信息发送至所述业务应用对应的客户端目标进程;
所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程;
所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据。
2.根据权利要求1所述的方法,其中,所述描述信息包括,ION内存的文件描述符和内存大小。
3.根据权利要求1所述的方法,其中,所述业务模型被划分为需安全保护的目标模型和除所述目标模型之外的主干模型,所述模型相关数据包括:所述目标模型的运行文件及其运算所需的参数集合,以及所述主干模型运行所得的输出数据。
4.根据权利要求3所述的方法,所述模型相关数据还包括:所述运行文件、参数集合以及输出数据各自的数据大小;
所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据,包括:
所述可信进程基于所述数据大小和所述描述信息,从所述ION内存中分别读取所述运行文件、所述参数集合和所述输出数据,并根据所述数据大小和所述描述信息,确定结果存储地址;
所述方法还包括:
所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法,得到计算结果;
所述可信进程基于所述结果存储地址,将所述计算结果写入所述ION内存的相应位置。
5.根据权利要求4所述的方法,还包括:
第一种实现方式:
所述原生SDK从所述结果存储地址,读取所述计算结果;
所述原生SDK将所述计算结果传递至所述业务应用;
第二种实现方式:
所述原生SDK将所述结果存储地址发送至所述业务应用;
所述业务应用从所述结果存储地址,读取所述计算结果。
6.根据权利要求4所述的方法,所述向内存管理器申请ION内存,包括:
所述原生SDK向所述内存管理器申请目标大小的ION内存,其中,所述目标大小基于所述运行文件,所述参数集合,所述输出数据各自的数据大小以及预设大小确定,所述预设大小基于对所述计算结果的预估大小而确定。
7.根据权利要求3所述的方法,还包括:
所述业务应用获得服务器下发的所述业务模型;
所述业务应用基于所获得的模型输入数据运行所述主干模型,得到所述输出数据。
8.根据权利要求1-7任一项所述的方法,其中,所述原生SDK将所述ION内存的描述信息发送至业务应用对应的客户端目标进程,包括:
所述原生SDK通过运行于所述REE的应用相关层的应用SDK,将所述描述信息发送至所述客户端目标进程;
所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程,包括:
所述客户端目标进程通过调用命令的方式,将所述描述信息发送至所述可信进程。
9.根据权利要求1-7任一项所述的方法,其中,所述终端设备为物联网IoT设备,所述业务应用为刷脸支付应用,相应的,所述业务模型包括人脸识别模型;
或者,所述业务应用为用于对图像识别分析的应用,相应的,所述业务模型包括OCR模型。
10.一种数据传输装置,应用于终端设备的原生SDK,所述终端设备包含可信执行环境TEE和通用执行环境REE,所述REE中部署有依赖于业务模型的业务应用和所述原生SDK,所述TEE中部署有与所述业务应用对应的可信应用,所述装置包括:
内存申请模块,配置为在获得所述业务模型的需安全保护的模型相关数据之后,向内存管理器申请ION内存,其中,所申请的ION内存供所述REE与所述TEE数据共享;
存储模块,配置为将所述模型相关数据存储至所申请的ION内存;
第一发送模块,配置为将所述ION内存的描述信息发送至所述业务应用对应的客户端目标进程,以使所述客户端目标进程将所述描述信息发送至所述可信应用对应的可信进程,从而使得所述可信进程基于所述描述信息,从所述ION内存中读取所述模型相关数据。
11.根据权利要求10所述的装置,其中,所述描述信息包括,ION内存的文件描述符和内存大小。
12.根据权利要求10所述的装置,其中,所述业务模型被划分为需安全保护的目标模型和除所述目标模型之外的主干模型,所述模型相关数据包括:所述目标模型的运行文件及其运算所需的参数集合,以及所述主干模型运行所得的输出数据。
13.根据权利要求12所述的装置,其中,所述模型相关数据还包括:所述运行文件、参数集合以及输出数据各自的数据大小;
所述装置还包括:
数据读取模块,配置为从所述ION内存的结果存储地址,读取计算结果,其中所述结果存储地址根据所述数据大小和所述描述信息而确定,所述计算结果是所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法而得到的结果;
第二发送模块,配置为将所述计算结果传递至所述业务应用;
或者,所述装置还包括:
第三发送模块,配置为将所述结果存储地址发送至所述业务应用,以使所述业务应用从所述结果存储地址,读取所述计算结果,其中所述结果存储地址根据所述数据大小和所述描述信息而确定,所述计算结果是所述可信应用基于所述参数集合、所述输出数据,运行所述运行文件中的模型算法而得到的结果。
14.根据权利要求13所述的装置,其中,所述内存申请模块,具体配置为向所述内存管理器申请目标大小的ION内存,其中,所述目标大小基于所述运行文件,所述参数集合,所述输出数据各自的数据大小以及预设大小确定,所述预设大小基于对所述计算结果的预估大小而确定。
15.根据权利要求12所述的装置,其中,所述输出数据为:所述业务应用基于所获得的模型输入数据运行主干模型所得的,所述主干模型由服务器下发所得。
16.根据权利要求10-15任一项所述的装置,其中,所述第一发送模块,具体配置为通过运行于所述REE的应用相关层的应用SDK,将所述描述信息发送至所述客户端目标进程,以使所述客户端目标进程通过调用命令的方式,将所述描述信息发送至所述可信进程。
17.根据权利要求10-15任一项所述的装置,其中,所述终端设备为物联网IoT设备,所述业务应用为刷脸支付应用,相应的,所述业务模型包括人脸识别模型;
或者,所述业务应用为用于对图像识别分析的应用,相应的,所述业务模型包括OCR模型。
18.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084817.8A CN113553204B (zh) | 2021-09-16 | 2021-09-16 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084817.8A CN113553204B (zh) | 2021-09-16 | 2021-09-16 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553204A CN113553204A (zh) | 2021-10-26 |
CN113553204B true CN113553204B (zh) | 2021-12-28 |
Family
ID=78134629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111084817.8A Active CN113553204B (zh) | 2021-09-16 | 2021-09-16 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553204B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114091653A (zh) * | 2021-11-06 | 2022-02-25 | 支付宝(杭州)信息技术有限公司 | 模型的运行方法和装置 |
CN115982018B (zh) * | 2022-12-21 | 2024-03-29 | 北京水木羽林科技有限公司 | 一种基于ocr的ui测试方法、系统、计算机设备和存储介质 |
CN116822656B (zh) * | 2023-08-25 | 2023-12-26 | 深圳鲲云信息科技有限公司 | 人工智能网络模型计算系统中数据交互的方法及计算系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528288A (zh) * | 2019-08-30 | 2021-03-19 | 华为技术有限公司 | 可信应用的运行方法、信息处理和内存分配方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959331B2 (en) * | 2012-11-19 | 2015-02-17 | At&T Intellectual Property I, Lp | Systems for provisioning universal integrated circuit cards |
CN105516104B (zh) * | 2015-12-01 | 2018-10-26 | 神州融安科技(北京)有限公司 | 一种基于tee的动态口令的身份验证方法及系统 |
CN112596802B (zh) * | 2019-09-17 | 2022-07-12 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN113192237B (zh) * | 2020-01-10 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 支持tee和ree的物联网设备以及实现tee和ree间通信的方法 |
CN111966491B (zh) * | 2020-08-04 | 2023-07-21 | Oppo广东移动通信有限公司 | 统计占用内存的方法及终端设备 |
CN112101949B (zh) * | 2020-09-18 | 2022-12-16 | 支付宝(杭州)信息技术有限公司 | 安全的服务请求处理方法及装置 |
CN112560083B (zh) * | 2020-12-02 | 2023-04-18 | 支付宝(杭州)信息技术有限公司 | 安全保护方法、装置及电子设备 |
CN112882750A (zh) * | 2021-03-23 | 2021-06-01 | 东软睿驰汽车技术(沈阳)有限公司 | Ota升级包的处理方法、装置和电子设备 |
-
2021
- 2021-09-16 CN CN202111084817.8A patent/CN113553204B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528288A (zh) * | 2019-08-30 | 2021-03-19 | 华为技术有限公司 | 可信应用的运行方法、信息处理和内存分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113553204A (zh) | 2021-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113553204B (zh) | 一种数据传输方法及装置 | |
US11921905B2 (en) | Secure collaboration between processors and processing accelerators in enclaves | |
US9536063B2 (en) | Methods and apparatus for protecting software from unauthorized copying | |
US9690947B2 (en) | Processing a guest event in a hypervisor-controlled system | |
US10338951B2 (en) | Virtual machine exit support by a virtual machine function | |
TWI762293B (zh) | 安全的服務請求處理方法及裝置 | |
CN110414187B (zh) | 模型安全交付自动化的系统及其方法 | |
CN111475524B (zh) | 基于拦截器的数据处理方法、装置和计算机设备 | |
CN111459673A (zh) | 安全内存扩展、释放方法及装置和电子设备 | |
CN113642021A (zh) | 一种业务代码提交方法、处理方法、装置及电子设备 | |
CN110888674B (zh) | 在Python虚拟机中执行安全计算的方法及装置 | |
CN113569265B (zh) | 一种数据处理方法、系统及装置 | |
CN106648770B (zh) | 一种应用程序安装包的生成方法、加载方法及装置 | |
CN110457959B (zh) | 一种基于Trust应用的信息传输方法及装置 | |
CN114925368A (zh) | 用于启动应用程序的安全元件和方法 | |
CN113420313A (zh) | 程序安全运行、加密方法及其装置、设备、介质 | |
CN114491544A (zh) | 一种虚拟可信平台模块的实现方法及相关装置 | |
CN116186709B (zh) | 基于虚拟化VirtIO技术卸载UEFI安全启动的方法、装置及介质 | |
KR102411144B1 (ko) | 부팅 중 통신 모듈 적용을 통한 원격 터미널 접속을 위한 방법 및 시스템 | |
CN114995955B (zh) | 一种Android插件化虚拟化Binder Hook方法 | |
CN113850633B (zh) | 信息推送方法和装置 | |
CN112052464B (zh) | 对资源文件进行虚拟化保护的方法、智能终端、存储介质 | |
CN117375804B (zh) | 一种密钥派生方法、相关设备及存储介质 | |
CN111562916B (zh) | 共享算法的方法和装置 | |
CN116346309A (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 |