一种安全进行身份认证的方法和系统的制作方法

文档序号:10660603阅读:445来源:国知局
一种安全进行身份认证的方法和系统的制作方法
【专利摘要】本申请公开了一种安全进行身份认证的方法和系统,其中所述方法包括:响应于普通执行环境中的应用程序需要进行用户身份认证,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程;所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务;接管与身份认证有关的硬件设施;所述身份认证安全服务根据解析的服务请求进行身份认证;将身份认证结果通知给所述安全服务管理进程;释放与身份认证有关的硬件设施;及切换回到普通执行环境并将身份认证结果返回给所述应用程序。本发明方法和系统可实现用于身份认证的身份信息的安全采集和存储及身份认证计算过程的安全执行。
【专利说明】
_种安全进行身份认证的方法和系统
技术领域
[0001]本申请涉及电数字数据处理领域,尤其涉及一种安全进行身份认证的方法和系统。
【背景技术】
[0002]身份认证是通过验证对象的一个或多个参数的真实性,来确认对象是否有效。身份认证是确保一个计算平台安全的第一道防护,也是实现可信计算平台的关键技术之一。
[0003]目前,移动终端身份认证的方法主要包括口令认证、图形认证、虹膜认证和指纹认证等,其身份认证过程为:在屏幕上显示认证界面,提示用户输入身份信息;采集用户输入的身份信息;将采集到的身份信息与系统中已存的身份信息进行比对,如果一致,则身份认证通过,否则失败。这种方法实用、有效,但在实际使用中,存在以下缺点和不足:
[0004](I)用于身份认证的身份信息采集不安全。针对身份信息采集过程,犯罪分子可以通过很多手段,比如,伪造认证界面或后台监视输入动作等,从而获取用户的身份信息;
[0005](2)用于身份认证的身份信息存储不安全。不管是口令、图形、虹膜还是指纹,最终都是以二进制数据的形式存放在设备的存储器中。由于这些敏感数据缺少可信存储,犯罪分子很容易对这些数据进行安全攻击,从而获取用户身份信息;
[0006](3)身份信息的认证过程不安全。身份信息的认证过程即对采集的身份信息和设备已存的身份信息进行比对计算。犯罪分子可以监控或偷窥认证过程,获取敏感数据或中间数据,干扰认证过程等,从而干扰认证结果。

【发明内容】

