一种指纹解锁的方法及装置转让专利

申请号 : CN201810194073.7

文献号 : CN108563934B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱晓亮

申请人 : 青岛海信移动通信技术股份有限公司

摘要 :

本发明公开了一种指纹解锁的方法及装置,用以解决现有技术中存在的指纹解锁安全性不高的技术问题。包括:通过指纹传感器采集指纹信息;基于指纹特征信息对指纹信息进行比对,获得比对结果;并通过预设的算法对比对结果和第一关键信息进行计算,获得第一身份认证信息;第一令牌是在发起解锁请求时,由电子设备的TEE中指定的可信任应用生成的,用于指示电子设备中发起指纹解锁操作的合法性;若比对结果为表征比对成功,则在指定的可信任应用中按照预设的验证逻辑,对第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,第二令牌为第一令牌经由REE传入指定的可信任应用的令牌;在验证结果正确时,解锁电子设备。

权利要求 :

1.一种指纹解锁的方法,应用于电子设备,所述电子设备至少具有指纹传感器,其特征在于,包括:通过所述指纹传感器采集指纹信息;

基于预存于所述电子设备中的指纹特征信息,对所述指纹信息进行比对,获得比对结果;并通过预设的算法对所述比对结果和第一关键信息进行计算,获得第一身份认证信息;

其中,所述第一关键信息至少包括第一令牌及获得所述比对结果的第一时间;所述第一令牌是在发起解锁请求时,由所述电子设备的安全环境TEE中指定的可信任应用生成的,用于指示所述电子设备中发起指纹解锁操作的合法性;

若所述比对结果为表征比对成功,则在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,所述第二令牌为所述第一令牌经由非安全环境REE传入所述指定的可信任应用的令牌;

所述验证时间为所述指定的可信任应用开始进行合法性验证的第二时间与所述第一时间的时间差;

在所述验证结果正确时,解锁所述电子设备。

2.如权利要求1所述的方法,其特征在于,所述通过所述指纹传感器采集指纹信息,包括:生成所述第一令牌,并发起指纹识别请求;

基于所述指纹识别请求,控制所述指纹传感器进入图像扫描模式,以采集所述指纹信息。

3.如权利要求1所述的方法,其特征在于,所述在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果,包括:在所述指定的可信任应用中执行以下操作:

通过所述预设的算法对所述比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录所述第二时间;

基于所述第二身份认证信息及所述第一令牌和预设时间差,按所述预设的验证逻辑对所述第一身份认证信息及第二令牌,和所述验证时间进行验证,获得所述验证结果。

4.如权利要求3所述的方法,其特征在于,所述预设的验证逻辑,包括:按任意组合的先后顺序,对所述第一身份认证信息及第二令牌,和所述验证时间进行以下验证,获得所述验证结果:基于所述第二身份认证信息,判断所述第一身份认证信息的合法性,获得第一判断结果;

基于所述第一令牌,判断所述第二令牌的合法性,获得第二判断结果;

基于所述验证时间和预设时间差,判断所述验证时间是否在所述预设时间差内,获得第三判断结果;

基于所述第一判断结果及所述第二判断结果和所述第三判断结果,获得所述验证结果。

5.如权利要求4所述的方法,其特征在于,所述验证结果正确,具体为:所述第一判断结果及所述第二判断结果和所述第三判断结果均为是时,所述验证结果正确。

6.一种指纹解锁的装置,应用于电子设备,所述电子设备至少具有指纹传感器,其特征在于,包括:采集单元,用于通过所述指纹传感器采集指纹信息;

处理单元,用于基于预存于所述电子设备中的指纹特征信息,对所述指纹信息进行比对,获得比对结果;并通过预设的算法对所述比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,所述第一关键信息至少包括第一令牌及获得所述比对结果的第一时间;所述第一令牌是在发起解锁请求时,由所述电子设备的安全环境TEE中指定的可信任应用生成的,用于指示所述电子设备中发起指纹解锁操作的合法性;

验证单元,用于若所述比对结果为表征比对成功,则在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,所述第二令牌为所述第一令牌经由非安全环境REE传入所述指定的可信任应用的令牌;所述验证时间为所述指定的可信任应用开始进行合法性验证的第二时间与所述第一时间的时间差;

解锁单元,用于在所述验证结果正确时,解锁所述电子设备。

7.如权利要求6所述的装置,其特征在于,所述通过所述指纹传感器采集指纹信息时,所述采集单元还用于:生成所述第一令牌,并发起指纹识别请求;

