一种数据传输方法及系统与流程

文档序号:12747982阅读:219来源:国知局
一种数据传输方法及系统与流程

本发明涉及嵌入式技术领域,尤其涉及一种数据传输方法及系统。



背景技术:

为了在嵌入式产品的软硬件及物理特性设计中加入安全性控制,保证产品不受外部恶意攻击,精简指令芯片(ARM,Advanced Reduced Instruction Set Computing Machines)提供了不同的工作模式,包括:普通模式(normal world)和安全模式(secure world)。在normal world下,可以运行正常使用的操作系统(例如:安卓系统),在secure world下,可以维护数据安全相关的系统程序。Trustonic公司针对ARM的secure world提供了TEE(Trusted Execution Environments,可信执行环境)解决方案:t-base解决方案。

t-base可以认为是运行在ARM secure world下的简易操作系统,该系统可以分为两层,可信应用层(TA,Trusted Application)和安全驱动层(secure driver)。其中,secure driver层位于底层直接面向硬件操作,由于该层运行于secure world,其操作的硬件资源对于normal world来说是不可操作的,这是ARM本身提供的硬件保护机制,TA层为上层应用层,主要基于secure driver提供的接口完成软件逻辑操作,这与Linux的工作机制相似:底层负载机制,上层负责策略。

下面以指纹芯片为例,对TA层和secure driver层的工作方式进行说明。指纹芯片可以认为是属于涉及到数据安全的硬件资源,可以位于secure world下,由secure driver层进行直接操作,并为TA层提供相关读写接口,由TA层实现指纹芯片算法逻辑相关操作,例如:TA层通过secure driver层获取指纹数据,进行算法处理,完成指纹匹配等,之后由TA层将指纹是否匹配的结果传送给normal world。

由上述流程可知,在对secure world下的硬件资源进行操作时,TA层和secure driver层需要进行频繁交互。现有技术中,TA层和secure driver层进行交互的做法包括:TA层在自己的地址空间具有一块数据段,该数据段主要用于存储TA层将要发送的命令或对应的参数等,在需要跟secure driver层交互时,TA层会发送一个进程间通信(IPC,Inter-Process Communication)请求给secure driver层,secure driver层接收到该IPC请求之后,使用t-base提供的接口将TA层地址空间中的存储了命令或参数的数据段整体搬移到secure driver层的地址空间内,并将该存储的命令或参数解析,完成相应的操作。

对于secure world下的有些硬件,使用时TA层和secure driver层需要频繁交互,例如:有些厂家提供的指纹芯片,需要频繁的进行寄存器设置来执行采图功能,而每次交互TA层和secure driver层都要进行各自的虚拟地址分配和与共享内存物理地址的映射,不但系统开销大,通信效率也会降低,使硬件使用起来耗时太长。



技术实现要素:

本发明实施例提供了一种数据传输方法及系统,用以解决现有的TA层和secure driver层的交互方式导致的系统开销大及通信效率低的问题。

基于上述问题,本发明实施例提供的一种数据传输方法,包括:

可信应用层向安全驱动层发送数据传输的请求;

所述可信应用层将存储于可信应用层的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存;

所述安全驱动层根据所述请求从所述共享内存中获取所述第一数据,并将所述第一数据存储至与所述共享内存建立了第二映射关系的所述安全驱动层的第二地址空间;

其中,所述第一映射关系与所述第二映射关系保持不变。

本发明提供的数据传输方法,还包括:

所述安全驱动层将存储于所述第二地址空间的第二数据发送至所述共享内存,其中,所述第二数据根据所述第一数据生成;

所述安全驱动层向所述可信应用层发送针对所述请求的响应消息;

所述可信应用层根据所述响应消息从所述共享内存中获取所述第二数据,并将所述第二数据存储至所述第一地址空间。

其中,所述第一地址空间在所述可信应用层的生存周期中保持不变,所述第二地址空间在所述安全驱动层的生存周期中保持不变。

进一步的,所述可信应用层将存储于可信应用层的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存之前,还包括:

当可信应用层向所述安全驱动层发送数据传输的请求时,所述可信应用层将初始数据存储在所述可信应用层地址空间的第一地址空间中;将所述第一地址空间映射至物理内存,获得物理内存的共享内存;

