一种基于可信任环境的认证保护系统及方法与流程

文档序号:16630766发布日期:2019-01-16 06:33阅读:190来源:国知局
一种基于可信任环境的认证保护系统及方法与流程

本发明涉及安全认证技术领域,尤其涉及一种在可信任执行环境下的认证保护系统及方法。



背景技术:

随着移动网络技术和移动终端的发展,人们获取信息和处理事务的方式逐渐由pc转移到移动终端。由于平板电脑,智能手机,电视盒子等设备迅速发展和普及,越来越多的敏感信息被暴露出来,而这些移动设备操作系统的开放性却无法保证设备的安全,网站账号被盗,银行卡内资金丢失,手机加密文件破解的状况时有发生。因此,出现了一种采用硬件支持的隔离执行技术,可信任执行环境(trustedexecutionenvironment;tee),是全球平台国际标准组织(globalplatform)组织定义的一种技术框架,用以支持非可信执行环境和可信执行环境的软硬件隔离,由独立于智能移动终端操作系统的、隔离的、可扩展的执行环境来负责安全应用的执行。

图1为现有可信任环境的设计框架示意图,如图1所示,现有可信任环境的设计框架,包括普通环境110和可信任执行环境120这两个独立的环境。其中,普通环境110具备客户端应用(clientapplication;ca)111、tee客户端api(applicationprogramminginterface,应用程序编程接口)112、以及tee驱动113;可信任执行环境120具备可信应用(trustedapplication;ta)121、可信应用管理器122、tee内部api123、以及安全驱动124。普通环境110下的客户端应用111作为客户端发起请求,安全环境120下的可信应用121作为相应端接收和回应请求,由此组织而成一套交互过程。

图2为现有可信任环境进行安全认证的流程图,在tee框架下客户端应用和可信应用之间的认证流程如下:

步骤201,建立上下文。其中,客户端应用向tee安全框架发出申请,tee根据当前系统情况,确认是否创建上下文资源。

步骤202,创建连接,并加载可信应用。其中,客户端应用提出创建连接,以uuid(universallyuniqueidentifier,通用唯一识别码)为标示符,确认需要连接的可信应用。tee接收到请求后,会检索当前可信应用是否存在,若不存在,则通过代理程序加载对应可信应用,该过程需要进行认证操作。加载可信应用成功后,返回结构和随机数给客户端应用。如果可信应用已经存在tee中,则直接结果返回给客户端应用。通过代理程序加载对应可信应用时,客户端应用提出验证连接请求,tee接收到请求后,验证是否合法,并把验证结果返回给tee,最后返回给客户端应用。

步骤203,安全业务调用。其中,客户端应用有安全业务的调用需求时,调用预设参数,并通过句柄进入tee环境。由tee环境转接这些调用参数,并重映射给对应的可信应用。可信应用根据收到的调用参数,进行相应的安全业务功能分支处理,完成后把对应结果返回给tee。tee进而把结果重映射给客户端应用。客户端应用可以在连接有效期内,重复上述安全业务请求。

步骤204,关闭并销毁连接。其中,客户端应用可以根据自身业务情况,在完成所有安全业务请求后,把会话句柄发给tee,提请结束该连接。tee首先会通知可信应用程序结束所有服务,并销毁该可信应用对应的会话句柄,同时根据自身资源情况,决定是否销毁对应的可信应用。

步骤205,结束并销毁上下文。其中,客户端应用向tee申请结束上下文。tee释放该上下文,并销毁环境信息。

上述现有tee框架,仅定义了关于安全隔离技术,并没有对客户端程序和tee之间的交互作安全的保护,即任意的普通程序,都可以具有对tee框架进行同等调用的权限。另外,从目前主要的针对tee操作系统的攻击实例来看,都是通过对tee框架的刺探调用作为开始,分析调用过程和数据结果,逐步突破直至整个tee操作系统被攻破。从这一点上说,只有tee框架和可信应用是不充分的,还需要保证tee的交互过程的完整性、连续性和可信性。



技术实现要素:

为了解决现有技术存在的不足,本发明的目的在于提供一种基于可信任环境的认证保护系统及方法,基于客户端应用的安全校验检测,通过后使用哈希算法和上下文密钥,对连接建立过程使用的参数进行计算、对功能调用过程使用守护应用提供的随机数作为辅助参数进行计算,同时在守护应用内进行比对,以保证连接过程的每一步骤的参数完整可信和过程连续可信。

为实现上述目的,本发明提供的基于可信任环境的认证保护系统,包括,客户应用端、可信任执行环境处理单元、守护应用端,以及可信应用端,其中,

所述客户应用端,其向所述可信任执行环境处理单元提出安全认证业务请求,调用安全业务;