[0007]本申请的目标在于提供一种安全进行身份认证的方法和系统,其能实现用于身份认证的身份信息的安全采集和存储及身份认证计算过程的安全执行。
[0008]本申请的目标由一种安全进行身份认证的方法实现,该方法包括:
[0009]响应于普通执行环境中的应用程序需要进行用户身份认证,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程;
[0010]所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务;
[0011]接管与身份认证有关的硬件设施;
[0012]所述身份认证安全服务根据解析的服务请求进行身份认证;
[0013]将身份认证结果通知给所述安全服务管理进程;
[0014]释放与身份认证有关的硬件设施;及
[0015]切换回到普通执行环境并将身份认证结果返回给所述应用程序。
[0016]本申请的目标还由一种安全进行身份认证的系统实现,该系统包括:
[0017]执行环境切换模块,用于在确定普通执行环境中的应用程序需要进行用户身份认证时,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程;
[0018]身份认证安全服务创建模块,用于使所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务;
[0019]硬件设施接管模块,用于接管与身份认证有关的硬件设施;
[0020]身份认证模块,用于使所述身份认证安全服务根据解析的服务请求进行身份认证;
[0021 ]身份认证结果通知模块,用于将身份认证结果通知给所述安全服务管理进程;
[0022]硬件设施释放模块,用于释放与身份认证有关的硬件设施;及
[0023]执行环境回切模块,用于切换回到普通执行环境并将身份认证结果返回给所述应用程序。
[0024]在本发明中,术语“可信执行环境”指移动设备(包含智能手机、平板电脑、机顶盒等)的主处理器上的一个安全区域,其可以保证加载到该环境内部的代码和数据的安全性、机密性以及完整性。例如,可信执行环境可采用下述之一实施:支持TrustZone的ARM处理器、集成平台安全处理器PSP的AMD处理器、支持虚拟化技术的MIPS处理器等。术语“普通执行环境”指除可信执行环境之外的执行环境。
[0025]通过本发明方法或系统,身份认证的整个执行过程,包括身份信息的采集、身份信息的验证、身份信息的安全存储和认证提示界面的显示,都在可信执行环境执行。普通执行环境中的应用或服务除了认证结果外,无法获取身份认证过程中产生的任何数据。在身份认证的执行过程中,身份认证安全服务接管移动终端的显示屏、按键、虹膜采集器和指纹采集器等与身份认证相关的硬件设施,普通执行环境中的任何应用或服务都无法访问、读写这些硬件设施。只有当身份认证安全服务主动释放控制权后,其他应用或服务才可以访问、读写这些硬件设施。身份信息经过特殊的算法处理后,存储在安全存储区中。因而,本发明方法或系统使得身份认证十分安全地进行,避免了用户因身份认证不安全而可能造成的损失。
【附图说明】
[0026]本发明将在下面参考附图并结合优选实施例进行更完全地说明。
[0027]图1为根据本发明方法的一实施例的流程图。
[0028]图2为根据本发明系统的一实施例的结构示意图。
[0029]为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
【具体实施方式】
[0030]通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
[0031]图1示出了根据本发明的方法的一实施例的流程图,在该实施例的方法中,身份认证过程中的身份信息采集、存储和验证整个过程都放在基于ARM TrustZone技术提供的可信执行环境中执行,确保身份信息和认证过程的安全。ARM TrustZone是针对移动终端安全提出的一种安全架构,是一项软硬件结合的技术。硬件提供代码运行隔离,软件提供基本的安全服务和接口。该技术的关键在于引入了安全和非安全两种并行的运行模式。在安全模式下,应用有权访问系统中的所有资源;在非安全模式下,只能访问部分资源。监控器负责两种模式之间的切换。具体地,具有ARM TrustZone技术的每一物理的处理器核上提供两个虚拟核,一个是非安全核,另一个是安全核,在这两者之间的切换机制称作monitor(监视器)模式。运行ARM TrustZone技术的即安全核。
[0032]图1实施例的方法开始于步骤S10,当普通执行环境中的应用需要对用户进行身份认证时,调用普通执行环境中TrustZone客户端应用编程接口(API)中的身份认证接口,并在参数中指明需要使用何种身份认证方式。身份认证方式包括但不限于虹膜认证、指纹认证、密码认证等。身份认证接口进一步调用Linux内核中的Trus tZone驱动。Trus tZone驱动根据接口传递的参数封装身份认证服务请求包。身份认证服务请求包内容例如包括服务ID(即身份认证安全服务)、命令ID、输入参数缓冲区、输出结果缓冲区、指定的认证方式等。月艮务请求包封装后,TrustZone驱动产生异常中断(比如SMC指令异常),从而调用监视器程序。监视器保存普通执行环境的上下文,根据可信执行环境的上下文,将处理器切换到可信执行环境,并将服务请求包传递给可信执行环境中的安全服务管理进程。之后,处理进行到步骤S20,安全服务管理进程解析服务请求包,根据服务请求包中的服务ID,创建相应的服务,即身份认证安全服务,并将请求包中的其他参数传递给身份认证安全服务。之后,处理进行到步骤S30,身份认证安全服务随后接管移动终端的显示屏、按键、虹膜采集器和/或指纹采集器等与身份认证相关的硬件设施。身份认证安全服务接管后,普通执行环境中的任何应用或服务都无法访问、读写这些硬件设施。只有当身份认证安全服务主动释放控制权后,其他应用或服务才可以访问、读写这些硬件设施。之后,处理进行到步骤S40,身份认证安全服务接收到服务请求后,开始进行身份认证。
[0033]在实施例中,身份认证安全服务进行身份认证包括步骤:
[0034]S41,软件初始化,为后续的认证工作做准备。
[0035]S42,根据服务请求包中指定的认证方式,初始化相应的硬件设施如加载驱动等。例如,如果是虹膜认证,需要初始化显示屏、虹膜采集器;如果是指纹认证,则需要初始化显示屏、指纹采集器等。
[0036]S43,在显示屏上绘制认证提示界面,提示用户按要求输入身份信息。比如,提示用户输入用户名和密码;或提示用户按下指纹采集器;或提示用户将双眼对准虹膜采集器等。
[0037]S44,身份认证安全服务采集用户输入的身份信息,并将采集进度实时显示在认证提示界面上。
[0038]如果是第一次采集到该用户的身份信息,需要将身份信息存放在安全存储区中,以便以后的验证使用。安全存储区可以是TrustZone技术提供的可信存储区,或者是由TrustZone技术提供安全保护的存储区。在实施例中,待存储的身份信息是对真实的身份信息计算处理后的值。比如,使用杂凑算法对加盐后的密码计算Hash(哈希)值;对虹膜或指纹信息计算特征值等。
[0039]S45,对采集到的身份信息进行如步骤S44所述的计算处理;
[0040]S46,身份信息采集结束后,从安全存储区中读出已存的该用户的身份信息;
[0041]S47,比对采集到的身份信息和已存的身份信息。如果一致,则用户通过身份认证;如果不一致,则不通过。
[0042]S48,身份认证安全服务关闭认证提示界面。
[0043]在步骤S40之后,处理进行到步骤S50,销毁认证过程中的中间数据,释放显示屏、按键、虹膜采集器和指纹采集器等硬件设施的控制权。之后,处理进行到步骤S60,将认证结果放入服务请求包中的输出结果缓冲区中,并通知安全服务管理进程。这里的认证结果仅包括认证成功/失败标识及必要的认证错误信息,不包含身份认证执行过程中产生的任何中间数据。安全服务管理进程收到身份认证安全服务的通知后,进一步通知监视器。之后,处理进行到步骤S70,监视器保存可信执行环境的上下文,根据普通执行环境的上下文,将处理器切换到普通执行环境,并将认证结果传递给TrustZone驱动。TrustZone驱动将认证结果返回给TrustZone客户端API JrustZone客户端API进一步将身份认证结果返回给应用程序。到此,一个完整的身份认证过程结束。
[0044]可以看出,使用本发明方法的身份认证的整个执行过程,包括身份信息的采集、身份信息的验证、身份信息的安全存储和认证提示界面的显示,都在基于TrustZone技术的可信执行环境执行。普通执行环境中的应用或服务除了认证结果外,无法获取身份认证过程中产生的任何数据,从而确保身份信息和认证过程的安全。
[0045]图2示出了根据本发明的用于安全进行身份认证的系统的一实施例的结构示意图,该系统包括:执行环境切换模块10,用于在确定普通执行环境中的应用程序需要进行用户身份认证时,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程;身份认证安全服务创建模块20,用于使所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务;硬件设施接管模块30,用于接管与身份认证有关的硬件设施;身份认证模块40,用于使所述身份认证安全服务根据解析的服务请求进行身份认证;身份认证结果通知模块50,用于将身份认证结果通知给所述安全服务管理进程;硬件设施释放模块60,用于释放与身份认证有关的硬件设施;及执行环境回切模块70,用于切换回到普通执行环境并将身份认证结果返回给所述应用程序。
[0046]在实施例中,身份认证模块40包括:初始化子模块41,用于根据所述服务请求包中指定的认证方式,初始化相应的硬件设施;提示界面绘制子模块42,用于在显示屏上绘制认证提示界面,提示用户按要求输入身份信息;身份信息采集子模块43,用于使身份认证安全服务采集用户输入的身份信息;已存信息读取子模块44,用于从安全存储区中读出已存的该用户的身份信息;比对子模块45,用于比对采集到的身份信息和已存的身份信息,得到身份认证结果;及提示界面关闭子模块46,用于使身份认证安全服务关闭认证提示界面。中间数据销毁子模块47,用于响应于认证提示界面关闭,销毁认证过程中的中间数据。
[0047]除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。除非明确指出,在此公开的任何方法的步骤不必精确按照所公开的顺序执行。
[0048]—些优选实施例已经在前面进行了说明,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。
【主权项】
1.一种安全进行身份认证的方法,其特征在于,所述方法包括: 响应于普通执行环境中的应用程序需要进行用户身份认证,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程; 所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务; 接管与身份认证有关的硬件设施; 所述身份认证安全服务根据解析的服务请求进行身份认证; 将身份认证结果通知给所述安全服务管理进程; 释放与身份认证有关的硬件设施;及 切换回到普通执行环境并将身份认证结果返回给所述应用程序。2.根据权利要求1所述的方法,其特征在于,所述身份认证安全服务根据解析的服务请求进行身份认证包括: 根据所述服务请求包中指定的认证方式,初始化相应的硬件设施; 在显示屏上绘制认证提示界面,提示用户按要求输入身份信息; 身份认证安全服务采集用户输入的身份信息; 从安全存储区中读出已存的该用户的身份信息; 比对采集到的身份信息和已存的身份信息,得到身份认证结果;及 身份认证安全服务关闭认证提示界面。3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 响应于认证提示界面关闭,销毁认证过程中的中间数据。4.根据权利要求2所述的方法,其特征在于,所述方法还包括: 在比对采集到的身份信息和已存的身份信息之前对采集到的身份信息进行下述之一的计算:使用杂凑算法对加盐后的密码计算Hash值或对一个或多个生物信息计算特征值。5.根据权利要求1-4任一所述的方法,其特征在于,所述可信执行环境采用下述之一实施:支持Trus tZone的ARM处理器、集成平台安全处理器PSP的AMD处理器、支持虚拟化技术的MIPS处理器。6.根据权利要求1-4任一所述的方法,其特征在于,所述硬件设施包括下述之一或多个:显示屏、按键、生物信息采集器。7.根据权利要求1-4任一所述的方法,其特征在于,所述服务请求包的内容包括下述之一或多个:服务ID、命令ID、输入参数缓冲区、输出结果缓冲区、指定的认证方式。8.一种安全进行身份认证的系统,其特征在于,所述系统包括: 执行环境切换模块,用于在确定普通执行环境中的应用程序需要进行用户身份认证时,切换到可信执行环境并将身份认证服务请求包传给可信执行环境中的安全服务管理进程; 身份认证安全服务创建模块,用于使所述安全服务管理进程解析所述服务请求包并创建身份认证安全服务; 硬件设施接管模块,用于接管与身份认证有关的硬件设施; 身份认证模块,用于使所述身份认证安全服务根据解析的服务请求进行身份认证; 身份认证结果通知模块,用于将身份认证结果通知给所述安全服务管理进程; 硬件设施释放模块,用于释放与身份认证有关的硬件设施;及 执行环境回切模块,用于切换回到普通执行环境并将身份认证结果返回给所述应用程序。9.根据权利要求8所述的系统,其特征在于,所述身份认证模块包括: 初始化子模块,用于根据所述服务请求包中指定的认证方式,初始化相应的硬件设施;提示界面绘制子模块,用于在显示屏上绘制认证提示界面,提示用户按要求输入身份信息; 身份信息采集子模块,用于使身份认证安全服务采集用户输入的身份信息; 已存信息读取子模块,用于从安全存储区中读出已存的该用户的身份信息; 比对子模块,用于比对采集到的身份信息和已存的身份信息,得到身份认证结果;及 提示界面关闭子模块,用于使身份认证安全服务关闭认证提示界面。10.根据权利要求9所述的系统,其特征在于,所述身份认证模块还包括: 中间数据销毁子模块,用于响应于认证提示界面关闭,销毁认证过程中的中间数据。
【文档编号】G06F21/57GK106027257SQ201610291323
【公开日】2016年10月12日
【申请日】2016年5月5日
【发明人】方翔
【申请人】北京元心科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1