当所述安全驱动层接收到所述请求时,将所述共享内存映射至所述安全驱动层的地址空间,获得第二地址空间;

所述安全驱动层将从所述共享内存中获得的所述初始数据存储于所述第二地址空间。

进一步的,本发明方法还可以包括:提高所述共享内存的运行频率。

本发明实施例还提供一种数据传输系统,包括:

可信应用层,用于向安全驱动层发送数据传输的请求;以及将存储于所述可信应用层的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存;

安全驱动层,用于根据所述请求从所述共享内存中获取所述第一数据,并将所述第一数据存储至与所述共享内存建立了第二映射关系的所述安全驱动层的第二地址空间;

其中,所述第一映射关系与所述第二映射关系保持不变。

进一步的,所述安全驱动层,还用于将存储于所述第二地址空间的第二数据发送至所述共享内存,其中,所述第二数据根据所述第一数据生成;以及向所述可信应用层发送针对所述请求的响应消息;

所述可信应用层,还用于根据所述响应消息从所述共享内存中获取所述第二数据,并将所述第二数据存储至所述第一地址空间。

进一步的,所述可信应用层,还用于在将存储于可信应用层的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存之前,当向所述安全驱动层发送数据传输的请求时,将初始数据存储在所述第一地址空间中;将所述第一地址空间映射至物理内存,获得物理内存的共享内存;

所述安全驱动层,还用于当接收到所述请求时,将所述共享内存映射至所述安全驱动层的地址空间,获得第二地址空间;以及将从所述共享内存中获得的所述初始数据存储于所述第二地址空间。

所述系统还包括频率调整接口,用于调整所述共享内存的运行频率。

本发明实施例的有益效果包括:

本发明实施例提供的一种数据传输方法及系统,TA层向secure driver层发送数据传输请求,并将存储与自身第一地址空间的第一数据发送至于第一地址空间建立了第一映射关系的共享内存中,secure driver层根据接收到的请求,从共享内存中获取第一数据,并将第一数据存储至与共享内存建立了第二映射关系的第二地址空间;其中,第一映射关系与第二映射关系保持不变。可见,本发明实施例提供的数据传输方法中,TA层和secure driver层分别在自己的地址空间中分配了第一地址空间和第二地址空间,并分别与物理内存的共享内存进行了映射,且映射关系保持不变,与现有技术中TA层和secure driver层每次交互都要分别分配地址空间以及每次交互都要与物理内存的共享内存建立映射关系相比,TA层和secure driver层为传输的数据分别分配的地址空间保持不变,那么分配的地址空间与共享内存分别建立的映射关系也可以保持不变,TA层和secure driver层每次交互时,分别通过固定的地址空间对共享内存进行操作就可以了,不需要每次交互都分配地址空间以及建立与共享内存的映射关系,减小了TA层和secure driver层的交互的系统开销,提高了通信效率,对于secure driver层下的硬件,也降低了在使用时的系统开销,加快了硬件的响应速度。

附图说明

图1为本发明实施例提供的包含TA层和secure driver层的t-base系统的结构示意图;

图2为本发明实施例提供的一种数据传输方法的流程示意图;

图3为本发明实施例提供的另一种数据传输方法的流程示意图;

图4为本发明实施例提供的一种数据传输系统的结构示意图。

具体实施方式

本发明实施例提供了一种数据传输方法及系统,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

图1为本发明实施例提供的包含TA层101和secure driver层102的t-base系统的结构示意图。

本发明实施例提供一种数据传输方法,如图2所示,包括:

S201、可信应用层101向安全驱动层102发送数据传输的请求。

具体实施时,安全驱动层102可以在启动之后开启一个等待线程,用于等待可信应用层101的请求,当可信应用层101向安全驱动层102发送数据传输请求时,该等待线程就能够接收到。

进一步地,本步骤中数据传输请求可以是IPC(Inter-Process Communication,进程间通信)请求。

S202、可信应用层101将存储于可信应用层101的第一地址空间中的第一数据发送至与第一地址空间建立了第一映射关系的共享内存。