基于所述指纹识别请求,控制所述指纹传感器进入图扫描模式,以采集所述指纹信息。

8.如权利要求7所述的装置,其特征在于,所述在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果,所述验证单元还用于:在所述指定的可信任应用中执行以下操作:

通过所述预设的算法对所述比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录所述第二时间;

基于所述第二身份认证信息及所述第一令牌和预设时间差,按所述预设的验证逻辑对所述第一身份认证信息及第二令牌,和所述验证时间进行验证,获得所述验证结果。

9.如权利要求8所述的装置,其特征在于,所述预设的验证逻辑,包括:按任意组合的先后顺序,对所述第一身份认证信息及第二令牌,和所述验证时间进行以下验证,获得所述验证结果:基于所述第二身份认证信息,判断所述第一身份认证信息的合法性,获得第一判断结果;

基于所述第一令牌,判断所述第二令牌的合法性,获得第二判断结果;

基于所述验证时间和预设时间差,判断所述验证时间是否在所述预设时间差内,获得第三判断结果;基于所述第一判断结果及所述第二判断结果和所述第三判断结果,获得所述验证结果。

10.如权利要求9所述的装置,其特征在于,所述验证结果正确,具体为:所述第一判断结果及所述第二判断结果和所述第三判断结果均为是时,所述验证结果正确。

11.一种指纹解锁的装置,其特征在于,包括:

至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如权利要求1-5任一项所述的方法。

12.一种计算机可读存储介质,其特征在于:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-5中任一项所述的方法。

说明书 :

一种指纹解锁的方法及装置

技术领域

[0001] 本发明涉及电子技术领域,尤其是涉及一种指纹解锁的方法及装置。

背景技术

[0002] 随着电子技术的不断发展,各种便携式设备在人们的日常生活中使用也越来越普遍,但随之而来的安全问题也越来越受到人们的重视。
[0003] 如,生活中最常见的的手机,在使用前通常需要对它进行解锁,目前常用的是采用输入密码的方式进行解锁,但更为安全的方式是通过扫描指纹的方式进行解锁。
[0004] 然而,在现有的指纹解锁流程中,指纹图像的采集及指纹特征的比对都是在安全环境(Trusted Execution Environment,TEE)中完成的,指纹解锁数据在这个过程的安全可以由TEE保证。但,当指纹比对的结果返回到非安全环境(Rich Execution Environment,REE)时,却存在被拦截篡改的可能。
[0005] 因此,如何防止指纹比对结果被篡改,以提高指纹解锁的安全性,成为一个亟待解决的技术问题。

发明内容