所述可信任执行环境处理单元,其将所述安全认证业务请求分别转发给所述守护应用端、所述可信应用端,并将验证结果返回给所述客户应用端;为所述客户应用端和所述可信应用端创建会话连接;

所述守护应用端,其用于对所述安全认证业务请求进行验证;

所述可信应用端,其与所述客户应用端进行会话,并为所述客户应用端提供业务服务。

进一步地,所述安全认证业务请求,包括,建立上下文的请求、建立可信连接的请求、调用安全业务请求、结束会话的请求、以及结束上下文的请求。

进一步地,所述客户应用端,向所述可信任执行环境处理单元发送建立上下文的请求,并获取加密的初始上下文秘钥;向所述可信任执行环境处理单元发送建立可信连接的请求,接收返回结果及随机数;向所述可信任执行环境处理单元发送调用安全业务请求,接收返回结果更新随机数。

进一步地,所述可信任执行环境处理单元,其为安全认证业务请求的验证指定哈希算法。

进一步地,所述守护应用端,其根据所述可信任执行环境处理单元指定的哈希算法对安全认证业务请求进行验证。

更进一步地,所述算法为哈希算法,包括hmac_sha256、hmac_sha512或md5。

为实现上述目的,本发明提供的基于可信任环境的认证保护方法,包括以下步骤:

客户应用端向可信任执行环境处理单元申请建立上下文的步骤;

客户应用端与可信应用端建立会话的步骤;

客户应用端的安全业务调用的步骤;

可信应用端结束会话的步骤;

守护应用端结束上下文的步骤。

进一步地,所述客户应用端向可信任执行环境处理单元申请建立上下文的步骤,进一步包括:可信任执行环境处理单元接收客户应用端发出的包含身份认证信息的建立上下文的请求;守护应用端验证所述身份认证信息,使用所述可信任执行环境处理单元指定的哈希算法,创建并加密初始上下文秘钥;客户应用端解密并提取所述初始上下文秘钥,且记录所使用的哈希算法。

进一步地,所述哈希算法为hmac_sha256、hmac_sha512或者md5。

进一步地,所述客户应用端与可信应用端建立会话的步骤,进一步包括:

可信任执行环境处理单元接收客户应用端发送的目标为通用唯一识别码的建立可信连接的请求;可信应用端将通用唯一识别码,基于秘钥、采用可信任执行环境处理单元指定的哈希算法,进行计算,并将计算结果与通用唯一识别码一起发送给守护应用端;守护应用端验证所述计算结果,对通用唯一识别码对应的可信应用端进行检查、验签、执行,并记录对应的连接句柄,生成一次性随机数;客户应用端接收所述连接句柄和一次性随机数并保存。

进一步地,所述客户应用端的安全业务调用的步骤,进一步包括:客户应用端将调用参数、随机数作为输入,按照哈希算法进行计算后,将计算结果与预设参数一起发送给守护应用端;守护应用端对所述计算结果进行验证,并生成新的随机数;可信任执行环境处理单元将验证结果及新的随机数转发给客户应用端;客户应用端接收新的随机数,覆盖替换旧的存储信息。

进一步地,所述守护应用端对所述计算结果进行验证,是守护应用端将所述预设参数,按照内部记录的随机数,基于秘钥及可信任执行环境处理单元指定的哈希算法进行计算,与客户应用端发送的计算结果进行比较。

进一步地,所述可信应用端结束会话的步骤,进一步包括:客户应用端将随机数作为输入,基于秘钥、哈希算法进行计算后,将计算结果与句柄参数一起发送给守护应用端;守护应用端对所述计算结果进行验证,通知可信应用端结束所有服务并销毁该可信应用端对应的句柄。

进一步地,所述守护应用端对所述计算结果进行验证,是守护应用端将句柄参数,按照内部记录的随机数,基于秘钥及可信任执行环境处理单元指定的哈希算法,与客户应用端发送的计算结果进行比较。

进一步地,守护应用端结束上下文的步骤,进一步包括:客户应用端使用秘钥和哈希算法,对上下文参数进行计算,将计算结果与上下文参数一起通过可信任执行环境处理单元发送给所述守护应用端;守护应用端对所述计算结果进行验证,可信任执行环境处理单元销毁内部的所述秘钥,释放上下文,并清理运行环境。

更进一步地,守护应用端对所述计算结果进行验证,是守护应用端将上下文参数,按照内部记录的随机数,基于秘钥及可信任执行环境处理单元指定的哈希算法,与客户应用端发送的计算结果进行比较。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为现有可信任环境的设计框架示意图;

图2为现有可信任环境进行安全认证的流程图;

图3为根据本发明的基于可信任环境的认证保护系统结构示意图;

图4为根据本发明的基于可信任环境的认证保护方法流程图;

图5为根据本发明的建立上下文的流程图;

图6为根据本发明的创建连接的流程图;

图7为根据本发明的安全业务调用的流程图;