进程运行时可以分配有自己的地址空间,进程间不能通过直接访问对方的地址空间实现相互通信,而是需要专门的进程间通信方式,例如:通过共享内存进行通信。因此,可信应用层101和安全驱动层102之间进行数据传输时不能直接访问对方的地址空间,而是需要通过共享内存。

现有技术中,每次进行数据传输时,在每次TA层和secure driver层需要进行交互时,TA层都会在自己的地址空间中,为本次需要传输的数据申请存储地址,并将申请到的虚拟地址与共享内存的物理地址进行映射,同样,secure driver层在将获取到的TA层存储的数据搬移到自己的地址空间之前,也都会在自己的地址空间为该获取的数据申请存储地址,并将申请到的虚拟地址与共享内存的物理地址进行映射。也就是说,每次数据传输都要进行“申请虚拟地址空间-将虚拟地址空间映射至物理空间”的过程,导致了系统开销大,通信效率降低。因此,本发明实施例中,使第一地址空间,以及第一地址空间与共享内存的物理地址之间的第一映射关系保持不变,使得后续再进行数据传输时,都不需要重新分配地址空间,以及重新为地址空间进行映射,而是直接使用已经建立的专门用于存储数据的第一地址空间、第二地址空间以及与分别于该第一地址空间具有第一映射关系、与该第二址空间具有第二映射关系的共享内存,这样减少了系统开销,提高了通信效率。

S203、安全驱动层102根据S201中的请求从共享内存中获取第一数据,并将第一数据存储至与共享内存建立了第二映射关系的安全驱动层的第二地址空间;其中,第一映射关系与第二映射关系保持不变。

现有技术中,安全驱动层102每次从共享内存的物理地址获取到数据时,同样需要在自己的地址空间中为数据申请地址空间,并建立共享内存的物理地址与该地址空间之间的映射关系,再将获取到的数据存储到申请到的地址空间中,系统开销大,通信效率低,本发明实施例中,使专门用户存储数据的第二地址空间,以及第二地址空间与共享内存的物理地址之间的映射关系保持不变,使得后续再进行数据传输时,都不需要重新分配第二地址空间,以及重新进行地址映射,而是直接使用已经建立的第二映射关系,这样减少了系统开销,提高了通信效率。

下面结合附图,用具体实施例对本发明提供的方法及系统进行详细描述。

实施例1:

本发明实施例1中,提供了一种数据传输方法,如图3所示,具体包括如下步骤:

S301、当可信应用层101向安全驱动层102发送数据传输的请求时,可信应用层101将初始数据存储在可信应用层101的第一地址空间中。

S302、可信应用层101将第一地址空间映射至物理内存,获得物理内存的共享内存。

S303、当安全驱动层102接收到S301中的请求时,将共享内存映射至安全驱动层102的地址空间,获得第二地址空间。

S304、安全驱动层102将从共享内存中获得的初始数据存储于第二地址空间。

本实施例方案中还包括为可信应用层101以及安全驱动层102分别与物理内存的共享内存建立映射关系的过程。

具体地,在可信应用层101的生存周期中,首次需要向安全驱动层102发送数据传输请求时,可以将待传输的初始数据(可以为命令、参数等)存储在分配的第一地址空间中,并触发建立第一地址空间与共享内存的物理地址之间的第一映射关系,得到物理内存的共享内存;在安全驱动层102的生存周期中,首次接收到可信应用层101发送的数据传输请求时,可以触发建立共享内存与安全驱动层102的地址空间之间的第二映射关系,即获得第二地址空间,并将存储于共享内存中的初始数据存储到第二地址空间。

进一步地,第一地址空间在可信应用层101的生存周期中保持不变,第二地址空间在安全驱动层102的生存周期中保持不变。也就是说,在后续可信应用层101和安全驱动层102的数据传输过程中,第一映射关系和第二映射关系保持不变,即不再为传输的数据进行新的地址空间的分配,以及新的地址空间与共享内存的映射,而重复使用已经分配的地址空间和已经建立的映射关系,这样不但节约系统开销,也提高了数据传输效率。可见,步骤S301~步骤S304可以执行一次,后续每次进行数据传输可以执行步骤S305~S310。

进一步地,可信应用层101和安全驱动层102的生存周期可以理解为从对应程序启动运行(包括开机启动运行或者程序结束后重新启动运行等),至对应程序正常运行结束,或者运行过程中出现错误强制结束。

