一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

支持TEE和REE的物联网设备以及实现TEE和REE间通信的方法与流程

2021-07-30 17:58:00 来源:中国专利 TAG:联网 公开 通信 支持 方法
支持TEE和REE的物联网设备以及实现TEE和REE间通信的方法与流程

本公开涉及tee领域,特别是涉及一种支持tee和ree的物联网设备以及实现tee和ree间通信的方法。



背景技术:

可信执行环境(trustedexecutionenvironment,简称tee)提供了一种相对于ree隔离的执行环境,在该环境执行的应用通常被认为是可信的。

富执行环境(richexecutionenvironment,简称ree)与tee相对应,提供给富操作系统执行和管理的运行环境,它在可信执行环境之外,在该环境执行的应用通常被认为是不可信的。

tee和ree通常需要进行通信,以实现二者间数据和消息的传递。



技术实现要素:

本公开要解决的一个技术问题是,提供一种能够实现tee和ree间的通信的方案。

根据本公开的第一个方面,提出了一种物联网设备,包括:第一物理核和第二物理核,第一物理核用于提供可信执行环境,第一应用程序运行在可信执行环境中,第二物理核用于提供富执行环境,第二应用程序运行在富执行环境中,响应于第二应用程序针对第一应用程序的消息发送请求,第二物理核基于与第一物理核对应的第一ipc寄存器触发第一物理核的ipc中断,响应于ipc中断,运行在第一物理核中的第一中断处理程序获取第二应用程序发送的第二消息。

可选地,第二消息被存储到第一ipc寄存器中,第一中断处理程序从第一ipc寄存器获取第二消息。

可选地,第一中断处理程序将第二消息添加到第一消息队列,第一应用程序从第一消息队列获取第二消息。

可选地,响应于第一应用程序针对第二应用程序的消息发送请求,第一物理核基于与第二物理核对应的第二pc寄存器触发第二物理核的ipc中断,响应于ipc中断,运行在第二物理核中的第二中断处理程序获取第一应用程序发送的第一消息。

可选地,第一消息被存储到第二ipc寄存器中,第二中断处理程序从第二ipc寄存器获取第一消息。

可选地,第二中断处理程序将第一消息添加到第二消息队列,第二应用程序从第二消息队列获取第一消息。

可选地,第一物理核和第二物理核为同一微控制单元中的两个内核。

可选地,物联网设备为智能门锁。

可选地,第二消息包括以下一项或多项:指纹;密码;代码。

根据本公开的第二个方面,提出了一种物联网设备,包括:第一物理核和第二物理核,第一物理核用于提供可信执行环境,第一应用程序运行在可信执行环境中,第二物理核用于提供富执行环境,第二应用程序运行在富执行环境中,响应于第一应用程序针对第二应用程序的消息发送请求,第一物理核基于与第二物理核对应的第二pc寄存器触发第二物理核的ipc中断,响应于ipc中断,运行在第二物理核中的第二中断处理程序获取第一应用程序发送的第一消息。

根据本公开的第三个方面,提出了一种应用程序间的通信方法,第一应用程序运行在可信执行环境中,第二应用程序运行在富执行环境中,可信执行环境是由第一物理核提供的,富执行环境是由第二物理核提供的,该方法包括:响应于第二应用程序针对第一应用程序的消息发送请求,第二物理核基于与第一物理核对应的第一ipc寄存器触发第一物理核的ipc中断;响应于ipc中断,运行在第一物理核中的第一中断处理程序获取第二应用程序发送的第二消息。

根据本公开的第四个方面,提出了一种应用程序间的通信方法,第一应用程序运行在可信执行环境中,第二应用程序运行在富执行环境中,可信执行环境是由第一物理核提供的,富执行环境是由第二物理核提供的,该方法包括:响应于第一应用程序针对第二应用程序的消息发送请求,第一物理核基于与第二物理核对应的第二pc寄存器触发第二物理核的ipc中断,响应于ipc中断,运行在第二物理核中的第二中断处理程序获取第一应用程序发送的第一消息。

本公开主要是针对搭载在物联网设备的tee系统,提出了一种tee和ree间的通信方法,通过借助ipc寄存器的ipc中断机制,可以实现tee和ree间的通信。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出智能门锁中tee侧应用和ree侧应用间的通信流程图。

图2示出了ree侧应用程序向tee侧应用程序发送消息的流程图。

图3示出了tee侧应用程序向ree侧应用程序发送消息的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

现有的tee系统大多是基于单核虚拟化的方式实现的,主要采取共享内存的方式实现tee和ree间的通信,这种通信方式需要占用较多的ram资源,使得基于单核虚拟化的方式实现的tee系统主要应用于搭载了性能较强的处理器的终端设备。

本公开主要是针对搭载在物联网设备上的tee系统,提出的一种tee和ree间的通信方法。