[0006] 本发明提供一种指纹解锁的方法及装置,用以解决现有技术中存在的指纹解锁安全性不高的技术问题。
[0007] 第一方面,为解决上述技术问题,本发明实施例提供的一种指纹解锁的方法,应用于电子设备,所述电子设备至少具有指纹传感器,该方法采用的技术方案如下:
[0008] 通过所述指纹传感器采集指纹信息;
[0009] 基于预存于所述电子设备中的指纹特征信息,对所述指纹信息进行比对,获得比对结果;并通过预设的算法对所述比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,所述第一关键信息至少包括第一令牌及获得所述比对结果的第一时间;所述第一令牌是在发起解锁请求时,由所述电子设备的安全环境TEE中指定的可信任应用生成的,用于指示所述电子设备中发起指纹解锁操作的合法性;
[0010] 若所述比对结果为表征比对成功,则在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,所述第二令牌为所述第一令牌经由非安全环境REE传入所述指定的可信任应用的令牌;所述验证时间为所述指定的可信任应用开始进行合法性验证的第二时间与所述第一时间的时间差;
[0011] 在所述验证结果正确时,解锁所述电子设备。
[0012] 可选的,所述通过所述指纹传感器采集指纹信息,包括:
[0013] 生成所述第一令牌,并发起指纹识别请求;
[0014] 基于所述指纹识别请求,控制所述指纹传感器进入图像扫描模式,以采集所述指纹信息。
[0015] 可选的,所述在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果,包括:
[0016] 在所述指定的可信任应用中执行以下操作:
[0017] 通过所述预设的算法对所述比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录所述第二时间;
[0018] 基于所述第二身份认证信息及所述第一令牌和预设时间差,按所述预设的验证逻辑对所述第一身份认证信息及第二令牌,和所述验证时间进行验证,获得所述验证结果。
[0019] 可选的,所述预设的验证逻辑,包括:
[0020] 按任意组合的先后顺序,对所述第一身份认证信息及第二令牌,和所述验证时间进行以下验证,获得所述验证结果:
[0021] 基于所述第二身份认证信息,判断所述第一身份认证信息的合法性,获得第一判断结果;
[0022] 基于所述第一令牌,判断所述第二令牌的合法性,获得第二判断结果;
[0023] 基于所述验证时间和预设时间差,判断所述第验证时间是否在所述预设时间差内,获得第三判断结果;
[0024] 基于所述第一判断结果及所述第二判断结果和所述第三判断结果,获得所述验证结果。
[0025] 可选的,所述验证结果正确,具体为:
[0026] 所述第一判断结果及所述第二判断结果和所述第三判断结果均为是时,所述验证结果正确。
[0027] 第二方面,本发明实施例提供了一种用于指纹解锁的装置,应用于电子设备,所述电子设备至少具有指纹传感器,该装置包括:
[0028] 采集单元,用于通过所述指纹传感器采集指纹信息;
[0029] 处理单元,用于基于预存于所述电子设备中的指纹特征信息,对所述指纹信息进行比对,获得比对结果;并通过预设的算法对所述比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,所述第一关键信息至少包括第一令牌及获得所述比对结果的第一时间;所述第一令牌是在发起解锁请求时,由所述电子设备的安全环境TEE中指定的可信任应用生成的,用于指示所述电子设备中发起指纹解锁操作的合法性;
[0030] 验证单元,用于若所述比对结果为表征比对成功,则在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,所述第二令牌为所述第一令牌经由非安全环境REE传入所述指定的可信任应用的令牌;所述验证时间为所述指定的可信任应用开始进行合法性验证的第二时间与所述第一时间的时间差;
[0031] 解锁单元,用于在所述验证结果正确时,解锁所述电子设备。
[0032] 可选的,所述通过所述指纹传感器采集指纹信息时,所述采集单元还用于:
[0033] 生成所述第一令牌,并发起指纹识别请求;
[0034] 基于所述指纹识别请求,控制所述指纹传感器进入图像扫描模式,以采集所述指纹信息。
[0035] 可选的,所述在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果,所述验证单元还用于:
[0036] 在所述指定的可信任应用中执行以下操作:
[0037] 通过所述预设的算法对所述比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录所述第二时间;
[0038] 基于所述第二身份认证信息及所述第一令牌和预设时间差,按所述预设的验证逻辑对所述第一身份认证信息及第二令牌,和所述验证时间进行验证,获得所述验证结果。
[0039] 可选的,所述预设的验证逻辑,包括:
[0040] 按任意组合的先后顺序,对所述第一身份认证信息及第二令牌,和所述验证时间进行以下验证,获得所述验证结果:
[0041] 基于所述第二身份认证信息,判断所述第一身份认证信息的合法性,获得第一判断结果;
[0042] 基于所述第一令牌,判断所述第二令牌的合法性,获得第二判断结果;
[0043] 基于所述验证时间和预设时间差,判断所述第验证时间是否在所述预设时间差内,获得第三判断结果;
[0044] 基于所述第一判断结果及所述第二判断结果和所述第三判断结果,获得所述验证结果。
[0045] 可选的,所述验证结果正确,具体为:
[0046] 所述第一判断结果及所述第二判断结果和所述第三判断结果均为是时,所述验证结果正确。
[0047] 第三方面,本发明实施例还提供一种用于指纹解锁的装置,包括:
[0048] 至少一个处理器,以及
[0049] 与所述至少一个处理器连接的存储器;
[0050] 其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的方法。
[0051] 第四方面,本发明实施例还提供一种计算机可读存储介质,包括:
[0052] 所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面所述的方法。
[0053] 通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:
[0054] 在本发明提供的技术方案中,通过在发起解锁请求时,由安全环境TEE中的指定可信任应用生成第一令牌,让第一令牌伴随数据在指纹解锁流程中传输,并在对指纹信息进行比对获得比对结果后,通过预设的算法对比对结果及其生成时间(即第一时间)和第一令牌进行计算和,生成第一身份认证信息,并在比对结果为成功时,让指定的可信任应用按照预设的验证逻辑对第二令牌、验证时间及第一身份认证信息的合法性进行验证,获得验证结果,在验证结果为正确时才解锁电子设备。从而有效的避免了指纹数据的比对结果在REE中传输时被篡改的风险,实现了提高指纹解锁安全性的技术效果。
[0055] 进一步的,在本发明提供的技术方案中,通过让电子设备在执行指纹解锁流程之初,便通过指纹解锁请求触发TEE环境的指定的可信任应用生成第一令牌,进而让后续的指纹解锁流程中传递的信息都携带上第一令牌,使得在指纹解锁流程中通过对数据中的令牌进行验证,来降低数据在REE环境中传递时可能被篡改的风险,进而提高指纹解锁流程的安全性。

