发明内容
本说明书实施例的目的是提供一种信息的处理方法、装置及设备,以提供一种在时间上控制REE和TEE之间的通信时长和通信时刻,从而从本质上杜绝由REE导致的TEE环境下一个或多个TA拒绝服务的技术方案。
为了实现上述技术方案,本说明书实施例是这样实现的:
本说明书实施例提供的一种信息的处理方法,所述方法包括:
每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求;
如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,并将所述CA请求发送给所述TEE中相应的TA进行处理;
当到达处理所述CA请求的所述超时时限时,获取所述CA请求对应的处理结果,并向所述CA请求对应的所述REE中的CA返回所述处理结果。
可选地,所述每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,包括:
每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,并唤醒所述TA。
可选地,所述每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,包括:
当检测到所述TEE中时限控制TA处于运行状态,且所述时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达所述TEE中TA被唤醒的时刻。
可选地,所述方法还包括:
当到达预定的运行周期时,控制所述时限控制TA运行;或者,
接收所述时限控制TA运行的控制指令,并基于所述时限控制TA运行的控制指令控制所述时限控制TA运行。
可选地,所述预定时长阈值为处理源于所述REE中的所述CA请求所需的最大处理时长。
可选地,所述如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,包括:
如果检测到存在待处理的CA请求,则读取所述CA请求;
根据所述CA请求,确定所述CA请求所属的请求种类;
根据确定的所述CA请求所属的请求种类,确定处理所述CA请求所需的处理时长;
基于处理所述CA请求所需的处理时长,为所述CA请求的处理设置超时时限。
可选地,所述方法还包括:
如果所述CA请求对应的处理结果为失败,则确定处理所述CA请求的TA存在风险;
输出处理所述CA请求的TA存在风险的提示消息。
本说明书实施例提供的一种信息的处理装置,所述装置包括:
唤醒模块,用于每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求;
时限设置模块,用于如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,并将所述CA请求发送给所述TEE中相应的TA进行处理;
结果处理模块,用于当到达处理所述CA请求的所述超时时限时,获取所述CA请求对应的处理结果,并向所述CA请求对应的所述REE中的CA返回所述处理结果。
可选地,所述唤醒模块,用于每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,并唤醒所述TA。
可选地,所述唤醒模块,用于当检测到所述TEE中时限控制TA处于运行状态,且所述时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达所述TEE中TA被唤醒的时刻。
可选地,所述装置还包括:
第一控制模块,用于当到达预定的运行周期时,控制所述时限控制TA运行;或者,
第二控制模块,用于接收所述时限控制TA运行的控制指令,并基于所述时限控制TA运行的控制指令控制所述时限控制TA运行。
可选地,所述时限设置模块,包括:
读取单元,用于如果检测到存在待处理的CA请求,则读取所述CA请求;
种类确定单元,用于根据所述CA请求,确定所述CA请求所属的请求种类;
处理时长确定单元,用于根据确定的所述CA请求所属的请求种类,确定处理所述CA请求所需的处理时长;
时限设置单元,用于基于处理所述CA请求所需的处理时长,为所述CA请求的处理设置超时时限。
本说明书实施例提供的一种信息的处理设备,所述信息的处理设备包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求;
如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,并将所述CA请求发送给所述TEE中相应的TA进行处理;
当到达处理所述CA请求的所述超时时限时,获取所述CA请求对应的处理结果,并向所述CA请求对应的所述REE中的CA返回所述处理结果。
由以上本说明书实施例提供的技术方案可见,本说明书实施例每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求,如果检测到存在待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
具体实施方式
本说明书实施例提供一种信息的处理方法、装置及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例一
如图1所示,本说明书实施例提供一种信息的处理方法,该方法的执行主体可以为终端设备中TEE对应的***,其中,该终端设备可以如手机或平板电脑等移动终端设备,还可以如个人计算机等设备。该方法具体可以包括以下步骤:
在步骤S102中,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求。
其中,可信应用TA(Trusted Application)可以是TEE(Trusted ExecutionEnvironment,可信运行环境)中运行的程序,TEE中可以包括一个或多个TA,每个TA可以具备一项或多项不同的功能,或者,可以提供某一种或多种不同的服务等。客户端应用CA请求可以是一种服务请求,用于请求提供某项服务等,在实际应用中,CA请求可以是用户触发应用程序执行某项服务请求后,CA接收到的该服务请求,CA请求可以是任意请求,例如某页面的数据的获取请求、某数据的上传请求或某文件的下载请求等,本说明书实施例对此不做限定。CA可以是REE(Rich Execution Environment,富运行环境)中运行的程序,终端设备中安装的任一应用程序可以对应REE中的一个CA,CA可以生成多种不同的CA请求,用于请求不同的服务。
在实施中,在终端设备中,为了支持安全应用场景(比如移动支付场景,金融理财场景等),通常会将终端设备在软件和硬件上划分成两个环境,一个是REE,属于开放环境,用户可以根据实际需要任意安装应用程序,另一个是TEE,属于可信环境,在TEE中,只有可信的或被认证的应用程序才能够被安装和运行。
REE可以由CA,以及应用操作***组成,TEE对应的***可以由TA,以及可信操作***(Trusted OS,Trusted Operating System)组成。REE可支持的应用程序非常丰富,但REE存在一定的安全风险,TEE是终端设备中一个独立的区域,向该区域中安装应用程序,需要受到管理平台的控制,该区域可接管关键设备,并提供硬件级别的安全隔离、以及保护资源和执行可信代码等。REE只能通过专用的ClientAPI(客户端API)访问TA。TA运行在TEE中,为相应的CA提供安全服务,如可以为CA提供输入密码或生成交易签名等安全服务。
当用户处于上述安全应用场景中时,REE中的CA需要接收用户触发的服务请求,然后,用户的终端设备可以将该服务请求发给TEE中的相关TA,由TEE中的TA负责处理上述服务请求,并将该服务请求对应的处理结果返回给REE。目前,REE和TEE的通信基础是共享内存,REE和TEE对应的***可以通过对同一地址空间(即共享内存中的地址空间)的读或写,来实现REE和TEE之间的信息交互。
目前,常用的技术方案只是对共享内存的访问权限做了控制,其中包括共享内存的创建和销毁。但是,对于共享内存在一定时间内的创建次数没有进行限制,从而导致只要获得了共享内存的创建权限,任何应用程序均可以在短时间内多次发起服务请求,访问控制无法在本质上阻止拒绝服务DOS情况的发生。为此,需要提供一种在时间上控制REE和TEE之间的通信时长和通信时刻,从而从本质上杜绝由REE导致的TEE环境下一个或多个TA拒绝服务(即DOS)的问题,具体可以包括以下内容:
本实施例中由REE和TEE构成的***架构可以参见图2所示,其中包括REE、TEE和共享内存等,其中的REE中包括两个CA(在实际应用中并不限于两个CA,还可以包括一个、三个或四个CA,甚至其它任何数量的CA等),TEE包括两个TA(在实际应用中并不限于两个TA,还可以包括一个、三个或四个TA,甚至其它任何数量的TA等),另外,TEE中还包括TA调度模块,TA调度模块可以用于调度TEE中的TA处理相应的CA请求。如图2所示,每个CA分别与共享内存通信连接,TEE与共享内存通信连接,TA调度模块分别与每个TA通信连接,此外,该***架构中还包括时间中断控制器,该时间中断控制器与TEE通信连接(其中包括与TA调度模块通信连接)。基于上述***架构,TEE中的TA将不再如上述处理方式中由REE的服务请求唤醒,而是完全由基于时间中断控制器的时钟唤醒。
为了实现在时间上控制REE和TEE之间的通信时长和通信时刻,从本质上杜绝由REE导致的TEE环境下一个或多个TA拒绝服务,可以为TEE预先设置时限控制机制,通过该时限控制机制可以控制TA为CA提供相应服务的时间段,该时间段可以是预先固定的时长,也可以是根据实际情况对该时间段进行不断的调整等。当REE中的CA向TEE发送服务请求(即CA请求)时,TEE对应的***可以检测当前是否处于上述设置的TA为CA提供相应服务的时间段,如果TA未处于上述时间段内,则可以确定TA无法为CA提供相应服务,此时,可以通知REE该CA请求还无法进行处理,需要等待,直到TA未处于上述时间段内。如果TA处于上述时间段内,则可以确定当前已到达TA被唤醒的时刻,此时,可以唤醒该TA,并可以为CA提供相应服务,TEE对应的***可以接收REE发送的CA请求,并可以将该CA请求确定为待处理的CA请求。
需要说明的是,可以根据实际情况,时限控制机制可以为TA设置运行周期,如1秒钟或3秒钟等,每当到达该运行周期时,可以唤醒TEE中的TA,以触发该TA运行,运行预定时长后,TA可以停止运行,直到再次到达运行周期则继续唤醒该TA,以触发该TA运行。在实际应用中,还可以不需要设定上述运行周期,而是通过不定期的方式唤醒TA,以触发TA运行,具体的触发机制可以包括多种,可以根据实际情况设定,本说明书实施例对此不做限定。
在步骤S104中,如果检测到存在待处理的CA请求,则为该CA请求设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理。
在实施中,如果TEE中的TA已被唤醒,则TEE对应的***可以检测是否存在需要处理的CA请求,如果不存在,则可以等待REE中的CA发送CA请求,如果存在,则可以通知REE对应的***发送CA请求或者直接获取REE中的CA发送的CA请求。然后,可以为每个CA请求设置处理该CA请求对应的超时时限,即当到达该超时时限时,TA将停止对该CA请求的处理,并输出处理结果,通过为每个不同的CA请求设置相应的处理的超时时限,可以在时间上有效控制REE和TEE之间的通信时长和通信时刻。其中,不同的CA请求可以设置不同的超时时限,具体可以根据CA请求中的内容确定,或者,也可以根据不同的业务需求设定,本说明书实施例对此不做限定。需要说明:正常情况下,在未达到超时时限的时间段内,该CA请求可以被处理完成。
通过上述方式为待处理的CA请求设置相应的超时时限后,可以触发TA调度模块为该CA请求分配相应的TA,TA调度模块可以根据该CA请求,从TEE中确定可以处理该CA请求的TA,然后,TEE对应的***可以将该CA请求发送给上述确定的TA,同时,TEE对应的***开始计时,该TA接收到该CA请求后,可以对该CA请求进行处理,直到上述计时时间到达上述超时时限。
在步骤S106中,当到达上述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果。
在实施中,TEE将待处理的CA请求提供给相应的TA处理后,TEE开始计时,在TEE对应的***的计时时间到达上述超时时限时,如果处理该CA请求的TA已经处于等待状态或者退出状态,则表明该CA请求处理成功,此时,该TA中已经形成该CA请求对应的处理结果,则TEE对应的***可以直接获取该处理结果。如果处理该CA请求的TA仍然处于运行状态,则表明该TA还未完成对该CA请求的处理,此时,可以认为存在攻击风险,同时,可以生成该CA请求对应的处理结果(即失败),TEE对应的***可以获取该处理结果,基于上述内容,判断CA请求是否处理成功或失败,可以取决于该CA请求的处理时长是否达到超时时限。
通过上述方式获取到该CA请求对应的处理结果后,可以通过该CA请求发送的路径,将该处理结果返回给REE中相应的CA,即TEE对应的***可以将该CA请求对应的处理结果发送给共享内存,REE对应的***检测到共享内存中存在该CA请求对应的处理结果后,可以从共享内存中获取该CA请求对应的处理结果,并可以将该处理结果提供给相应的CA,CA获取到该处理结果后,可以通过终端设备显示该处理结果,以通知用户知晓或了解该处理结果。
本说明书实施例提供一种信息的处理方法,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在待处理的客户端应用CA请求,如果检测到存在源于富运行环境REE中待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
实施例二
如图3所示,本说明书实施例提供一种信息的处理方法,该方法的执行主体可以为终端设备中TEE对应的***,其中,该终端设备可以如手机或平板电脑等移动终端设备,还可以如个人计算机等设备。该方法具体可以包括以下步骤:
上述实施例一中步骤S102的具体处理方式可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:
为了实现在时间上控制REE和TEE之间的通信时长和通信时刻,从本质上杜绝由REE导致的TEE环境下一个或多个TA拒绝服务,可以为TEE预先设置时限控制机制,而时限控制机制可以通过多种不同的方式实现,在此提供一种可选的实现方式,可以如图4所示的由REE和TEE构成的***架构,其中包括REE、TEE和共享内存等,其中的REE中包括两个CA(在实际应用中并不限于两个CA,还可以包括一个、三个或四个CA,甚至其它任何数量的CA等),TEE包括两个TA(在实际应用中并不限于两个TA,还可以包括一个、三个或四个TA,甚至其它任何数量的TA等),另外,TEE中还包括时限控制TA和TA调度模块,时限控制TA可以用于控制REE和TEE之间的通信时长和通信时刻,TA调度模块可以用于调度TEE中的TA处理相应的CA请求。如图4所示,每个CA分别与共享内存通信连接,时限控制TA和TA调度模块分别与共享内存通信连接,TA调度模块分别与每个TA(其中包括时限控制TA)通信连接,此外,该***架构中还包括时间中断控制器,该时间中断控制器分别与时限控制TA和TA调度模块通信连接。基于上述***架构,TEE中的TA将完全由基于时间中断控制器的时钟唤醒。
基于上述***架构,上述实施例一中步骤S102可以通过步骤S302~步骤S306的处理实现。
在步骤S302中,当到达预定的运行周期时,控制TEE中时限控制TA运行。
其中,运行周期可以包括上一次运行结束到本次运行开始所经历的时间(即相邻两次运行的时间间隔),还可以包括每一次运行的总时长等,具体如相邻两次运行的时间间隔为1秒钟或3秒钟等,每一次运行的总时长为30秒钟或10秒钟等,具体可以根据实际情况设定,本说明书实施例对此不做限定。时限控制TA可以是用于进行时限控制的TA,时限控制TA可以存在两种状态,即运行状态和未运行状态,在未运行状态下,TA不会与CA进行通信或数据交互。
在实施中,可以预先设定时限控制TA的运行周期,该运行周期具体可以通过需要控制REE和TEE之间的通信时长和通信时刻来确定,这样,每当到达该设置的运行周期时,可以控制时限控制TA运行,此时,时限控制TA的运行状态由未运行状态转换为运行状态,当达到运行的总时长后,可以控制时限控制TA停止运行,此时,时限控制TA的运行状态由运行状态转换为未运行状态。
在步骤S304中,每当检测到TEE中时限控制TA处于运行状态时,确定已到达TEE中TA被唤醒的时刻,并唤醒该TA。
在实施中,当REE中的CA向TEE对应的***发送服务请求(即CA请求)时,TEE对应的***可以检测时限控制TA当前所处的状态,如果时限控制TA当前未运行,则可以确定时限控制TA当前所处的状态为未运行状态,此时,可以通知REE该CA请求还无法进行处理,需要等待,直到时限控制TA进入运行状态。如果时限控制TA当前正在运行,则可以确定时限控制TA当前所处的状态为运行状态,此时,可以确定当前已到达TA被唤醒的时刻,可以唤醒该TA。
上述步骤S304的具体处理方式可以多种多样,除了可以通过上述方式实现外,还可以通过以下方式处理:当检测到TEE中时限控制TA处于运行状态,且时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达TEE中TA被唤醒的时刻。
其中,预定时长阈值可以为处理上述CA请求所需的最大处理时长,其中,处理上述CA请求所需的最大处理时长可以是指在正常情况(或通常的工作环境或状态)下,CA请求被相应的TA处理所需要的最坏处理时长(或采用最长执行路径处理CA请求所需要的时长)。最大处理时长可以根据经验值确定。
在实施中,当REE中的CA向TEE对应的***发送服务请求(即CA请求)时,TEE对应的***可以检测时限控制TA当前所处的状态,如果时限控制TA当前正在运行,则可以确定时限控制TA当前所处的状态为运行状态,此时,为了确保能够具有充足的时间对待处理的CA请求进行处理,可以获取时限控制TA剩余的运行时长,该时限控制TA剩余的运行时长可以由时限控制TA直接记录,还可以是时限控制TA只记录该时限控制TA已运行时长,然后,可以通过运行的总时长和已运行时长,计算得到剩余的运行时长等。得到时限控制TA剩余的运行时长后,可以将该剩余的运行时长与预定时长阈值进行比较,如果时限控制TA剩余的运行时长小于或等于预定时长阈值,则可以确定TA已无法处理CA请求,此时,可以不做任何处理。如果时限控制TA剩余的运行时长大于预定时长阈值,则可以确定已到达TA被唤醒的时刻,此时,可以唤醒该TA。
在步骤S306中,检测是否存在源于REE中待处理的客户端应用CA请求。
在实施中,当TEE中的TA被唤醒时,TEE中的TA可以为CA提供相应服务,此时,可以检测是否存在待处理的CA请求,如果存在待处理的CA请求,则TEE对应的***可以接收REE中CA发送的CA请求,并可以将该CA请求确定为待处理的CA请求,如果当前还不存在待处理的CA请求,则可以进行等待,直到CA请求出现或时限控制TA由运行状态转换为未运行状态(此时,不再检测是否存在待处理的CA请求,也不再处理CA请求)。
如果检测到存在待处理的CA请求,则可以执行上述实施例一中步骤S104的处理,步骤S104的具体处理方式可以多种多样,以下再提供一种可选的处理方式,具体可以包括以下步骤S308~步骤S316的处理。
在步骤S308中,如果检测到存在待处理的CA请求,则读取该CA请求。
在实施中,通过上述方式确定存在待处理的CA请求后,可以从共享内存中获取该CA请求,然后,可以读取该CA请求中包含的内容,并可以对该CA请求中包含的内容进行分析,得到分析结果。
在步骤S310中,根据上述CA请求,确定该CA请求所属的请求种类。
其中,请求种类可以包括多种,例如,输入密码及验证密码类的请求,或者,生成交易签名类的请求等,请求种类可以根据实际情况设定,本说明书实施例对此不做限定。
在实施中,通过上述步骤S308的处理,读取待处理的CA请求后,可以对该CA请求中包含的内容进行分析,确定该CA请求所属的请求种类,例如,该CA请求中包含用户提交的订单信息,则可以确定该CA请求所属的请求种类为生成交易签名类等。
在步骤S312中,根据确定的CA请求所属的请求种类,确定处理该CA请求所需的处理时长。
在实施中,不同请求种类可以对应有不同的处理时长,请求种类与处理时长的对应关系可以通过多种方式确定,例如,可以预先建立不同请求种类与处理时长的对应关系表,该对应关系表可以根据实际情况预先设定,可以如表1所示。
表1
请求种类 |
处理时长 |
种类1 |
T1 |
种类2 |
T2 |
种类3 |
T3 |
除了可以通过上述表格的方式设置外,还可以通过其它方式设置,例如,可以由用户或技术人员每次使用的过程中设定,或者,可以预先设定处理时长的计算方式,然后,可以基于确定的CA请求所属的请求种类等相关信息,计算处理该CA请求所需的处理时长等,本说明书实施例对采用何种方式确定处理该CA请求所需的处理时长不做限定。
在实际应用中,为了提高处理效率,可以预先建立不同请求种类与处理时长的对应关系表,当通过上述步骤S310确定该CA请求所属的请求种类后,可以通过如上述表1所示的对应关系,查找该CA请求所属的请求种类对应的处理时长,可以将查找到的处理时长确定为处理该CA请求所需的处理时长。
在步骤S314中,基于处理上述CA请求所需的处理时长,为该CA请求的处理设置超时时限。
在实施中,超时时限可以以处理上述CA请求所需的处理时长进行表述,例如,处理时长为5秒钟,则超时时限也可以是5秒钟,即超过5秒钟,则认为已超时,基于此,超时时限的数值可以等于该处理时长,而在实际应用中,超时时限的数值可以不等于该处理时长,例如,超时时限的数值可以是该处理时长加上预定时长得到的数值,具体如,处理时长为5秒钟,超时时限的数值可以为7秒钟(即5秒钟+2秒钟)等,此时,即表示在时长超过7秒钟后,可以认为已超时。
基于上述内容,在得到处理上述CA请求所需的处理时长后,可以直接将该处理时长确定为超时时限,或者,基于处理上述CA请求所需的处理时长,将其增加预定时长后得到的数值作为超时时限等。具体处理可以根据实际情况设定,本说明书实施例对此不做限定。
在步骤S316中,将上述CA请求发送给TEE中相应的TA进行处理。
在步骤S318中,当到达处理上述CA请求的超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果。
在实际应用中,在达到处理上述CA请求的超时时限之前,TEE中的TA处理该CA请求的情况可以包括两种,一种情况是:在达到处理上述CA请求的超时时限的时刻,处理该CA请求的TA已经处于等待状态或者退出状态,即该TA已处理完成该CA请求,并得到相应的处理结果,此时,可以基于上述步骤S318的处理执行,另一种情况是:在达到处理上述CA请求的超时时限的时刻,处理该CA请求的TA仍然处于运行状态,即该TA未处理完成该CA请求,此时,TEE对应的***也可以生成一个处理结果,且该处理结果为失败,针对此情况,可以通过下述步骤S320和步骤S322处理。
在步骤S320中,如果上述CA请求对应的处理结果为失败,则确定处理该CA请求的TA存在风险。
在实施中,如果在达到处理上述CA请求的超时时限的时刻,处理该CA请求的TA仍然处于运行状态,即该TA未处理完成该CA请求,此时,TEE对应的***也可以生成一个处理结果,且该处理结果为失败。而如果该处理结果为失败,并且考虑到正常情况下,在未达到超时时限的时间段内,该CA请求可以被处理完成,则TEE对应的***可以确定处理该CA请求的TA存在风险。
在步骤S322中,输出处理上述CA请求的TA存在风险的提示消息。
本说明书实施例提供一种信息的处理方法,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求,如果检测到存在待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中的相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
实施例三
如图5所示,本说明书实施例提供一种信息的处理方法,该方法的执行主体可以为终端设备中TEE对应的***,其中,该终端设备可以如手机或平板电脑等移动终端设备,还可以如个人计算机等设备。该方法具体可以包括以下步骤:
上述实施例一中步骤S102的具体处理方式可以多种多样,以下提供一种可选的处理方式,具体可以包括以下内容:
可以如图4所示的由REE和TEE构成的***架构,基于上述***架构,TEE中的TA将完全由基于时间中断控制器的时钟唤醒。
基于上述***架构,上述实施例一中步骤S102可以通过步骤S502~步骤S506的处理实现,并且,上述实施例二中是通过运行周期的方式控制时限控制TA运行,在本实施例中,可以采用非周期的方式控制时限控制TA运行。
在步骤S502中,接收TEE中时限控制TA运行的控制指令,并基于时限控制TA运行的控制指令控制时限控制TA运行。
在步骤S504中,每当检测到TEE中时限控制TA处于运行状态,且所述时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达TEE中TA被唤醒的时刻,唤醒该TA。
其中,预定时长阈值可以为处理上述CA请求所需的最大处理时长。
在步骤S506中,检测是否存在源于REE中待处理的客户端应用CA请求。
如果检测到存在待处理的CA请求,则可以执行上述实施例一中步骤S104的处理,步骤S104的具体处理方式可以多种多样,以下再提供一种可选的处理方式,具体可以包括以下步骤S508~步骤S516的处理。
在步骤S508中,如果检测到存在待处理的CA请求,则读取该CA请求。
在步骤S510中,根据上述CA请求,确定该CA请求所属的请求种类。
在步骤S512中,根据确定的CA请求所属的请求种类,确定处理该CA请求所需的处理时长。
在步骤S514中,基于处理上述CA请求所需的处理时长,为该CA请求的处理设置超时时限。
在步骤S516中,将上述CA请求发送给TEE中相应的TA进行处理。
在步骤S518中,当到达处理上述CA请求的超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果。
在实际应用中,在达到处理上述CA请求的超时时限之前,TEE中的TA处理该CA请求的情况可以包括两种,一种情况是:在达到处理上述CA请求的超时时限的时刻,处理该CA请求的TA已经处于等待状态或者退出状态,即该TA已处理完成该CA请求,并得到相应的处理结果,此时,可以基于上述步骤S518的处理执行,另一种情况是:在达到处理上述CA请求的超时时限的时刻,处理该CA请求的TA仍然处于运行状态,即该TA未处理完成该CA请求,此时,TEE也可以生成一个处理结果,且该处理结果为失败,针对此情况,可以通过下述步骤S520和步骤S522处理。
在步骤S520中,如果上述CA请求对应的处理结果为失败,则确定处理该CA请求的TA存在风险。
在步骤S522中,输出处理上述CA请求的TA存在风险的提示消息。
本说明书实施例提供一种信息的处理方法,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求,如果检测到存在待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
实施例四
以上为本说明书实施例提供的信息的处理方法,基于同样的思路,本说明书实施例还提供一种信息的处理装置,如图6所示。
该信息的处理装置包括:唤醒模块601、时限设置模块602和结果处理模块603,其中:
唤醒模块601,用于每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求;
时限设置模块602,用于如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,并将所述CA请求发送给所述TEE中相应的TA进行处理;
结果处理模块603,用于当到达处理所述CA请求的所述超时时限时,获取所述CA请求对应的处理结果,并向所述CA请求对应的所述REE中的CA返回所述处理结果。
本说明书实施例中,所述唤醒模块601,用于每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,并唤醒所述TA。
本说明书实施例中,所述唤醒模块601,用于当检测到所述TEE中时限控制TA处于运行状态,且所述时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达所述TEE中TA被唤醒的时刻。
本说明书实施例中,所述装置还包括:
第一控制模块,用于当到达预定的运行周期时,控制所述时限控制TA运行;或者,
第二控制模块,用于接收所述时限控制TA运行的控制指令,并基于所述时限控制TA运行的控制指令控制所述时限控制TA运行。
本说明书实施例中,所述时限设置模块602,包括:
读取单元,用于如果检测到存在待处理的CA请求,则读取所述CA请求;
种类确定单元,用于根据所述CA请求,确定所述CA请求所属的请求种类;
处理时长确定单元,用于根据确定的所述CA请求所属的请求种类,确定处理所述CA请求所需的处理时长;
时限设置单元,用于基于处理所述CA请求所需的处理时长,为所述CA请求的处理设置超时时限。
本说明书实施例中,所述装置还包括:
风险确定模块,用于如果所述CA请求对应的处理结果为失败,则确定处理所述CA请求的TA存在风险;
提示模块,用于输出处理所述CA请求的TA存在风险的提示消息。
本说明书实施例中,所述预定时长阈值为处理源于所述REE中的所述CA请求所需的最大处理时长。
本说明书实施例提供一种信息的处理装置,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在待处理的客户端应用CA请求,如果检测到存在源于富运行环境REE中待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
实施例五
以上为本说明书实施例提供的信息的处理装置,基于同样的思路,本说明书实施例还提供一种信息的处理设备,如图7所示。
所述信息的处理设备可以为上述实施例提供的终端设备。
信息的处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对信息的处理设备中的一系列计算机可执行指令。更进一步地,处理器701可以设置为与存储器702通信,在信息的处理设备上执行存储器702中的一系列计算机可执行指令。信息的处理设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706。
具体在本实施例中,信息的处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对信息的处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求;
如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,并将所述CA请求发送给所述TEE中相应的TA进行处理;
当到达处理所述CA请求的所述超时时限时,获取所述CA请求对应的处理结果,并向所述CA请求对应的所述REE中的CA返回所述处理结果。
本说明书实施例中,所述每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒所述TA,包括:
每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,并唤醒所述TA。
本说明书实施例中,所述每当检测到所述TEE中时限控制TA处于运行状态时,确定已到达所述TEE中TA被唤醒的时刻,包括:
当检测到所述TEE中时限控制TA处于运行状态,且所述时限控制TA剩余的运行时长大于预定时长阈值时,确定已到达所述TEE中TA被唤醒的时刻。
本说明书实施例中,还包括:
当到达预定的运行周期时,控制所述时限控制TA运行;或者,
接收所述时限控制TA运行的控制指令,并基于所述时限控制TA运行的控制指令控制所述时限控制TA运行。
本说明书实施例中,所述预定时长阈值为处理源于所述REE中的所述CA请求所需的最大处理时长。
本说明书实施例中,所述如果检测到存在待处理的CA请求,则为所述CA请求的处理设置超时时限,包括:
如果检测到存在待处理的CA请求,则读取所述CA请求;
根据所述CA请求,确定所述CA请求所属的请求种类;
根据确定的所述CA请求所属的请求种类,确定处理所述CA请求所需的处理时长;
基于处理所述CA请求所需的处理时长,为所述CA请求的处理设置超时时限。
本说明书实施例中,还包括:
如果所述CA请求对应的处理结果为失败,则确定处理所述CA请求的TA存在风险;
输出处理所述CA请求的TA存在风险的提示消息。
本说明书实施例提供一种信息的处理设备,每当到达可信运行环境TEE中可信应用TA被唤醒的时刻,唤醒该TA,并检测是否存在源于富运行环境REE中待处理的客户端应用CA请求,如果检测到存在待处理的CA请求,则为该CA请求的处理设置超时时限,并将该CA请求发送给TEE中相应的TA进行处理,当到达处理该CA请求的所述超时时限时,获取该CA请求对应的处理结果,并向该CA请求对应的REE中的CA返回该处理结果,这样,通过设置唤醒TA的时刻的方式,触发TEE主动和REE进行信息交互,从而可以从本质上控制REE和TEE的通信时刻和通信时长,同时,还为待处理的CA请求设置超时时限,使得TEE对应的***可以在到达超时时限后直接获取处理结果,并返回,从而在时间上达到对CA请求处理时长的控制,防止可能存在风险的TA长时间处理CA请求造成信息泄露。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、***、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例是参照根据本说明书实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程信息的处理设备的处理器以产生一个机器,使得通过计算机或其他可编程信息的处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程信息的处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程信息的处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、***或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。