本公开述及的物联网设备可以是但不限于智能门锁、共享设备、智能抄表、可穿戴设备等多种物联网设备。

在本公开中,物联网设备包括第一物理核和第二物理核,第一物理核用于提供(也即执行)tee,第二物理核用于提供(也即执行)ree。运行在tee中的应用程序可以称为第一应用程序,运行在ree中的应用程序可以称为第二应用程序。

tee提供了一种相对于ree隔离的执行环境。可以由运行在tee中的第一应用程序实现代码的保护执行及敏感数据(如指纹、密码等)的隐私管理。也即,第一应用程序可以用于保护指纹、密码等敏感数据,也可以用于保护代码的安全执行。

运行在ree中的第二应用程序可以执行相对来说安全程度较低的操作,或保存非敏感数据。在本公开中,第一应用程序和/或第二应用程序的具体功能及执行逻辑均可以由物联网设备的厂商或第三方定义。

运行在tee中的第一应用程序需要与运行在ree中的第二应用程序进行通信,来实现敏感数据和/或代码的保护。

作为本公开的一个示例,第二应用程序可以作为服务的发起方,向第一应用程序申请服务,将关键数据(如敏感数据和/或代码)交由第一应用程序,在后续使用过程中,可以由第一应用程序和第二应用程序共同提供服务,也可以完全由第一应用程序提供服务。

下面以物联网设备为支持tee和ree的智能门锁为例,就tee侧应用和ree侧应用间的通信流程进行示例性说明。

图1示出智能门锁中tee侧应用和ree侧应用间的通信流程图。如图1所示,智能门锁可以提供密码解锁和指纹解锁功能。

密码/指纹录入过程

智能门锁可以提供ree和tee。可以由运行在ree中的第二应用程序(也即ree侧应用)执行步骤s110,采集用户录入的密码或指纹。用户录入的密码或指纹是指有权限的用户在初始情况下针对智能门锁创建的密码或录入的指纹。

ree侧应用在获取了用户录入的指纹或密码后,可以执行步骤s120,将指纹或密码传递到tee中,如可以交由运行在tee环境中的第一应用程序(也即tee侧应用)保存。

可以由tee侧应用执行步骤s210,保存密码或指纹。

可选地,ree侧应用还可以执行步骤s130,将需要保护的代码传递到tee中,如可以交由tee侧应用。其中,ree侧应用发送的代码可以是一段用于验证密码或指纹是否正确的程序代码。tee侧应用在接收到代码后,可以执行步骤s220,解析并使用代码,如可以设定对代码的调用逻辑,在后续进行验证时可以通过调用该代码实现验证,或者也可以创建一用于执行该代码的进程,在后续进行验证时可以利用该进程实现验证。

密码/指纹验证过程

用户在需要开锁时,可以通过智能门锁上半部分的密码输入区域输入密码进行解锁,也可以通过智能门锁下半部分的指纹输入区域输入指纹进行解锁。

可以由ree侧应用执行步骤s140,采集用户输入的密码或指纹。

ree侧应用在获取了用户输入的指纹或密码后,可以执行步骤s150,将指纹或密码传递到tee中,如可以交由运行在tee环境中的第一应用程序(也即tee侧应用)。

在本发明中,tee侧应用可以提供验证功能,也即可以由tee侧应用执行步骤s230,对密码或指纹进行验证,如可以将当前接收到的指纹或密码与预先保存的指纹或密码进行比对,以实现验证。

另外,tee侧应用也可以不提供验证功能,此时可以由tee侧应用通过调用并执行之前从ree侧应用获取的代码,实现验证。

在验证完毕后,可以由tee侧应用执行步骤s240,将验证结果发送给ree侧应用。

ree侧应用在接收到验证结果后,可以执行步骤s160,根据验证结果,确定是否解锁,也即是否允许开锁。其中,在验证结果为密码一致或指纹匹配的情况下,可以确定允许开锁,此时可以发出相关指令,控制智能门锁自动开锁。

需要说明的是,ree侧应用和tee侧应用的具体执行逻辑可以根据实际情况设定。例如,ree侧应用可以仅负责将采集到的密码或指纹发送给tee侧应用,后续验证及解锁过程可以全部交由tee侧应用执行。

针对基于多核实现的tee系统,本公开提出了一种与之相适配的tee和ree间的通信方法。

下面就物联网设备中tee和ree间的通信方法进行示例性说明。

图2示出了ree侧应用程序向tee侧应用程序发送消息的流程图。

图3示出了tee侧应用程序向ree侧应用程序发送消息的流程图。

如图2、图3所示,物联网设备100包括第一物理核110和第二物理核120,第一物理核110用于提供(也即执行)tee,第二物理核120用于提供(也即执行)ree。运行在tee中的应用程序可以称为第一应用程序,运行在ree中的应用程序可以称为第二应用程序。作为可选实施例,物联网设备100可以包括多个第二物理核120。