附图说明

[0056] 图1为本发明实施例提供的一种指纹解锁的流程图;
[0057] 图2为现有的指纹解锁流程;
[0058] 图3为本发明实施例提供的一种指纹解锁流程;
[0059] 图4为本发明实施例提供的一种指纹解锁的结构示意图。

具体实施方式

[0060] 本发明实施列提供一种指纹解锁的方法及装置,以解决现有技术中存在的指纹解锁安全性不高的技术问题。
[0061] 本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:
[0062] 提供一种指纹解锁的方法,应用于电子设备,该电子设备至少具有指纹传感器,该方法包括:通过指纹传感器采集指纹信息;基于预存于电子设备中的指纹特征信息,对指纹信息进行比对,获得比对结果;并通过预设的算法对比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,第一关键信息至少包括第一令牌及获得比对结果的第一时间;第一令牌是在发起指纹解锁请求时,由电子设备的安全环境TEE中指定的可信任应用生成的,用于指示对电子设备中发起指纹解锁操作的合法性;若比对结果为表征比对成功,则在指定的可信任应用中按照预设的验证逻辑,对第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,第二令牌为第一令牌经由非安全环境REE传入指定的可信任应用的令牌;验证时间为指定的可信任应用开始进行合法性验证的第二时间与第一时间的时间差;在验证结果正确时,解锁电子设备。
[0063] 由于在上述方案中,通过在发起解锁请求时,由安全环境TEE中的指定的可信任应用生成第一令牌,让第一令牌伴随数据在指纹解锁流程中传输,并在对指纹信息进行比对获得比对结果后,通过预设的算法对比对结果及其生成时间(即第一时间)和第一令牌进行计算和,生成第一身份认证信息,并在比对结果为成功时,让指定的可信任应用按照预设的验证逻辑对第二令牌、验证时间及第一身份认证信息的合法性进行验证,获得验证结果,在验证结果为正确时才解锁电子设备。从而有效的避免了指纹数据的比对结果在REE中传输时被篡改的风险,实现了提高指纹解锁安全性的技术效果。
[0064] 为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
[0065] 请参考图1,本发明实施例提供一种指纹解锁的方法,应用于电子设备,该电子设备至少具有指纹传感器,该方法的处理过程如下。
[0066] 步骤101、通过指纹传感器采集指纹信息。
[0067] 在对电子设备如手机,利用用户的指纹对已经锁屏的电子设备进行解锁时,指纹信息的采集及指纹特征比对都是在电子设备的TEE环境中执行的,指纹特征的比对结果需要返回到电子设备的REE环境中的特定应用,该特定应用是发起指纹解锁操作流程的应用,如锁屏应用。
[0068] 通常电子设备内部软件环境,包括非安全环境(即REE环境)及安全环境(即TEE环境)。其中,REE环境,可以为操作系统的上层应用软件提供电子设备的所有功能,且这些功能是开放的、可扩展的、通用的,如底层硬件的驱动程序。TEE环境,可以通过使用硬件机制对操作系统中的敏感数据进行保护,使之免受REE和其他环境的恶意行为的攻击。
[0069] 需要理解的是,本发明中的电子设备,不仅包括手机,还包括平板电脑、笔记本电脑等,支持TEE环境的电子设备。以下,以电子设备为手机为例进行介绍。
[0070] 当用户需要对已锁屏的电子设备进行解锁时,需要用户在电子设备上执行第一操作,让电子设备获得指纹解锁请求。其中,第一操作,可以是用户按下电子设备上的特殊按键,也可以是用户在电子设备的触摸屏上执行预定的手势操作,具体第一操作是什么样的操作,在此不做限定。通常,指纹解锁请求是由电子设备中的锁屏应用基于第一操作生成的。
[0071] 当电子设备的锁屏应用获得指纹解锁请求之后,向电子设备中的指定的可信任应用发送指纹解锁请求,让指定的可信任应用基于指纹解锁请求,在TEE环境的中生成第一令牌。指定的可信任应用可以是核心密匙可信任应用Keymaster TA,为对指纹比对结果进行安全复审及生成令牌而设计的业务逻辑,存在于TEE环境中。
[0072] 其中,锁屏应用位于电子设备的REE环境中,当锁屏应用需要进行指纹解锁时,需要通过REE环境中的指纹框架层服务及指纹本地服务(即指纹native服务),和TEE环境中的指纹可信任应用(Fingerprint Trust Application,指纹TA)及指定的可信任应用Keymaster TA,来执行解锁流程。Keymaster TA在基于指纹解锁请求生成第一令牌后,将第一令牌再逐层返回给锁屏应用。指纹框架层服务为电子设备中的应用提供指纹传感器的驱动程序调用接口,指纹native服务协议传输控制相关指纹数据及命令的传输。
[0073] 电子设备中的锁屏应用在接收到第一令牌之后,向指纹框架层服务发起指纹识别请求。
[0074] 需要理解的是,通常情况下,攻击者是指纹的比对结果进行篡改,所以在进行指纹比对前,可以认为第一令牌不会被修改。其中,第一令牌可以为Keymaster TA生成的一个随机数,也可以是其它信息,在此对第一令牌的具体形式不做限定。
[0075] 通过这种方式,让指纹解锁流程中的传递的数据都携带上由指定的可信任应用,如Keymaster TA生成的第一令牌,便能在指纹解锁的关键环节,如解锁电子设备的屏幕时,通过对数据中的令牌进行验证,来提高指纹解锁流程的安全性。
[0076] 而指纹框架层服务在获得指纹识别请求后,需要对发起指纹识别请求的应用,如锁屏应用的权限进行检查,在确定锁屏应用的权限为合法后,才会将指纹识别请求发往指纹native服务,以便指纹native服务基于指纹识别请求,控制电子设备进入图像扫描模式,并在进入图像扫描模式之后,将第一令牌传递给位于TEE环境中的指纹TA,以便指纹TA控制指纹传感器采集用户的指纹信息。
[0077] 通过上述方式,让电子设备在执行指纹解锁流程之初,便通过指纹解锁请求让TEE环境的指定的可信任应用生成第一令牌,进而让后续的指纹解锁流程中传递的信息都携带上第一令牌,使得在对指纹解锁流程中通过对数据中的令牌进行验证,来降低数据在REE环境中传递时可能被篡改的风险,进而提高指纹解锁流程的安全性。
[0078] 在电子设备通过指纹传感器采集到用户的指纹信息之后,便可在对指纹信息进行验证,具体请见步骤102。
[0079] 步骤102、基于预存于电子设备中的指纹特征信息,对指纹信息进行比对,获得比对结果;并通过预设的算法对比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,第一关键信息至少包括第一令牌及获得比对结果的第一时间;第一令牌是在发起解锁请求时,由电子设备的安全环境TEE中指定的可信任应用生成的,用于指示电子设备中发起指纹解锁操作操作的合法性。
[0080] 在获得用户的指纹信息之后,需要通过电子设备中的指纹TA,对采集到的用户的指纹信息,与预存于电子设备中的指纹特征信息进行比对,获得比对结果。
[0081] 其中,指纹特征信息可以是在用户购机之后,或用户在进行安全性设置时按照指示进行的指纹信息录入后,提取的指纹特征信息,并存储在电子设备中。
[0082] 例如,指纹TA将指纹信息与指纹特征信息进行比对后,获得的是80%以上的相似度,那么比对结果是成功的,可以继续指纹解锁流程。
[0083] 同时,指纹TA除了需要对指纹信息进行比对之外,还需要通过预设的算法对比对结果及与第一关键信息进行计算,生成第一身份认证信息。其中,第一关键信息至少包括第一令牌及获得比对结果的第一时间;第一令牌是在发起解锁请求时,由电子设备的安全环境TEE中指定的可信任应用生成的,用于指示电子设备中发起指纹解锁操作操作的合法性[0084] 如,预设的算法可以为与密匙相关的哈希运算,在指纹TA中,通过预设的算法将比对结果、第一令牌、第一时间作为输入,计算出一个哈希消息认证码HMAC的值,将HMAC值作为第一身份认证信息。
[0085] 在电子设备的内部,第一身份认证信息是在指纹TA中,通过调用指定的函数,如auth_token_key对由比对结果、第一令牌及第一时间等进行哈希计算之后获得的。
[0086] 在获得比对结果及第一身份信息之后,还需将相关数据传递给指定的可信任应用Keymaster TA,让Keymaster TA进行验证,具体的请见步骤103。
[0087] 步骤103、若比对结果为表征比对成功,则在指定的可信任应用中按照预设的验证逻辑,对第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,第二令牌为第一令牌经由非安全环境REE传入指定的可信任应用的令牌;验证时间为指定的可信任应用开始进行合法性验证的第二时间与第一时间的时间差;。
[0088] 指定的可信任应用如Keymaster TA,按照预设的验证逻辑对第一身份认证信息及第二令牌和验证时间进行合法性验证,需要在Keymaster TA中执行以下操作,具体的是:
[0089] 首先,通过预设的算法对比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录第二时间。
[0090] 其次,基于第二身份认证信息及第一令牌和预设时间差,按预设的验证逻辑对第一身份认证信息及第二令牌,和验证时间进行验证,获得验证结果。
[0091] 其中,预设的验证逻辑具体可以是:按任意组合的先后顺序,对第一身份认证信息及第二令牌,和验证时间进行以下验证,获得验证结果:
[0092] 基于第二身份认证信息,判断第一身份认证信息的合法性,获得第一判断结果。
[0093] 例如,第一身份认证信息的值与第二身份认真信息的值相同时,便可确定第一身份认证信息是合法的,可以对其它信息进行验证;不同时,则为非法的便不能进行解锁,也不需再对其它信息的合法性进行验证了。
[0094] 基于第一令牌,判断第二令牌的合法性,获得第二判断结果。
[0095] 由于指纹TA在生成比对结果及第一身份认证信息之后,是将它们以数据包的形式发送给指纹native服务的,然后由指纹native服务通知Keymaster TA进行身份验证。
[0096] 需要理解的是,由于指纹native服务是位于非安全环境(即REE环境)的,故在指纹TA将数据包发送给指纹native服务的过程中,及指纹native服务将比对结果通过回调函数传递给锁屏应用的过程中,或指纹native服务将数据包传递给Keymaster TA时,数据包中的比对结果、令牌等都可能被篡改,于是为了区分第一令牌及第二令牌,将经REE环境传递后的第一令牌命名为第二令牌。如果第一令牌在REE中传递时没有被篡改,那么第二令牌便为第一令牌,如此便可确保整个解锁过程的安全性。
[0097] 故,在Keymaster TA中需要验证第二令牌的合法性,即比较第一令牌和第二令牌是否相同,如相同则合法,否则为非法。
[0098] 基于验证时间和预设时间差,判断验证时间(即第一时间及第二时间的时间差)是否在预设时间差内,获得第三判断结果。
[0099] 为了进一步的确保整个指纹解锁流程的安全性,还设计了对产生指纹信息的比对结果的时间及生成指定的可信任应用开始进行验证的时间之间的时间差,即第一时间与第二时间的时间差是否在预设时间差的范围内,如果是则认为是安全的,否则,可能令牌已经被破解。
[0100] 基于第一判断结果及第二判断结果和第三判断结果,获得验证结果。
[0101] 其中,检验结果正确是指第一判断结果、第二判断结果和第三判断结果均为是的情况,才能确定检验结果正确。
[0102] 在锁屏应用根据指纹native服务返回的匹配结果回调信息,向KeymasterTA获取验证结果后,便执行步骤104。
[0103] 步骤104、在验证结果正确时,解锁电子设备。
[0104] 如果验证结果不正确,则不执行解锁。
[0105] 为了让本领域的技术人员能够充分理解上述方案,现针对现有技术中指纹解锁的方案及本发明的指纹解锁方案分别进行说明。
[0106] 针对现有技术的指纹解锁方案。
[0107] 请参见图2,具体实施步骤如下:
[0108] 步骤201:锁屏应用向指纹框架层服务,发起指纹认证。
[0109] 步骤202:指纹框架层服务检查锁屏应用的权限。
[0110] 步骤203:在指纹框架层服务确定锁屏应用的权限为有效时,将指纹认证发送给指纹native服务,以进入图像扫描模式,进而让指纹native服务通过指纹TA控制指纹传感器工作,等待放手指。
[0111] 步骤204:当指纹传感器检测到手指后,采集指纹信息,并使指纹TA获得指纹信息,同时指纹TA将指纹信息与指纹特征信息进行比对,获得比对结果。
[0112] 步骤205:指纹TA将比对结果传递给指纹native服务,使之获取比对结果。
[0113] 步骤206:指纹框架层服务从指纹native服务获得比对结果,进行比对结果回调。
[0114] 步骤207:锁屏应用根据从指纹框架层服务获得的比对结果,决定是否解锁屏幕。如果比对结果为正确,则解锁,否则不解锁。
[0115] 通过上述现有技术的指纹解锁流程,可以清楚的知道,当比对结果从TEE侧的指纹TA返回给锁屏应用时,需要经过指纹native服务及指纹框架层服务,而这个过程由正好发生在REE侧,这就使得比对结果在传输的过程中存在被篡改的风险。
[0116] 而本发明针对上述问题,则采用了以下解锁流程,请参见图3。以下,以电子设备中指定的可信任应用为Keymaster TA、要使用指纹解锁流程的应用为锁屏应用为例进行说明。
[0117] 步骤301:当用户执行第一操作后,非安全环境(即REE环境)中的锁屏应用根据用户的第一操作生成解锁请求,并将之传递给安全环境(即TEE环境)中的Keymaster TA。
[0118] 步骤302:Keymaster TA在接收到解锁请求之后,生成第一令牌。
[0119] 步骤303:安全环境中的Keymaster TA将第一令牌返回给非安全环境中的锁屏应用。
[0120] 步骤304:锁屏应用在接收到第一令牌之后,发起指纹识别请求。
[0121] 步骤305:指纹框架层服务在接收到指纹识别请求之后,对锁屏应用的权限进行检查,在检查结果为在权限范围内时,执行步骤306。指纹识别请求中携带了锁屏应用的权限及第一令牌。
[0122] 步骤306:指纹框架层服务将指纹识别请求传入指纹native服务,让指纹native服务执行步骤307。
[0123] 步骤307:指纹native服务根据指纹识别请求,进入图像扫描模式,生成指纹扫描请求。
[0124] 步骤308:非安全环境的指纹native服务将指纹扫描请求传入安全环境中的指纹TA,让指纹TA控制指纹传感器工作,等待放手指。
[0125] 步骤309:当指纹传感器检测到手之后,采集指纹信息,并传输给指纹TA,指纹TA在获得指纹信息后,将其与预存于其中的指纹特征信息进行比对,获得比较结果。并按预设的算法对比对结果、第一令牌及第一时间进行计算,获得第一身份认证信息。
[0126] 例如,比对结果为1(1代表比对成功,0代表比对失败),Keymaster TA生成的第一令牌为随机数3,第一时间为13:38:56s.96ms。通过预设的算法对1、3、13:38:56s.96ms进行计算,获得第一身份认证信息为HF0932198C。
[0127] 步骤310:安全环境中的指纹TA将比对结果,返回给非安全环境的指纹native服务。
[0128] 步骤311-a、311-b:指纹native服务获取比对结果,并通知Keymaster TA进行身份验证。
[0129] 步骤312:Keymaster TA执行身份验证,获得验证结果。
[0130] 具体的,Keymaster TA执行身份验证,需要执行以下操作:
[0131] 首先,通过预设的算法对比对结果和第二令牌、第一时间进行计算,获得第二身份认证信息,并记录获得第二身份认证信息的第二时间。
[0132] 依然以前面的例子为例,通过HMAC对第一令牌3、第一时间13:38:56s.96ms、比对结果1进行哈希计算,获得第二身份认证信息为HF0932198C。
[0133] 然后,基于第二身份认证信息及第一令牌和预设时间差,按预设的验证逻辑对第一身份认证信息及第二令牌,和验证时间进行验证,获得验证结果。
[0134] 其中,预设的验证逻辑为:按任意组合的先后顺序,对第一身份认证信息及第二令牌,和验证时间进行以下验证,获得验证结果:
[0135] 基于第二身份认证信息,判断第一身份认证信息的合法性,获得第一判断结果;基于第一令牌,判断第二令牌的合法性,获得第二判断结果;基于验证时间和预设时间差,判断验证时间是否在预设时间差内,获得第三判断结果;基于第一判断结果及第二判断结果和第三判断结果,获得验证结果。
[0136] 例如,预设的验证逻辑可以先验证第一身份认证信息,再验证验证时间,最后验证第二令牌;也可以先验证验证时间,再验证第二令牌,最后验证第一身份认证信息;还可以是别的验证顺序,具体以何种组合顺序进行验证在此不做限定。
[0137] 不管是以何种预设的验证逻辑对第一身份认证信息、验证时间、第二令牌进行验证,只要判断到一个为否都可以停止后续还未进行的验证,只有它们的判断结果都为是时,验证结果才为正确。进而使得当锁屏应用在执行步骤313至步骤315后,能够完成步骤316对电子设备的屏幕进行解锁。
[0138] 具体步骤313至步骤315如下:
[0139] 步骤313:锁屏应用执行比对结果回调,以执行步骤314。
[0140] 步骤314:锁屏应用从Keymaster TA获取验证结果。
[0141] 步骤315:Keymaster TA将验证结果返回给锁屏应用。
[0142] 步骤316:锁屏应用在接收到验证结果为是后,执行解锁。
[0143] 基于同一发明构思,本发明一实施例中提供一种用于指纹解锁的装置,该装置的试问方法的具体实施方式可参见方法实施例部分的描述,重复之处不再赘述,请参见图4,该装置包括:
[0144] 采集单元401,用于通过所述指纹传感器采集指纹信息;
[0145] 处理单元402,用于基于预存于所述电子设备中的指纹特征信息,对所述指纹信息进行比对,获得比对结果;并通过预设的算法对所述比对结果和第一关键信息进行计算,获得第一身份认证信息;其中,所述第一关键信息至少包括第一令牌及获得所述比对结果的第一时间;所述第一令牌是在发起解锁请求时,由所述电子设备的安全环境TEE中指定的可信任应用生成的,用于指示所述电子设备中发起指纹解锁操作的合法性;
[0146] 验证单元403,用于若所述比对结果为表征比对成功,则在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果;其中,所述第二令牌为所述第一令牌经由非安全环境REE传入所述指定的可信任应用的令牌;所述验证时间为所述指定的可信任应用开始进行合法性验证的第二时间与所述第一时间的时间差;
[0147] 解锁单元404,用于在所述验证结果正确时,解锁所述电子设备。
[0148] 可选的,所述通过所述指纹传感器采集指纹信息时,所述采集单元401还用于:
[0149] 生成所述第一令牌,并发起指纹识别请求;
[0150] 基于所述指纹识别请求,控制所述指纹传感器进入图像扫描模式,以采集所述指纹信息。
[0151] 可选的,所述在所述指定的可信任应用中按照预设的验证逻辑,对所述第一身份认证信息及第二令牌和验证时间进行合法性验证,获得验证结果,所述验证单元403还用于:
[0152] 在所述指定的可信任应用中执行以下操作:
[0153] 通过所述预设的算法对所述比对结果及第二令牌和第一时间进行计算,获得第二身份认证信息;并记录所述第二时间;
[0154] 基于所述第二身份认证信息及所述第一令牌和预设时间差,按所述预设的验证逻辑对所述第一身份认证信息及第二令牌,和所述验证时间进行验证,获得所述验证结果。
[0155] 可选的,所述预设的验证逻辑,包括:
[0156] 按任意组合的先后顺序,对所述第一身份认证信息及第二令牌,和所述验证时间进行以下验证,获得所述验证结果:
[0157] 基于所述第二身份认证信息,判断所述第一身份认证信息的合法性,获得第一判断结果;
[0158] 基于所述第一令牌,判断所述第二令牌的合法性,获得第二判断结果;
[0159] 基于所述验证时间和预设时间差,判断所述第验证时间是否在所述预设时间差内,获得第三判断结果;
[0160] 基于所述第一判断结果及所述第二判断结果和所述第三判断结果,获得所述验证结果。
[0161] 可选的,所述验证结果正确,具体为:
[0162] 所述第一判断结果及所述第二判断结果和所述第三判断结果均为是时,所述验证结果正确。
[0163] 基于同一发明构思,本发明实施例中提供了一种用于指纹解锁的装置,包括:至少一个处理器,以及
[0164] 与所述至少一个处理器连接的存储器;
[0165] 其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的指纹解锁方法。
[0166] 基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:
[0167] 所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的指纹解锁方法。
[0168] 在本发明提供的技术方案中,通过在发起解锁请求时,由安全环境TEE中的指定可信任应用生成第一令牌,让第一令牌伴随数据在指纹解锁流程中传输,并在对指纹信息进行比对获得比对结果后,通过预设的算法对比对结果及其生成时间(即第一时间)和第一令牌进行计算和,生成第一身份认证信息,并在比对结果为成功时,让指定的可信任应用按照预设的验证逻辑对第二令牌、验证时间及第一身份认证信息的合法性进行验证,获得验证结果,在验证结果为正确时才解锁电子设备。从而有效的避免了指纹数据的比对结果在REE中传输时被篡改的风险,实现了提高指纹解锁安全性的技术效果。
[0169] 进一步的,在本发明提供的技术方案中,通过让电子设备在执行指纹解锁流程之初,便通过指纹解锁请求触发TEE环境的指定的可信任应用生成第一令牌,进而让后续的指纹解锁流程中传递的信息都携带上第一令牌,使得在指纹解锁流程中通过对数据中的令牌进行验证,来降低数据在REE环境中传递时可能被篡改的风险,进而提高指纹解锁流程的安全性。
[0170] 本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0171] 本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0172] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0173] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0174] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。