显示用户界面的方法、装置及系统
技术领域
本申请涉及用户界面技术,具体涉及一种显示用户界面的方法。本申请同时涉及一种显示用户界面的装置,以及一种显示用户界面的系统。
背景技术
随着智能终端设备的应用越来越普及,用户可以通过多种渠道下载各种应用丰富自己的智能终端设备,在这个过程中一些病毒代码、恶意程序也会趁机进入到智能终端设备中,当用户执行移动支付等敏感操作时,这些病毒代码或者恶意程序可能窥视、盗取用户的关键信息(例如,银行账号、密码等),给用户带来经济上的损失。
针对上述情况,GP(Global Platform,全球平台组织)提出了可信执行环境(Trusted Executed Environment,简称TEE)的概念。TEE是存在于智能手机、平板电脑等智能终端设备中的一个安全区域,确保各种敏感数据在一个可信环境中被存储、处理和受到保护,为授权安全软件,即可信应用(Trusted Applications,简称TA),提供一个安全的执行环境。而运行于Android等REE(Rich OSExecuted Environment,通常称为富执行环境)的客户应用(Client Application,简称CA)可以将其需要保护的部分下载到TEE一侧运行。在具体应用中,基于ARM TrustZone架构的安全扩展机制是可信执行环境的一种实现方式。
可信执行环境的应用场景有很多,其中之一就是可信用户界面(Trusted UserInterface,简称TUI),即:在可信执行环境中显示用户界面、并通过该用户界面与用户进行交互,如用户输入支付密码等敏感操作。因为可信执行环境具有较高的安全级别,运行在REE一侧的恶意程序是无法窥探、偷取用户密码等关键信息的,因此对敏感操作的安全保护有非常重要的作用。
然而在现实应用中,用户界面有可能被恶意软件伪造,并通过钓鱼的方式获取用户的关键信息,为了能够证明当前显示的用户界面是真实的TUI,而不是恶意程序伪造的TUI,GP给出以下两种解决方案:
1)增加一个作为安全指示(Security Indicator)的独立LED灯,请参见图1示出的PIN码输入界面。由于LED灯只能由可信执行环境控制,恶意软件是无法访问和点亮该LED灯的,因此如果这个灯被点亮就向用户证明了当前的TUI是真实可信的。
2)在安全执行环境中预存一些信息(图像、文字),运行在REE中的应用是无法访问并获取这些信息的,因此如果当前的TUI能够正确地显示这些预存信息,也向用户证明了当前的TUI是真实可信的。
采用上述两种方式,虽然可以证明TUI是可信的,但是存在以下缺陷:由于新增硬件LED灯或者独立存储空间,对现有的比较成熟的智能终端设备的结构设计会带来较大影响,不仅增加硬件成本,同时也会增加设计的复杂度。
发明内容
本申请实施例提供一种显示用户界面的方法和装置,以解决现有技术方案需要引入新硬件导致增加硬件成本、提升设计复杂度的问题。本申请实施例还提供一种显示用户界面的系统。
本申请提供一种显示用户界面的方法,包括:
在可信执行环境中启动可信应用,所述可信应用包含可信用户界面;
所述可信应用在检测到对硬件设备的输入操作后,显示所述可信用户界面;
其中,所述硬件设备是集成在所述可信执行环境中的、用于采集外界信息的硬件设备。
可选的,所述用于采集外界信息的硬件设备包括:指纹传感器、或者摄像装置。
可选的,当所述用于采集外界信息的硬件设备为指纹传感器时,所述可信应用检测到对硬件设备的输入操作包括:所述可信应用检测到对指纹传感器的按压操作。
可选的,当所述可信应用在检测到对指纹传感器的按压操作后,执行下述操作:
判断所述指纹传感器采集的指纹图像与预存指纹图像是否一致,或者,判断从所述指纹图像提取的指纹特征值与预存指纹特征值是否一致;
若一致,则执行所述显示所述可信用户界面的步骤。
可选的,当所述用于采集外界信息的硬件设备为摄像装置时,所述可信应用检测到对硬件设备的输入操作包括:
所述可信应用获取所述摄像装置捕获的虹膜或者人脸图像。
可选的,当所述可信应用获取所述摄像装置捕获的虹膜或者人脸图像后,执行下述操作:
判断所述虹膜或者人脸图像与预存的相应图像是否一致,或者,判断从所述虹膜或者人脸图像提取的特征值与预存的相应特征值是否一致;
若一致,则执行所述显示所述可信用户界面的步骤。
可选的,所述可信应用采用如下方式检测对硬件设备的输入操作:
调用所述可信执行环境中的、对应于所述硬件设备的库所提供的相应接口。
可选的,所述可信用户界面包括:关键信息显示界面、或者关键信息输入界面。
可选的,当所述可信用户界面为关键信息输入界面时,所述可信应用在检测到对硬件设备的输入操作之前,执行下述操作:
显示所述关键信息输入界面,并禁用所述界面的输入功能;
所述可信应用在检测到对硬件设备的输入操作后,显示所述可信应用界面包括:显示所述关键信息输入界面,并使能所述界面的输入功能。
可选的,所述禁用所述界面的输入功能,包括:
若所述界面通过触摸屏接收输入,则关闭触摸屏的触摸输入功能;和/或,
若所述界面通过键盘接收输入,则关闭键盘输入功能。
可选的,所述关键信息输入界面提示用户输入的信息包括:账号信息、和/或密码信息。
可选的,所述可信执行环境包括:基于ARM TrustZone架构的安全执行环境。
可选的,所述方法包括:
在富执行环境中启动客户应用,所述客户应用中的部分功能由包含所述可信用户界面的可信应用实现;
所述在可信执行环境中启动可信应用包括:由所述客户应用触发在可信执行环境中启动可信应用的操作。
可选的,所述客户应用包括:支付应用;所述可信用户界面包括:个人识别码输入界面。
相应的,本申请还提供一种显示用户界面的装置,包括:
可信应用启动单元,用于在可信执行环境中启动可信应用,所述可信应用包含可信用户界面;
输入操作检测单元,用于所述可信应用检测对硬件设备的输入操作,所述硬件设备是集成在所述可信执行环境中的、用于采集外界信息的硬件设备;
用户界面显示单元,用于当所述输入操作检测单元检测到所述操作后,所述可信应用显示所述可信用户界面。
可选的,所述输入操作检测单元检测的用于采集外界信息的硬件设备包括:指纹传感器、或者摄像装置。
可选的,当所述用于采集外界信息的硬件设备为指纹传感器时,所述输入操作检测单元具体用于,所述可信应用检测对指纹传感器的按压操作。
可选的,所述装置包括:
指纹比对单元,用于当所述输入操作检测单元检测到对指纹传感器的按压操作后,所述可信应用判断所述指纹传感器采集的指纹图像与预存指纹图像是否一致,或者判断从所述指纹图像提取的指纹特征值与预存指纹特征值是否一致,并在一致时,触发所述用户界面显示单元工作。
可选的,当所述用于采集外界信息的硬件设备为摄像装置时,所述输入操作检测单元具体用于,所述可信应用获取所述摄像装置捕获的虹膜或者人脸图像。
可选的,所述装置包括:
虹膜或人脸比对单元,用于当所述输入操作检测单元获取所述摄像装置捕获的虹膜或者人脸图像后,所述可信应用判断所述虹膜或者人脸图像与预存的相应图像是否一致,或者,判断从所述虹膜或者人脸图像提取的特征值与预存的相应特征值是否一致,并在一致时,触发所述用户界面显示单元工作。
可选的,所述输入操作检测单元具体用于,所述可信应用通过调用所述可信执行环境中的、对应于所述硬件设备的库所提供的相应接口,检测对硬件设备的输入操作。
可选的,所述可信应用启动单元启动的可信应用所包含的可信用户界面包括:关键信息显示界面、或者关键信息输入界面。
可选的,当所述可信用户界面为关键信息输入界面时,包括:
界面显示并禁止输入单元,用于在触发所述输入操作检测单元工作之前,所述可信应用显示所述关键信息输入界面,并禁用所述界面的输入功能;
所述用户界面显示单元具体用于,所述可信应用显示所述关键信息输入界面,并使能所述界面的输入功能。
可选的,所述界面显示并禁止输入单元具体用于通过如下方式禁用所述界面的输入功能:若所述界面通过触摸屏接收输入,则关闭触摸屏的触摸输入功能;和/或,若所述界面通过键盘接收输入,则关闭键盘输入功能。
可选的,所述用户界面显示单元所显示的关键信息输入界面提示用户输入的信息包括:账号信息和/或密码信息。
可选的,所述可信应用启动单元具体用于,在基于ARM TrustZone架构的安全执行环境中,启动所述可信应用。
可选的,所述装置包括:
客户应用启动单元,用于在富执行环境中启动客户应用,所述客户应用中的部分功能由包含所述可信用户界面的可信应用实现;
所述可信应用启动单元是由所述客户应用启动单元启动的客户应用触发工作的。
可选的,所述客户应用启动单元启动的客户应用包括:支付应用;
所述用户界面显示单元显示的可信用户界面包括:个人识别码输入界面。
此外,本申请还提供一种显示用户界面的系统,包括:根据上述任意一项所述的显示用户界面的装置,以及集成在可信执行环境中的、用于采集外界信息的硬件设备。
与现有技术相比,本申请具有以下优点:
本申请提供的显示用户界面的方法,其核心在于:可信应用在检测到对采集外界信息的硬件设备的输入操作后,显示可信用户界面。由于所述硬件设备是集成在TEE一侧的,REE一侧的应用(包括恶意应用)是无法检测到对这些硬件设备的输入操作的,也就是说恶意程序无法模拟上述检测及显示可信用户界面的过程,从而证明了在检测到对所述硬件设备的输入操作后显示的用户界面是真实可信的TUI。由此可见,本方法充分利用了智能终端设备已有的采集外界信息的硬件设备,例如指纹传感器或者摄像装置,在不增加硬件成本、也不会提升软件实现复杂度的前提下,证明了用户界面的真实可信性。
附图说明
图1是GP建议的增加LED指示灯的PIN码输入界面;
图2是本申请实施例提供的系统架构图;
图3是本申请的一种显示用户界面的方法实施例的流程图;
图4是本申请的一种显示用户界面的装置实施例的示意图;
图5是本申请的一种显示用户界面的系统实施例的示意图;
图6是本申请实施例提供的显示用户界面的系统的交互操作流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是,本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此,本申请不受下面公开的具体实施的限制。
在本申请中,分别提供了一种显示用户界面的方法,一种显示用户界面的装置,以及一种显示用户界面的系统,在下面的实施例中逐一进行详细说明。为了便于理解,首先对本申请技术方案涉及的基本概念和原理作简要说明。
为了保障敏感应用(例如移动支付)的安全性,全球平台组织GP针对智能终端设备提出了可信执行环境(TEE)的概念,TEE是与REE(富执行环境)并行运行的独立执行环境,并为REE提供安全服务。TEE通过对软硬件资源进行隔离访问和保护,确保各种敏感数据在一个可信环境中被存储、处理和受到保护,为授权安全软件,即可信应用TA,提供一个安全的执行环境。例如,对于TUI可信用户界面(Trusted User Interface)来说,由于指纹传感器、触摸屏、显示屏、键盘等外设与REE一侧相隔离,从而可以保证安全获取用户的密码或PIN码(个人识别码)。
基于TEE概念的系统架构通常包括两个部分,一部分是普通执行环境REE,一部分是可信执行环境TEE。客户应用CA在REE侧运行,可信应用TA在TEE侧运行,CA通过位于REE一侧的TEEClient API与TEE一侧的TA通信,使用TEE提供的服务,TA则通过在TEE一侧安全运行并使用内部API(TEE InternalAPI)来获取安全资源和服务的访问权限,从而执行密钥管理,密钥存储,数据安全存储以及加密运算等安全级别高的操作。采用上述方式,就可以实现软硬件资源的隔离性与安全性。
在具体实现时,可以利用英特尔可信任执行技术或者ARM TrustZone安全扩展机制来提供TEE执行环境。TrustZone安全扩展机制的安全性是通过将片上系统的硬件以及软件资源分离来达到的,这样它们就可以存在两个环境中:分别是安全环境(Secure World,对应于GP中的可信执行环境)以及普通环境(Normal World,对应于GP中的富执行环境)。在具有TrustZone功能的硬件逻辑中,通过特定的总线技术以及相应的控制器设置,可以确保在执行需要安全保护的特定操作时,由安全环境接管系统中的敏感资源,例如:触摸屏、显示屏、指纹传感器等,从而保证这些资源不会被普通环境中的组件(例如应用)访问。这样就意味着即使恶意程序获取了普通环境下的最高权限(如Linux的root权限),它也无法访问到安全环境的资源。
当前流行的高级ARM核都已经实现TrustZone安全扩展,这些处理器核心通常被设计为两个虚拟核:一个用于运行安全环境,而另一个用于运行普通环境,同时还增加了一个用于环境上下文切换的被称作监视器模式(Monitor)的机制。
本发明的技术方案就是在上述原理的基础上,通过在TEE中启动可信应用,然后检测用户对集成在TEE一侧的、用于采集外界信息的硬件设备的输入操作,并在检测之后显示可信用户界面,从而证明所述可信用户界面是真实可信的TUI。本技术方案所述的集成在TEE中的、用于采集外界信息的硬件设备是指,在TEE中启动TA后,被TEE接管的、REE一侧的应用无法访问的硬件设备,并且所述硬件设备是用于采集外界信息的硬件设备,包括可以用于采集人体生物特征的指纹传感器、摄像装置等。
需要说明的是,虽然GP是针对智能终端设备提出的TEE概念,但是本申请的技术方案并不局限于在智能终端设备上实施,只要是将执行环境划分为TEE和REE,具备软、硬件资源安全隔离能力的电子设备,就都可以实施本申请的技术方案,并取得相应的有益效果。
下面通过具体的实施例描述本申请技术方案的实施方式。考虑到目前指纹传感器在智能终端设备上应用比较广泛,在下面的实施例中以检测用户对指纹传感器的输入为例,描述本发明的技术方案。另外,考虑到ARM TrustZone安全扩展机制是目前比较成熟的技术,因此本实施例采用基于ARM TrustZone的系统架构提供所述可信执行环境,在其它实施方式中也可以采用其他技术实现,本申请不做具体限定。
请参见附图2,其为本实施例的系统架构图。其中,在REE侧包括:
1)Client App:客户应用,如支付宝等移动支付应用;
2)TUI Client lib:包含TUI的TA在REE侧的库,提供下载TA到TEE内核中运行、建立与TA的会话、发送命令等操作;
3)TEE Client API:GP提供的标准TEE Client接口;
4)OS Kernel:系统内核,如linux内核。
在TEE侧包括:
1)TUI TA:包含TUI的TA,即:有TUI功能的TA;
2)FP Manger lib:指纹传感器在TEE侧的库,提供指纹采集、比对的功能给TUI TA调用;
3)TEE Internal API:GP提供的标准TEE Internal接口;
4)Trusted Kernel:TrustZone系统内核。
需要说明的是,集成在TEE一侧的外设包括:FP(指纹传感器)、显示设备(LCD)、触摸屏(Touch),即:在TEE中启动TA后,这些硬件设备只能由TEE侧控制或者访问,REE侧的应用是无法访问这些外设的,这是TEE的基本特性,在本实施例中则是由TrustZone技术来保证的。
在上述系统架构的基础上,请进一步参考图3,其为本申请的一种显示用户界面的方法实施例的流程图。所述方法包括如下步骤:
步骤301:在REE中启动客户应用,所述客户应用中的部分功能由TA实现。
对于一个应用来说,可以本身就是一个TA,也就是说其所有功能都在TEE一侧实现,在这种情况下每次直接执行步骤302在TEE中启动该TA,并由该TA负责完成后续的检测以及显示可信用户界面的步骤即可。然而对于目前的大部分应用来说,其中无安全性要求的部分功能可以在REE一侧执行,有安全性要求的部分功能则可以以TA的形式在TEE一侧执行,为了与TA相区别,这样的应用通常称为客户应用(CA)。在这种情况下,通常可以在REE中启动该CA,并在执行有安全性要求的功能时,执行步骤302在TEE一侧启动相应的TA。
在本实施例的一个具体例子中,所述客户应用为支付应用,本步骤可以在REE中启动所述支付应用,当该支付应用需要用户输入PIN码时,为了保证该操作的安全性,则可以执行步骤302在TEE中启动供用户输入PIN码的TA。
步骤302:在TEE中启动TA,所述TA包含可信用户界面。
当需要实现有安全性要求的功能时,可以在TEE中启动实现所述功能的TA。在本实施例中,所述TA包含可信用户界面,即:所述TA是具有TUI功能的TA,通过本实施例的后续步骤,可以向用户证明所显示的用户界面是真实可信的TUI。
由于本实施例是基于TrustZone安全扩展机制提供TEE的,所述在TEE中启动TA的过程通常是由客户应用触发的,即:由客户应用将TA下载到TEE中并建立与所述TA的可信会话。
通常情况下,每一个TA都应该具有至少一个对外开放的命令ID,每一个命令ID对应该TA提供的一种服务功能,客户应用可以通过打开与TA的可信会话与所述TA的实例建立连接关系,并且调用该TA对外提供的命令。具体说,客户应用在通过TEE Client API接口打开与TA对应的会话之后,可以通过命令ID调用TA提供的相应功能,从而运行在普通环境中的客户应用可以使用TA提供的安全服务功能。
在本实施例的上述具体例子中,支付应用通过调用高通平台提供的TUIClient lib中的StartApp()函数将具有TUI功能的TA下载到TEE一侧,并建立与TA之间的会话。所述TUI Client lib是为了便于开发人员使用,在TEE ClientAPI基础上进一步封装的函数库,在其他的实施方式中,也可以通过直接调用TEE Client API提供的TEEC_OpenSession()函数实现上述功能。
步骤303:TA检测对指纹传感器的按压操作。
在基于TrustZone提供TEE的实施方式下,REE一侧的客户应用与TEE一侧的TA建立会话后,可以通过发送命令的方式调用TA提供的相应功能,例如,在本实施例的上述具体例子中,支付应用可以通过调用TEE Client API提供的TEEC_InvokeCommand()函数,调用TA提供的相应功能:显示供用户输入PIN码的用户界面。
本实施例为了向用户证明所显示的用户界面是真实可信的TUI,所述TA在显示所述可信用户界面之前,先检测用户对指纹传感器的按压操作,并在检测到所述操作后,显示所述可信用户界面。因此,本步骤的主要任务是检测用户对指纹传感器的按压操作。
具体实施时,可以提示用户在指纹传感器上按压手指,并通过调用下载到TEE一侧的、对应于所述指纹传感器的库提供的相应接口,例如,调用FPManager lib提供的fp_detect()接口函数,来检测用户对指纹传感器的按压动作。进一步地,如果检测到所述按压动作,还可以进一步获取有效按压面积,并当有效按压面积大于预先设定的阈值时,认为检测到用户对指纹传感器的有效按压动作,从而可以避免误判。
在具体实施时,还可以在本步骤中添加超时检测机制,即从提示用户在指纹传感器上按压手指起,如果在预先设定的时间段内检测到有效的按压操作,则继续执行后续步骤304显示可信用户界面,否则不执行步骤304并提示用户相应的原因。例如,如果在预先设定的时间段内未检测到用户的按压操作,提示用户操作超时;如果检测到用户的按压操作,但是有效按压操作的面积未大于预先设定的阈值,则可以提示用户未检测到正确有效的按压操作。
此外,作为一种可选的实施方式,TA也可以在检测对指纹传感器的按压操作之前,显示可信用户界面,由于此时还未向用户证明该用户界面的真实可信性,因此可以禁用所述可信用户界面的输入功能。具体说,如果所述界面可以通过触摸屏接收用户输入的关键信息,例如:账号、密码等,则关闭触摸屏的触摸输入功能;如果所述界面可以通过键盘接收用户输入的关键信息,则关闭键盘输入功能。当本步骤检测到对指纹传感器的输入操作后,再使能所述可信用户界面的输入功能,关于这部分请参见步骤304中的描述。
步骤304:TA检测到上述操作后,显示所述可信用户界面。
当TA完成步骤303中的检测操作后,显示可信用户界面。例如在本实施例的上述具体例子中,所述支付应用启动的TA可以在检测到对指纹传感器的按压操作后,显示供用户输入PIN码的可信用户界面。如果所述TA在检测按压操作之前,已经显示了处于禁止输入状态的可信用户界面,那么本步骤在显示所述可信用户界面的基础上,可以使能所述界面的输入功能,从而允许用户通过触摸屏或者键盘等外设,在所述可信用户界面中输入所需提供的信息。
作为一种优选实施方式,TA在检测到对指纹传感器的按压操作后,还可以进一步判断所述指纹传感器采集的指纹图像与预存的指纹图像是否一致,或者,判断从所述指纹图像提取的指纹特征值与预存指纹特征值是否一致;若一致,则显示所述可信用户界面。所述预存的指纹图像或者指纹特征值通常是用户提前录入生成的,可以存储在TEE侧的安全区域中,也可以经由TEE加密后存储在REE侧的文件系统中。
具体说,TA可以采用与检测指纹按压操作同样的方式,通过调用下载到TEE一侧的、对应于所述指纹传感器的库所提供的相应接口,获取所述按压操作的指纹图像,并从中提取指纹特征值,或者直接获取指纹特征值(特征值的提取过程由接口函数封装在其内部了),并与预存的相应信息进行比对。
例如,TA可以通过调用FP Manager lib提供的fp_get_template()接口函数,直接获取指纹特征值,然后以获取的指纹特征值、预存的指纹特征值等作为入口参数,调用该库提供的fp_match()接口函数,进行指纹特征值的比对。关于获取指纹图像及比对过程,也是同样的原理,此处不再赘述。此外,某些库可能还提供用采集的指纹图像与预存的指纹特征值进行比对的接口函数,在具体实施时,只要按照接口函数的要求进行相应调用即可。上述都是进行指纹比对的不同实施方式,在具体应用中,可以根据指纹传感器厂商提供的库函数以及具体的应用需求,选取合适的实施方式。
本步骤可以通过上述方式进行指纹图像(或指纹特征值)的比对操作,并在比对结果正确时,即两者一致时,显示所述可信用户界面。
由于在TEE中启动TA后,指纹传感器、显示器、触摸屏都被TEE所接管,这是由TrustZone技术保证的,也就是说所有和指纹传感器相关的交互操作,包括:检测按压操作、获取指纹图像(或指纹特征值)、比对指纹图像(或指纹特征值)等,都是通过调用FP Manager lib提供的相应接口、并与下层的TEEInternal API交互实现的,即:与指纹相关的交互操作都是在TEE侧进行的,因此TA在检测到用户手指对指纹传感器的按压操作后显示可信用户界面(或者显示并使能界面输入功能)的过程,REE一侧的程序(包括恶意程序)是无法伪造的,从而就向用户证明了在检测到所述按压操作后显示的用户界面是真实可信的TUI,而不是钓鱼界面或者其他伪造的虚假界面,实现了硬件级的安全保护,用户可以放心地在该用户界面中输入账号、密码等关键信息,而不必担心被盗取。
通过上面的描述可以看出,在检测按压操作后显示可信用户界面、或者在进一步指纹比对成功后显示可信用户界面,这两种方式都可以向用户证明所显示的用户界面是真实可信的TUI,而不是伪造或假冒的。其中,第二种方式是本实施例提供的一种优选实施方式,该方式不仅可以证明用户界面是真实可信的TUI,还可以提供对使用该TUI的用户身份的验证,从而提供更为完善的安全保护。如果指纹比对的结果为:当前获取的指纹图像(或者指纹特征值)与预存的相应信息不一致,出于安全性考虑,可以提示用户指纹信息不正确,并且不显示所述可信用户界面。
需要说明的是,本技术方案所述的可信用户界面包括:关键信息输入界面,此类界面用于接收用户输入的账号信息、密码信息等需要安全保护的关键信息,例如,本实施例所述具体例子中的PIN码输入界面。本技术方案所述的可信的用户界面还可以包括:关键信息显示界面,例如,显示交易金额的界面。与上述关键信息输入界面同理,可以在检测到对指纹传感器的按压操作后(或者比对成功后)才显示所述关键信息显示界面,因此向用户证明了该用户界面是真实可信的TUI,该用户界面上展示的信息也是真实的、未被篡改的。
至此,以检测指纹传感器的输入操作为例,描述了本申请的技术方案。在其他实施方式中,TA也可以不检测指纹传感器的输入操作,而检测对其他用于采集外界信息的硬件设备的输入操作,例如:TA可以通过调用下载到TEE一侧的、对应于摄像装置的库所提供的相应接口,获取摄像装置捕获的虹膜或者人脸图像,并显示可信用户界面;TA也可以在获取上述虹膜或者人脸图像的基础上,进一步判断所述图像与预存的相应图像是否一致,或者判断从所述图像提取的特征值与预存的相应特征值是否一致,并在一致时显示所述可信用户界面。只要这些硬件设备是集成在TEE一侧的,REE一侧的应用无法访问,那么就同样可以实现本申请的技术方案,证明当前显示的用户界面是真实可信的TUI。
综上所述,本申请提供的显示用户界面的方法,其核心在于:可信应用在检测到对采集外界信息的硬件设备的输入操作后,显示可信用户界面。由于所述硬件设备是集成在TEE一侧的,关于该硬件设备输入信息的检测、比对等操作都是在TEE侧实现的,所述硬件设备便成为一个可信的硬件设备,利用这个硬件设备进而可以向用户证明所显示的用户界面是真实可信的TUI,相当于通过建立信任链的方式,实现了硬件级别的保护。由此可见,本方法充分利用了智能终端设备已有的采集外界信息的硬件设备,例如指纹传感器或者摄像装置,在不增加硬件成本(不需要添加专用的LED灯或者专用的存储空间)、从而也不提升软件实现复杂度的前提下,证明了用户界面的真实可信性。
在上述的实施例中,提供了一种显示用户界面的方法,与之相对应的,本申请还提供一种显示用户界面的装置。请参看图4,其为本申请的一种显示用户界面的装置实施例的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种显示用户界面的装置,包括:客户应用启动单元401,用于在富执行环境中启动客户应用,所述客户应用触发可信应用启动单元工作;可信应用启动单元402,用于在可信执行环境中启动可信应用,所述可信应用包含可信用户界面;输入操作检测单元403,用于所述可信应用检测对硬件设备的输入操作,所述硬件设备是集成在所述可信执行环境中的、用于采集外界信息的硬件设备;用户界面显示单元404,用于当所述输入操作检测单元检测到所述操作后,所述可信应用显示所述可信用户界面。
可选的,所述输入操作检测单元检测的用于采集外界信息的硬件设备包括:指纹传感器、或者摄像装置。
可选的,当所述用于采集外界信息的硬件设备为指纹传感器时,所述输入操作检测单元具体用于,所述可信应用检测对指纹传感器的按压操作。
可选的,所述装置包括:
指纹比对单元,用于当所述输入操作检测单元检测到对指纹传感器的按压操作后,所述可信应用判断所述指纹传感器采集的指纹图像与预存指纹图像是否一致,或者判断从所述指纹图像提取的指纹特征值与预存指纹特征值是否一致,并在一致时,触发所述用户界面显示单元工作。
可选的,当所述用于采集外界信息的硬件设备为摄像装置时,所述输入操作检测单元具体用于,所述可信应用获取所述摄像装置捕获的虹膜或者人脸图像。
可选的,所述装置包括:
虹膜或人脸比对单元,用于当所述输入操作检测单元获取所述摄像装置捕获的虹膜或者人脸图像后,所述可信应用判断所述虹膜或者人脸图像与预存的相应图像是否一致,或者,判断从所述虹膜或者人脸图像提取的特征值与预存的相应特征值是否一致,并在一致时,触发所述用户界面显示单元工作。
可选的,所述输入操作检测单元具体用于,所述可信应用通过调用所述可信执行环境中的、对应于所述硬件设备的库所提供的相应接口,检测对硬件设备的输入操作。
可选的,所述可信应用启动单元启动的可信应用所包含的可信用户界面包括:关键信息显示界面、或者关键信息输入界面。
可选的,当所述可信用户界面为关键信息输入界面时,包括:
界面显示并禁止输入单元,用于在触发所述输入操作检测单元工作之前,所述可信应用显示所述关键信息输入界面,并禁用所述界面的输入功能;
所述用户界面显示单元具体用于,所述可信应用显示所述关键信息输入界面,并使能所述界面的输入功能。
可选的,所述界面显示并禁止输入单元具体用于通过如下方式禁用所述界面的输入功能:若所述界面通过触摸屏接收输入,则关闭触摸屏的触摸输入功能;和/或,若所述界面通过键盘接收输入,则关闭键盘输入功能。
可选的,所述用户界面显示单元所显示的关键信息输入界面提示用户输入的信息包括:账号信息和/或密码信息。
可选的,所述可信应用启动单元具体用于,在基于ARM TrustZone架构的安全执行环境中,启动所述可信应用。
可选的,所述客户应用启动单元启动的客户应用包括:支付应用;
所述用户界面显示单元显示的可信用户界面包括:个人识别码输入界面。
在上述的实施例中,提供了一种显示用户界面的方法以及一种显示用户界面的装置,此外,本申请实施例还提供了一种显示用户界面的系统,如图5所示,该系统包括:显示用户界面的装置501,以及集成在可信执行环境中的、用于采集外界信息的硬件设备502。
所述显示用户界面的装置,用于在可信执行环境中启动具有可信用户界面功能的TA,所述TA在检测到对集成在TEE中的、用于采集外界信息的硬件设备的输入操作后,显示所述可信用户界面。下面结合附图6,以所述装置部署了基于TrustZone安全扩展机制的REE和TEE执行环境、并且所述硬件设备为指纹传感器为例,说明本系统的交互操作流程:
1)REE侧的Client App启动TA,并请求显示可信用户界面;
2)TEE侧的TA显示所述可信用户界面,该可信用户界面禁用输入功能;
3)TEE侧的TA启动指纹验证功能;
4)TEE侧的TA检测到对指纹传感器的按压操作、采集到指纹特征值,并进行所述指纹特征值与预存指纹特征值的比对;
5)比对结果正确,使能所述可信用户界面的输入功能。由于此时向用户证明了所显示的用户界面是真实可信的TUI,用户可以在该界面中输入密码等关键信息,而不必担心被恶意程序伪造的TUI盗取。
由此可见,本系统在不增加硬件成本的条件下,利用智能终端设备中已有的指纹传感器实现了对用户界面可信性的证明。需要说明的是,上述仅仅给出了本系统的一种可选的交互操作流程,在其他实施方式中,可以在上述基础上进行变更,例如,不显示禁用输入功能的可信用户界面,而是在检测到对指纹传感器的按压操作并比对成功后,再显示所述可信用户界面;在启动指纹验证功能时,为了保证用户良好的使用体验,可以展示开始进行验证的动画;所述硬件设备也可以不仅仅是指纹传感器,还可以是摄像装置等其他用于采集外界信息的硬件设备。这些变更方式,以及在前面的方法实施利中已经提及的其他变更方式,都不偏离本系统的核心,都在本系统的保护范围之内。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。