第一物理核110和第二物理核120可以为微控制单元(mcu)中的内核,或者也可以为异构架构中不同的内核,例如cpu、fpga、gpu等等。

考虑到物联网设备对成本、功耗的要求较为严格,出于平衡成本、性能与功耗的考虑,作为优选实施方式,第一物理核110和第二物理核120可以为同一微控制单元(mcu)中的两个内核。

也即,物联网设备100可以基于非对称多核(如非对称双核)实现tee系统。基于非对称多核实现的tee系统的资源紧张,不适于采用共享内存的方式实现tee和ree间的通信。

为此,本公开提出,可以借助ipc寄存器的ipc中断机制,实现tee和ree间的全双工通信。也即可以通过硬件的方式实现tee和ree间的通信。

ree侧向tee侧的消息发送

响应于第二应用程序针对第一应用程序的消息发送请求,第二物理核基于与第一物理核对应的第一ipc寄存器触发第一物理核的ipc中断,响应于ipc中断,运行在第一物理核中的第一中断处理程序获取第二应用程序发送的第二消息。

如图2所示,第二应用程序发送的第二消息被存储到第一ipc寄存器中,响应于ipc中断,第一中断处理程序可以从第一ipc寄存器获取第二消息。

第一中断处理程序在获取到第二消息后,可以将第二消息发送给第一应用程序。例如,第一中断处理程序可以将第二消息添加到tee中的第一消息队列,第一应用程序可以从第一消息队列获取第二消息。

第一应用程序在从第一消息队列获取第二消息后,就可以对第二消息进行解析,并使用。

tee侧向ree侧的消息发送

响应于第一应用程序针对第二应用程序的消息发送请求,第一物理核基于与第二物理核对应的第二pc寄存器触发第二物理核的ipc中断,响应于ipc中断,运行在第二物理核中的第二中断处理程序获取第一应用程序发送的第一消息。

如图3所示,第一应用程序发送的第一消息被存储到第二ipc寄存器中,响应于ipc中断,第二中断处理程序可以从第二ipc寄存器获取第二消息。

第二中断处理程序在获取到第一消息后,可以将第一消息发送给第二应用程序。例如,第二中断处理程序可以将第一消息添加到ree中的第二消息队列,第二应用程序可以从第二消息队列获取第一消息。

第二应用程序在从第二消息队列获取第一消息后,就可以对第一消息进行解析,并使用。

本公开述及的第一消息、第二消息是指tee侧应用程序和ree侧应用程序在通信过程中传递的数据,其可以是敏感数据(如指纹、密码)、代码等需要保护的数据,也可以是事件通知消息或指令。

如上文结合图1的描述,在物联网设备为智能门锁的情况下,tee侧应用程序和ree侧应用程序在通信过程中传递的数据可以包括但不限于密码或指纹、代码、验证结果。

在本公开中,第一ipc寄存器和第二ipc寄存器为全局模块,第一物理核110和第二物理核120都可以对第一ipc寄存器和第二ipc寄存器进行访问和设置。

为了对ree传递的消息通道进行保护,在触发tee侧的中断后,tee侧的第一ipc寄存器只能被tee内的第一中断处理程序操作访问。

可选地,在触发ree侧的中断后,ree侧的第二ipc寄存器也可以只能被ree内的第二中断处理程序操作访问。

在需要触发tee侧的中断时,可以由第二物理核对与第一物理核对应的第一ipc寄存器执行写操作,以触发第一物理核的ipc中断。

具体来说,第一ipc寄存器包括第一ipc发生寄存器和第一ipc应答寄存器,第一ipc发生寄存器有两个位域:ipcg和srcs,ipcg决定是否产生中断,srcs则表示是由哪个物理核发出的中断。第二物理核可以对第一ipc发生寄存器中的ipcg执行写操作,以触发第一物理核的中断,并可以对第一ipc发生寄存器中的srcs执行写操作,标识是由第二物理核触发的中断。

相应地,在需要触发ree侧的中断时,可以由第一物理核对与第二物理核对应的第二ipc寄存器执行写操作,以触发第二物理核的ipc中断。

具体来说,第二ipc寄存器包括第二ipc发生寄存器和第二ipc应答寄存器,第二ipc发生寄存器有两个位域:ipcg和srcs,ipcg决定是否产生中断,srcs则表示是由哪个物理核发出的中断。第一物理核可以对第二ipc发生寄存器中的ipcg执行写操作,以触发第二物理核的中断,并可以对第二ipc发生寄存器中的srcs执行写操作,标识是由第一物理核触发的中断。

综上,本公开通过借助硬件ipc的中断触发机制,实现了tee与ree的全双工通信通道,使得tee与ree之间可以进行有效的信息数据传递。

上文中已经参考附图详细描述了根据本发明的支持tee和ree的物联网设备以及实现tee和ree间通信的方法。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