图8为根据本发明的关闭并销毁连接的流程图;

图9为根据本发明的结束并销毁上下文的流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图3为根据本发明的基于可信任环境的认证保护系统结构示意图,如图3所示,本发明的基于可信任环境的认证保护系统301,包括,客户应用端302、可信任执行环境处理单元303、守护应用端304,以及可信应用端305。

客户应用端302,用于向可信任执行环境处理单元303提出安全认证业务请求,与可信任执行环境处理单元303进行信息交互。该安全认证业务请求包括,建立上下文的请求、建立可信连接的请求、调用安全业务请求、结束会话的请求、以及结束上下文的请求等。

客户应用端302,其将身份认证信息发送给可信任执行环境处理单元303,申请建立上下文的请求,从接收的key中提取出初始秘钥key;与可信任执行环境处理单元303建立连接及会话。

可信任执行环境处理单元303,其接收客户应用端302提出的安全认证业务请求,并进行相应的处理。可信任执行环境处理单元303将来自客户应用端302申请建立上下文的请求转发给守护应用端304,并将守护应用端304生成的加密验证秘钥转发给客户应用端302;与客户应用端302建立会话并对其调用安全业务请求进行验证。可信任执行环境处理单元303为守护应用端304指定使用哈希算法运算而得到的计算结果。该哈希算法在交互过程中可以是相同的哈希算法,也可以是动态更新的哈希算法。哈希算法可以是hmac_sha256、hmac_sha512或者md5。

守护应用端304,用于验证客户端应用302发送的验证用信息,基于其结果向客户端应用302发送结果和/或后续生成验证用信息所用的秘钥和随机数。该秘钥和随机数是随机生成的。守护应用端304,通过使用与客户应用端302使用的同样的哈希算法对所记录的秘钥进行计算,并将其结果与验证用信息进行比对,来进行验证。

可信应用端305,用于执行或关闭可信应用。

图4为根据本发明的基于可信任环境的认证保护方法流程图,下面将参考图4对本发明的基于可信任环境的认证保护方法进行详细描述:

首先,在步骤401,客户应用端302向可信任执行环境处理单元303申请建立上下文。图5为根据本发明的建立上下文的流程图,参考图5,客户应用端302向可信任执行环境处理单元303申请建立上下文的步骤包括:

步骤501客户应用端302向可信任执行环境处理单元303发出申请建立上下文请求,同时提供证明自身合法性的身份认证信息;

步骤502,可信任执行环境处理单元303向守护应用端304转发该请求和身份认证信息,由守护应用端304验证客户应用端304所提供的身份认证信息;

步骤503,守护应用端304选择使用某一种哈希(hash)算法,分配并记录初始上下文秘钥(key),其用于后续的交互过程的验证秘钥;

步骤504守护应用端304使用客户应用端302所提供的身份信息中的公钥对秘钥进行加密,并返回给可信任执行环境处理单元303;

其中,在可信任执行环境下的key必须是随机产生的,且选择的哈希算法为hmac_sha256、hmac_sha512或者md5,这取决于守护应用端304的选择;

步骤505,可信任执行环境处理单元303将加密的秘钥返回给客户应用端302,由客户应用端302使用与身份认证信息中的公钥对应的私钥,解密并提取出初始秘钥,且记录所使用的哈希算法。

在步骤402,客户应该端302与可信任执行环境处理单元303建立会话。图6为根据本发明的创建连接的流程图,下面参考图6,客户应该端302与可信任执行环境处理单元303建立会话的过程,包括以下步骤:

步骤601,客户应用端302向可信任执行环境处理单元303提出申请建立目标为通用唯一识别码(uuid)的可信连接;客户应用端302需要以key作为秘钥,采用哈希算法把uuid等全部请求信息进行哈希计算,把对应的结果连同请求信息一起经由可信任执行环境处理单元303发送给守护应用端304;

步骤602,守护应用端304接受到该结果和请求信息后,按照指定哈希算法,使用内部所记录的秘钥对请求信息进行计算,将得到结果与客户应用端302所发送的结果进行比对;

步骤603,如果比对结果不一致,则转至步骤607;如果比对结果一致,进行下一步骤;

步骤604,进行后续常规的与通用唯一识别码对应的可信应用端305的检查、验签、执行,并记录对应的连接句柄;

步骤605,加载可信应用成功后,守护应用端304产生一次性随机数(nonce),并将其与连接句柄经由可信任执行环境处理单元303返回给客户应用端302,其中,该随机数必须是随机产生的;

步骤606,客户应用端302接收到该随机数和连接句柄后,将其保存在客户应用端302的安全存储堆栈内,以备后续操作使用;

步骤607,终止会话申请请求,由守护应用端304将失败结果返回给客户应用端320。