S305、可信应用层101向安全驱动层102发送数据传输的请求。

步骤S305与步骤S303~步骤S304的执行没有严格的先后顺序,也就是说,在完成了第一地址空间与共享内存的首次映射之后(即步骤S302执行之后)即可执行步骤S305。

S306、可信应用层101将存储于可信应用层101的第一地址空间中的第一数据发送至与第一地址空间建立了第一映射关系的共享内存。

S307、安全驱动层102根据S305中的请求从共享内存中获取第一数据,并将第一数据存储至与共享内存建立了第二映射关系的安全驱动层的第二地址空间;其中,第一映射关系与第二映射关系保持不变。

进一步地,步骤S305~步骤S307之前可以为可信应用层101和安全驱动层102分别与共享内存建立了映射关系,通过该保持不变的映射关系进行数据传输的步骤。第一数据可以为命令、参数等。

S308、安全驱动层102将存储于第二地址空间的第二数据发送至共享内存,其中,第二数据根据第一数据生成。

S309、安全驱动层102向可信应用层101发送针对S305中请求的响应消息。

S310、可信应用层101根据S309中的响应消息从共享内存中获取第二数据,并将第二数据存储至第一地址空间。

进一步地,步骤S308~步骤S310可以为当安全驱动层102接收到可信应用层101发送的第一数据之后,需要对第一数据进行响应发送第二数据时执行,针对不需要发送第二数据的情况,可以不执行步骤S308~步骤S310。

步骤S308~步骤S310中,安全驱动层102可以将第二数据先存储在第二地址空间,基于已建立的第二地址空间与共享内存之间的映射关系,将第二数据发送至共享内存。并向可信应用层101发送响应消息,以提示可信应用层101获取第二数据,可信应用层101基于已建立的第一地址空间与共享内存之间的映射关系,从共享内存中获取第二数据,并存储至第一地址空间。

可见,可信应用层101和安全驱动层102通过共享内存的方式完成了进程间的通信,并且通过固定自身为传输的数据分配的地址空间与共享内存之间的映射关系,使数据传输的过程系统开销小,提高了传输效率。

为了进一步提高传输效率,还可以提高共享内存的运行频率,这样内存运行速度越快,可信应用层101和安全驱动层102通信消耗的时间越少。具体实施时,可以利用系统提供的接口将内存锁到较高的运行频率,这里不再赘述。

基于同一发明构思,本发明实施例还提供了一种数据传输系统,由于这些系统所解决问题的原理与前述数据传输方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供的一种数据传输系统,如图4所示,包括:

可信应用层401,用于向安全驱动层402发送数据传输的请求;以及将存储于可信应用层401的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存;

安全驱动层402,用于根据所述请求从所述共享内存中获取所述第一数据,并将所述第一数据存储至与所述共享内存建立了第二映射关系的安全驱动层402的第二地址空间;其中,所述第一映射关系与所述第二映射关系保持不变。

进一步地,安全驱动层402,还用于将存储于所述第二地址空间的第二数据发送至所述共享内存,其中,所述第二数据根据所述第一数据生成;以及向可信应用层401发送针对所述请求的响应消息;

可信应用层401,还用于根据所述响应消息从所述共享内存中获取所述第二数据,并将所述第二数据存储至所述第一地址空间。

进一步地,所述第一地址空间在可信应用层401的生存周期中保持不变,所述第二地址空间在安全驱动层402的生存周期中保持不变。

进一步地,可信应用层401,还用于在将存储于可信应用层401的第一地址空间中的第一数据发送至与所述第一地址空间建立了第一映射关系的共享内存之前,当向所述安全驱动层402发送数据传输的请求时,将初始数据存储在所述第一地址空间中;将所述第一地址空间映射至物理内存,获得物理内存的共享内存;

安全驱动层402,还用于当接收到所述请求时,将所述共享内存映射至所述安全驱动层的地址空间,获得第二地址空间;以及将从所述共享内存中获得的所述初始数据存储于所述第二地址空间。

进一步地,所述系统,还包括:频率调整接口403,用于调整共享内存的运行频率;

上述各接口的功能可对应于图2至图3所示流程中的相应处理步骤,在此不再赘述。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1