在步骤403,客户应用端302的安全业务调用。图7为根据本发明的安全业务调用的流程图,参考图7,客户应用端302的安全业务调用过程包括以下步骤:

步骤701,客户应用端302准备调用预设参数(param),先按照将{调用预设参数|随机数}的运算作为输入,按照指定的哈希算法,使用秘钥进行计算后,将得到的结果与调用预设参数一起经由可信任执行环境处理单元303发送给守护应用端304;

步骤702,守护应用端304根据内部记录的随机数按照相同拼接方式,按照秘钥和指定哈希算法,重新进行计算,并将得到的结果和客户应用端302所发送的结果进行比对;

步骤703,如果比对结果不一致,则转至步骤707;如果比对结果一致,,进行下一步骤;

步骤704,守护应用端304重新产生新的随机数,并将其与安全调用请求的结果一起经由可信任执行环境处理单元303发送给客户应用端302;

步骤705,可信任执行环境处理单元303接收到验证结果与新的随机数后,启动安全操作;

步骤706,客户应用端302在接收到新的随机数后,覆盖替换旧的存储信息即上述步骤402中的随机数;

步骤707,终止该安全业务的调用申请请求,并将失败结果经由可信任执行环境处理单元303返回给客户端应用。

在步骤404,客户应用端302在会话的有效期内,重复步骤403任意多次。其中,客户端应用对于调用预设参数、随机数、秘钥、哈希算法、以及守护应用端304对哈希计算的结果比对处理,以及重新产生随机数等处理,与上述步骤403相同。

在步骤405,可信应用端305结束会话。图8为根据本发明的关闭并销毁连接的流程图,参考图8,可信应用端305结束会话流程(关闭并销毁连接)包括以下步骤:

步骤801,客户应用端302在完成所有安全业务请求后,向可信任执行环境处理单元303请求申请结束当前会话,同时按照覆盖后随机数,基于秘钥和哈希算法进行计算,并将得到的结果与所保存的句柄参数一起经由可信任执行环境处理单元303发送给守护应用端304;

步骤802,守护应用端304按照内部所记录的随机数,基于秘钥和指定哈希算法,对参数进行对应的计算,并将其结果与客户应用端302所发送的计算结果进行比对;

步骤803,如果比对结果不一致,则转至步骤806;如果比对结果一致,则进行下一步骤;

步骤804,守护应用端304通知可信应用端305程序结束所有服务,并销毁与该可信应用端305对应的会话句柄;

步骤805,可信应用端305销毁连接,可信任执行环境处理单元303不需要通过守护应用产生或保存任何随机数;

步骤806,终止该结束请求,将失败结果经由可信任执行环境处理单元303返回给客户应用端302。

另外,返回后客户应用端302的关闭连接过程结束,由于其连接句柄和随机数已经失效,所以客户应用端302只能请求一次关闭连接的安全业务请求。

在步骤406,守护应用端304结束上下文。图9为根据本发明的结束并销毁上下文的流程图,参考图9,守护应用端304结束并销毁上下文的流程包括以下步骤:

步骤901,客户应用端302向可信任执行环境处理单元303申请结束上下文,使用秘钥和哈希算法,对上下文参数进行计算,并将其结果与上下文请求一起经由可信任执行环境处理单元303发送给守护应用端304;

步骤902,守护应用端304按照指定哈希算法和内部秘钥进行计算,将其结果与客户应用端302所发送的结果进行比对;

步骤903,如果比对结果不一致,则转至步骤905;如果比对结果一致,则进行下一步骤;

步骤904,守护应用端304销毁内部秘钥,释放该上下文,并清理运行环境;

步骤905,终止该结束上下文申请,将失败结果经由可信任执行环境处理单元303返回给客户应用端302。

至此,所有可信交互会话流程结束。

另外,在步骤402和步骤403中,在返回客户应用端302之前,除了更新随机数,可以根据自定义的安全策略,决定是否需要更新后续会话使用的秘钥以及哈希算法。秘钥的更新策略,可以是基于时间间隔来更新,也可以是基于返回客户应用端302的次数来更新。更新的时机,可以由守护应用端304进行选择,如在会话过程结束后,主动更新秘钥,也可以在安全业务调用过程中进行动态更新。另外,如果可信任执行环境处理单元303认为对应可信应用端304的权限需要较高的安全策略,那么也可以动态更新哈希算法。客户应用端302收到返回的结果后,根据更新内容,覆盖原有秘钥和哈希算法。

根据本发明,通过使用哈希算法和上下文秘钥,对创建连接过程使用的参数进行计算、对功能调用即安全业务调用过程使用守护应用提供的随机数作为辅助参数进行计算,同时在守护应用端304内进行比对,以保证连接过程的每一步骤的参数完整可信和过程连续可信,因此能够保证客户应用端302在跟可信任执行环境处理单元303的交互过程完整、连续及可信。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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