一种基于指纹识别的身份验证方法、装置和系统与流程

文档序号:11216738阅读:399来源:国知局
一种基于指纹识别的身份验证方法、装置和系统与流程

本发明涉及指纹识别技术领域,尤其涉及一种基于指纹识别的身份验证方法、装置和系统。



背景技术:

指纹识别,是指电子设备采集用户指纹,将采集的指纹与预先存储的指纹模板进行匹配以验证用户身份的技术。通过指纹识别可避免非法用户使用电子设备,以下将具有指纹识别功能的电子设备统称为终端。

典型的指纹识别过程包括如下步骤:1、通过指纹采集设备获取所需识别指纹的图像;2、对采集的指纹图像进行预处理,具体包括图像质量判断、图像增强、指纹区域检测、指纹方向图和频率估算、图像二值化处理、图像细化等;3、从预处理后的指纹图像中,获取指纹的脊线数据;4、从指纹的脊线数据中,提取指纹识别所需的特征点即提取指纹特征;5、将提取的指纹特征与数据库中保存的参考指纹模板中的指纹特征逐一匹配,判断是否存在相同指纹。6、完成指纹匹配处理后,输出指纹识别的处理结果。

用户在配置指纹识别功能的过程中输入的作为匹配对象的参考指纹是无法撤销和更改的,所以参考指纹模板的保护需要采取安全性更高的策略。实际应用中,为了保证指纹识别的安全性,一般不允许将云端数据库上存储的参考指纹读取到设备上,也不允许将设备自身存储的参考指纹传送到云端,因此,指纹识别主要应用在非受信区域受信区域内、或者单台设备上。

随着移动办公的普及,很多企业为员工提供了公用移动终端,例如,银行的制卡机,以方便员工外出办公。这些公用移动终端不可能事先存储每个员工的参考指纹,而当员工外出办公离开受信区域时,云端数据库上存储的参考指 纹也不能传输到该公用移动终端,因此,该公用移动终端在离开受信区域后无法对使用者进行身份验证。在另一些场景下,为了提高认证的安全性,当终端位于非受信区域时,不允许终端使用本地存储的参考指纹对使用者进行身份验证,而云端数据库上存储的参考指纹也不能传输到该终端,这同样导致该终端无法对使用者进行身份验证。即,在现有技术中,当终端位于非受信区域时,无法利用云端数据库存储的参考指纹对使用者进行身份验证。



技术实现要素:

本发明实施例提供一种基于指纹识别的身份验证方法、装置和系统,以解决现有技术中,当终端位于非受信区域时,无法利用云端数据库存储的参考指纹对使用者进行身份验证的问题。

本发明实施例提供的具体技术方案如下:

第一方面,提供一种基于指纹识别的身份验证方法,包括:

位于非受信区域的终端接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹;

所述终端将所述身份验证请求发送至位于受信区域的后台服务器,所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果;

所述终端接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个挑战指纹;

所述终端计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并向所述后台服务器发送所述第一不符合度矩阵,所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度,使所述后台服务器基于所述第一不符合度矩阵返回所述测试指纹对应的身份验证结果。

在第一方面的基础上,可选的,所述随机生成的n个挑战指纹为所述后台服务器从指纹数据库中随机选取的n个指纹。

在第一方面的基础上,可选的,所述终端计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,包括:

所述终端获取所述测试指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点;

所述终端依次比对每个挑战指纹的脊线中的m个细节点与所述测试指纹的脊线中的m个细节点,得到每个挑战指纹的脊线中的m个细节点中每个细节点对应的脊线匹配度;

所述终端针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并

基于得到的每个挑战指纹的挑战值形成所述第一不符合度矩阵。

第二方面,提供一种基于指纹识别的身份验证方法,包括:

位于受信区域上的后台服务器接收位于非受信区域的终端发送的针对应用程序采集的测试指纹进行身份验证的身份验证请求;

所述后台服务器随机生成包括n个挑战指纹的挑战指纹阵列;

所述后台服务器向所述终端发送所述生成的挑战指纹阵列;

所述后台服务器接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;

所述后台服务器分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵;

所述后台服务器基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;

所述后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果。

在第二方面的基础上,可选的,所述后台服务器随机生成包括n个挑战指纹的挑战指纹阵列,包括:

所述后台服务器从指纹数据库中随机选取n个指纹,生成挑战指纹阵列,所述指纹数据库存储在所述后台服务器中或存储在所述后台服务器连接的其他设备中。

在第二方面的基础上,可选的,所述后台服务器计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵,包括:

所述后台服务器获取每个参考指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点;

针对每一个参考指纹,所述后台服务器依次比对每个挑战指纹的脊线中的m个细节点与所述一个参考指纹的脊线中的m个细节点,得到每个挑战指纹中m个细节点中的每个细节点对应的脊线匹配度;

所述后台服务器针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并将每个挑战指纹的挑战值形成所述一个参考指纹的第二不符合度矩阵。

在第二方面的基础上,可选的,基于所述第一不符合度矩阵和每个参考指纹的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度,符合下述公式要求:

其中,σ为任意一个参考指纹与测试指纹之间的匹配度,测试指纹与挑战指纹阵列间的第一不符合度矩阵为[{ac1},{ac2},{ac3},...{acn}],所述任意一个参考指纹与挑战指纹阵列间的第二不符合度矩阵为[{bc1},{bc2},{bc3},...{bcn}]。

在第二方面的基础上,可选的,所述后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果,包括:

所述后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,判定参考指纹中是否存在目标参考指纹,所述目标参考指纹与所述测试指纹之间的匹配度小于预设阈值;

若存在目标参考指纹,则向所述终端返回所述测试指纹对应的身份验证成 功;

若不存在目标参考指纹,向所述终端返回所述测试指纹对应的身份验证失败。

第三方面,提供一种基于指纹识别的身份验证装置,包括:

采集单元,用于接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹;

发送单元,用于将所述身份验证请求发送至位于受信区域的后台服务器,所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果;

接收单元,用于接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个挑战指纹;

处理单元,用于计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并向所述后台服务器发送所述第一不符合度矩阵,所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度,使所述后台服务器基于所述第一不符合度矩阵返回所述测试指纹对应的身份验证结果。

所述第三方面的装置用于实现第一方面以及第一方面的各实施方式中的方法。

第四方面,提供一种基于指纹识别的身份验证装置,包括:

接收单元,用于接收位于非受信区域的终端发送的针对应用程序采集的测试指纹进行身份验证的身份验证请求;

处理单元,用于随机生成包括n个挑战指纹的挑战指纹阵列;

发送单元,用于向所述终端发送所述生成的挑战指纹阵列;

所述接收单元,还用于在接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;

所述处理单元,还用于分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵;

基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;

基于每个参考指纹与所述测试指纹之间的匹配度,通过所述发送单元向所述终端返回所述测试指纹对应的身份验证结果。

所述第四方面的装置用于实现第二方面以及第二方面的各实施方式中的方法。

第五方面,提供一种终端,该终端包括处理器、存储器、发射器和接收器,其中,所述存储器中存储有计算机可读程序,所述处理器通过运行所述存储器中的程序,控制所述发射器和接收器,实现第一方面涉及的基于指纹识别的身份验证方法。

第六方面,提供一种服务器,该设备包括处理器、存储器、收发器,其中,所述存储器中存有计算机可读程序,所述处理器通过运行所述存储器中的程序,控制所述发射器和接收器,实现第二方面涉及的基于指纹识别的身份验证方法。

第七方面,提供一种通信系统,该通信系统包括第一设备和第二设备,其中,所述第一设备为第三方面涉及的装置或第五方面涉及的终端,所述第二设备为第四方面涉及的装置或第六方面涉及的服务器。

本发明实施例提供的基于指纹识别的身份验证方案中,位于非受信区域的终端接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹,接收后台服务器反馈的挑战指纹阵列,将计算的测试指纹与所述挑战指纹阵列间的第一不符合度矩阵发送至所述后台服务器,后台服务器计算后台服务器中的参考指纹与挑战指纹阵列间的第二不符合度矩阵,并将第一不符合度矩阵与第二不符合度矩阵匹配,以获取所述测试指纹的身份验证结果。相较于现有技术,本发明实施例中的方案,当终端位于非受信区域时,能够利用云端数据库存储的参考指纹对使用者进行身份验证,扩大指纹识别的身份验证的应用范围,避免了终端的测试指纹与云端数据库存储的参考指纹的泄露风险,提高身份验证的安全性。

附图说明

图1为本发明实施例的基于指纹识别的身份验证系统架构示意图;

图2为本发明实施例中基于指纹识别的身份验证方法流程图;

图3为本发明实施例中实际应用场景下的基于指纹识别的身份验证方法流程图;

图4为本发明实施例中一种基于指纹识别的身份验证装置的结构示意图;

图5为本发明实施例中一种终端的结构示意图;

图6为本发明实施例中另一种基于指纹识别的身份验证装置的结构示意图;

图7为本发明实施例中一种服务器的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

图1所示为本发明实施例的基于指纹识别的身份验证系统架构示意图,所述系统包括终端和后台服务器,终端处于非受信区域、后台服务器处于受信区域中,终端与后台服务器之间可以建立虚拟专用网络(virtualprivatenetwork,vpn)隧道进行通信,也可以建立基于安全传输层协议(transportlayersecurity,tls)、安全套接层(securesocketslayer,ssl)的长连接来进行通信。

终端,用于接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹,并将所述身份验证请求发送至位于受信区域的后台服务器,所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果;接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个挑战指纹;计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并将所述第一不符合度矩阵发送至所述后台服务器,所述不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配 程度。

后台服务器,用于接收位于非受信区域的终端发送的针对应用程序采集的测试指纹进行身份验证的身份验证请求;随机生成包括n个挑战指纹的挑战指纹阵列;将生成的挑战指纹阵列发送至所述终端;接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵,并基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果。

参阅图2所示,本发明实施例提供一种基于指纹识别的身份验证方法,用于图1所示的系统。所述方法具体包括:

步骤20:终端接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹。

步骤21:所述终端将所述身份验证请求发送至位于受信区域上的后台服务器。

所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果。

步骤22:后台服务器接收到终端发送的身份验证请求后,随机生成包括n个随机指纹的挑战指纹阵列。

其中,所述挑战指纹阵列包括所述后台服务器从指纹数据库中随机选取的n个挑战指纹,所述指纹数据库存储在所述后台服务器中或存储在所述后台服务器连接的其他设备中。随机生成的n个挑战指纹为所述后台服务器从指纹数据库中随机选取的n个指纹。

步骤23:后台服务器将生成的挑战指纹阵列发送至终端。

步骤24:终端接收到挑战指纹阵列后,计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵。

具体的,所述终端计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,包括以下步骤:

s1:获取所述测试指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点。

s2:依次比对每个挑战指纹的脊线中的m个细节点与所述测试指纹的脊线中的m个细节点,得到每个挑战指纹的脊线中的m个细节点中每个细节点对应的脊线匹配度。

这里用sk表示挑战指纹阵列中第i个挑战指纹与测试指纹之间第k个细节点对应的脊线匹配度,1≤k≤m。

s3:针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并基于得到的每个挑战指纹的挑战值形成第一不符合度矩阵。

这里用aci表示挑战指纹阵列中第i个挑战指纹的挑战值,1≤i≤n,且满足下列公式:

第一不符合度矩阵为[{ac1},{ac2},{ac3},...{acn}],

步骤25:终端向所述后台服务器发送所述第一不符合度矩阵。

所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度。

步骤26:后台服务器接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹,分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵。

需要说明的是,参考指纹预先存储在后台服务器中,且所述后台服务器还存储了每个参考指纹对应的身份信息和权限。

具体的,后台服务器计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵,包括以下步骤:

n1:获取每个参考指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点。

n2:针对每一个参考指纹,所述后台服务器依次比对每个挑战指纹的脊线中的m个细节点与所述一个参考指纹的脊线中的m个细节点,得到每个挑战指纹中m个细节点中的每个细节点对应的脊线匹配度。

n3:针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并将每个挑战指纹的挑战值形成所述一个参考指纹的第二不符合度矩阵。

需要说明的是,任意一个参考指纹与挑战指纹阵列之间的第二不符合度矩阵的计算方法,与上述测试指纹与挑战指纹阵列之间的第一不符合度矩阵的计算方法,完全相同,这里不再赘述。

步骤27:后台服务器基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度。

基于所述第一不符合度矩阵和每个参考指纹的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度,符合下述公式要求:

其中,σ为一个参考指纹与测试指纹之间的匹配度,第一不符合度矩阵为[{ac1},{ac2},{ac3},...{acn}],一个参考指纹的第二不符合度矩阵为[{bc1},{bc2},{bc3},...{bcn}]。

步骤28:后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果。

具体的,后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果,具体过程为:

所述后台服务器基于每个参考指纹与所述测试指纹之间的匹配度,判定参考指纹中是否存在目标参考指纹,所述目标参考指纹与所述测试指纹之间的匹 配度小于预设阈值;

若存在目标参考指纹,则向所述终端返回所述测试指纹对应的身份验证成功;

若不存在目标参考指纹,向所述终端返回所述测试指纹对应的身份验证失败。

下面通过一个详细的例子来说明图2所示的方法,如图3所示,包括终端和后台服务器,终端和后台服务器通过公网建立vpn隧道进行通信。其中,终端包括2个实体模块,分别是客户端指纹认证模块和指纹认证可信计算区,后台服务器中设置有后台指纹认证模块、后台随机指纹生成器和参考指纹模板库。

其中,客户端指纹认证模块,用于为客户端应用提供指纹认证的入口,为安装在终端客户端上的应用提供应用验证接口并负责发起应用的指纹认证请求。

指纹认证可信计算区,负责计算后台服务器反馈的挑战指纹阵列和客户端指纹认证模块采集的测试指纹之间第一不符合度矩阵,并将得到的第一不符合度矩阵传回后台服务器中的后台指纹认证模块。指纹认证可信计算区位于终端的安全区域,该区域不允许外界随意访问,但是可以随意访问外界区域。

后台指纹认证模块,用于提供指纹认证的服务,负责计算挑战指纹阵列和参考指纹模板中的每一个参考指纹之间的第二不符合度矩阵,逐个对比每个参考指纹的第二不符合度矩阵和第一不符合度矩阵之间的差异,得到测试指纹的真实指纹身份,验证测试指纹的身份。

后台随机指纹生产器,负责随机生成挑战指纹阵列,挑战指纹阵列包含n(n为大于2的正整数)个挑战指纹,并反馈至终端,挑战指纹是客户端的测试指纹和后台服务端的参考指纹比对的公共参照。

指纹模板存储库:负责存储具有身份信息的m个参考指纹,m为正整数。具体的,交互过程可参阅图3所示。

1、应用程序发起当前使用者实名身份的身份验证请求,并采集当前使用者输入的测试指纹,将身份验证请求和测试指纹传到客户端指纹认证模块。

2、指纹认证模块首先通过公网和后台服务器建立vpn隧道,之后在vpn隧道内到后台服务器的后台指纹认证模块去申请对测试指纹进行身份验证。

3、后台指纹认证模块触发后台随机指纹生成器,去随机生成一个挑战指纹阵列c,该挑战指纹阵列c中包含n个挑战指纹。具体的,随机指纹生成器从一个足够大的指纹模板数据库中随机选取n个指纹,指纹模板库的指纹模板由外部提供,模板库样板数据差异性越大,最后的比对结果的准确性越高。

4、后台随机指纹生成器将挑战指纹阵列c传回到客户端指纹认证模块。

5、客户端指纹认证模块把挑战指纹阵列c、测试指纹,传到指纹认证可信计算区,进行测试指纹和挑战指纹阵列中的每个挑战指纹的逐一对比,得到第一不符合度矩阵:[{ac1},{ac2},{ac3},...{acn}]。

具体的,指纹比对时采用指纹匹配算法,指纹匹配算法采用细节点坐标模型来做细节匹配,它将一副指纹图像转化成了一个由细节点组成的平面点集,利用脊线末梢(或称为端点)与脊线分支点这两种关键点来鉴定指纹.通过将细节点表示为点模式,自动将指纹认证转化为一个点模式匹配(细节匹配)。

表示测试指纹的脊线中的m个细节点,表示挑战指纹阵列中一个挑战指纹的m个细节点。细节点比较需要转换到极坐标系中去,要在模板细节点集和输入细节点集中各选一个参照点作为相应的极坐标系中的原点,并算出其他细节点相对于参照点的极坐标。

表示极坐标下测试指纹的脊线中的m个细节点,表示极坐标下一个挑战指纹的脊线中的n个细节点。其中表示对应的极半径、极角和相对于参照点的细节点方向。

基于现有的细节点比对算法,通过极坐标下点的半径,角度,方向的比较,得到脊线匹配度(匹配分数),记录为sk,,测试指纹的所有细节点比较后得到一组匹配分数,[s1,s2,…,sm],将m个细节点的脊线匹配度加和求平均,得到一个挑战指纹的挑战值。

其中,0<aci<100,所有挑战指纹和测试指纹比对后得到第一不符合度矩阵[{ac1},{ac2},{ac3},...{acn}]。

需要说明的是挑战值越大,说明测试指纹与挑战指纹越不相似。

6、指纹认证可信计算区将得到的第一不符合度矩阵传回客户端指纹认证模块。

7、客户端指纹认证模块将第一不符合度矩阵传回后台指纹验证模块。

8、后台指纹认证模块从参考指纹模板库中读取存储的所有参考指纹,依次和挑战指纹阵列c比对,得到第二不符合度矩阵[{bc1},{bc2},{bc3},...{bcn}],进一步的,依次对比每个参考指纹的第二不符合度矩阵和第一不符合矩阵得到每个参考指纹与测试指纹间的匹配度,得到测试指纹的真实身份验证结果。

每个参考指纹与所述测试指纹之间的匹配度符合下述公式:

其中,σ为一个参考指纹与测试指纹之间的匹配度。

由于第一不符合度矩阵和第二不符合度矩阵中的每个元素的挑战值均为0~100之间,即0<aci<100,0<bci<100,两个矩阵对应位置的匹配度差小于5%(bci-aci<5),认为该点匹配,所有点匹配结果,如果均小于5%,则判定该参考指纹与测试指纹匹配成功,身份验证结果为验证通过,可选的,还能查询到该参考指纹对应的身份信息。

9、后台指纹认证模块向客户端身份认证模块返回测试指纹对应的身份验证结果。

10、客户端身份认证模块将测试指纹对应的身份验证结果返回给对应的应用程序。

基于上述实施例提供的基于指纹识别的身份验证方法,本发明实施例提供一种基于指纹识别的身份验证装置400,该装置可以用于执行上述图2和图3所述的方法中终端的执行过程,其中,所述装置400可以是终端或者安装于所述终端上的装置,图4所示为本发明实施例提供的装置400的结构示意图,如图4所示,该装置400包括采集单元401、发送单元402、接收单元403和处理单元404,其中:

采集单元401,用于接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹;

发送单元402,用于将所述身份验证请求发送至位于受信区域的后台服务器,所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果;

接收单元403,用于接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个挑战指纹;

处理单元404,用于计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并向所述后台服务器发送所述第一不符合度矩阵,所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度,使所述后台服务器基于所述第一不符合度矩阵返回所述测试指纹对应的身份验证结果。

可选的,所述随机生成的n个挑战指纹为所述后台服务器从指纹数据库中随机选取的n个指纹。

可选的,所述处理单元404在计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵时,具体用于:

获取所述测试指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点;

依次比对每个挑战指纹的脊线中的m个细节点与所述测试指纹的脊线中的m个细节点,得到每个挑战指纹的脊线中的m个细节点中每个细节点对应的脊线匹配度;

针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并

基于得到的每个挑战指纹的挑战值形成所述第一不符合度矩阵。

本发明实施例上述涉及的装置400,可以是独立的部件,也可以是集成于其他部件中。

需要说明的是,本发明实施例中的装置400的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。

请参见图5,基于同一发明构思,本发明实施例还提供一种基于指纹识别的身份验证设备500,该设备500可以用于执行上述图2和图3所述的方法中终端的功能,如图5所示,设备500包括包括存储器501、处理器502、接收器503和发射器504。执行本发明方案的程序代码保存在存储器501中,并由处理器502来控制执行。

存储器501中存储的程序用于指令处理器502执行基于指纹识别的身份验证方法,包括:通过接收器503接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹;将所述身份验证请求通过所述发射器504发送至位于受信区域的后台服务器,所述身份验证请求用于获取所述应用程序采集的测试指纹对应的身份验证结果;通过所述接收器503接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个挑战指纹;计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并向所述后台服务器发送所述第一不符合度矩阵,所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度,使所述后台服务器基于所述第一不符合度矩阵返回所述测试指纹对应的身份验证结果。

所述后台服务器可以是图6所示的装置或者图7所示的服务器。

其中,处理器502可以是中央处理器(cpu)或特定应用集成电路(英文:application-specificintegratedcircuit,简称:asic),可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列(fieldprogrammablegatearray,fpga)开发的硬件电路,可以是基带芯片。

存储器501的数量可以是一个或多个。存储器501可以包括只读存储器(英文:read-onlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)和磁盘存储器。

接收器503可以用于与外部设备进行通信,例如接收器503可以与基站、后台服务器等设备进行通信。

发射器504,可以用于与外部设备进行通信,例如发射器504也可以与基站、后台服务器等设备进行通信。

发射器504和接收器503可以是同一实体模块,例如可以是能够实现收发功能的实体模块,比如可以称为收发器,或者发射器504和接收器503也可以是单独的实体模块。

存储器501、发射器504和接收器503可以通过总线与处理器502相连接,或者也可以通过专门的连接线分别与处理器502连接。

通过对处理器502进行设计编程,将上面所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2和图3所示的方法。

可以理解的是,本实施例的设备500可用于实现上述方法实施例中涉及终端的所有功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

基于上述实施例提供的基于指纹识别的身份验证方法,本发明实施例提供一种基于指纹识别的身份验证装置600,该装置可以用于执行上述图2和图3所述的方法中后台服务器的执行过程,图6所示为本发明实施例提供的装置600的结构示意图,如图6所示,该装置600包括接收单元601、处理单元602、发送单元603,其中:

接收单元601,用于接收位于非受信区域的终端发送的针对应用程序采集的测试指纹进行身份验证的身份验证请求;

处理单元602,用于随机生成包括n个挑战指纹的挑战指纹阵列;

发送单元603,用于向所述终端发送所述生成的挑战指纹阵列;

所述接收单元601,还用于在接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;

所述处理单元602,还用于分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵;

基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;

基于每个参考指纹与所述测试指纹之间的匹配度,通过所述发送单元603向所述终端返回所述测试指纹对应的身份验证结果。

可选的,所述处理单元602在随机生成包括n个挑战指纹的挑战指纹阵列时,具体用于:

从指纹数据库中随机选取n个指纹,生成挑战指纹阵列,所述指纹数据库存储在所述装置中或存储在所述装置连接的其他设备中。

可选的,所述处理单元602在计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵时,具体用于:

获取每个参考指纹的脊线中的m个细节点,以及所述挑战指纹阵列中每个挑战指纹的脊线中的m个细节点;

针对每一个参考指纹,依次比对每个挑战指纹的脊线中的m个细节点与所述一个参考指纹的脊线中的m个细节点,得到每个挑战指纹中m个细节点中的每个细节点对应的脊线匹配度;

针对每个挑战指纹,将m个脊线匹配度加和求平均,得到每个挑战指纹的挑战值,并将每个挑战指纹的挑战值形成所述一个参考指纹的第二不符合度矩阵。

可选的,所述处理单元602在基于所述第一不符合度矩阵和每个参考指纹的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度时,符合下述公式要求:

其中,σ为任意一个参考指纹与测试指纹之间的匹配度,测试指纹与挑战指纹阵列间的第一不符合度矩阵为[{ac1},{ac2},{ac3},...{acn}],所述任意一个参考指纹与挑战指纹阵列间的第二不符合度矩阵为[{bc1},{bc2},{bc3},...{bcn}]。

可选的,所述处理单元602在基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果时,具体用于:

基于每个参考指纹与所述测试指纹之间的匹配度,判定参考指纹中是否存在目标参考指纹,所述目标参考指纹与所述测试指纹之间的匹配度小于预设阈值;

若存在目标参考指纹,则向所述终端返回所述测试指纹对应的身份验证成功;

若不存在目标参考指纹,向所述终端返回所述测试指纹对应的身份验证失败。

本发明实施例上述涉及的装置600,可以是独立的部件,也可以集成于其他部件中。

需要说明的是,本发明实施例中的装置600的各个单元的功能实现以及交互方式可以进一步参照相关方法实施例的描述,在此不再赘述。

请参见图7,基于同一发明构思,本发明实施例还提供一种服务器700,该服务器700可以用于执行上述图2和图3所述的方法中后台服务器的操作,如图7所示,服务器700包括包括存储器701、处理器702、接收器703和发射器704。执行本发明方案的程序代码保存在存储器701中,并由处理器702来控制执行。

存储器701中存储的程序用于指令处理器702执行基于指纹识别的身份验证方法,包括:通过接收器703接收位于非受信区域的终端发送的针对应用程序采集的测试指纹进行身份验证的身份验证请求;随机生成包括n个挑战指纹的挑战指纹阵列;通过所述发射器704向所述终端发送所述生成的挑战指纹阵列;在通过接收器703接收到所述终端发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵;基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;基于每个参考指纹与所述测试指纹之间的匹配度,通过所述发射器704向所述终端返回所述测试指纹对应的身份验证结果。

所述终端可以是图4所示的装置或者图5所示的终端。

其中,处理器702可以是cpu或asic,可以是一个或多个用于控制程序执行的集成电路,可以是使用现场可编程门阵列fpga开发的硬件电路,可以是基带芯片。

存储器701的数量可以是一个或多个。存储器701可以包括只读存储器rom、ram和磁盘存储器。

接收器703和发射器704可以用于与外部设备进行通信,例如接收器703和发射器704可以与终端进行通信。

发射器704和接收器703可以是同一实体模块,例如可以是能够实现收发功能的实体模块,比如可以称为收发器,或者发射器704和接收器703也可以是单独的实体模块。

存储器701、发射器704和接收器703可以通过总线与处理器702相连接,或者也可以通过专门的连接线分别与处理器702连接。

通过对处理器702进行设计编程,将上面所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图2和图3中后台服务器的操作。

可以理解的是,本实施例的设备700可用于实现上述方法实施例中涉及后 台服务器的所有功能,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。

综上所述,本发明实施例中,位于非受信区域的终端接收到应用程序发起的身份验证请求后,获取所述应用程序采集的测试指纹,并将所述身份验证请求发送至位于受信区域上的后台服务器;接收所述后台服务器基于所述身份验证请求反馈的挑战指纹阵列,所述挑战指纹阵列包括随机生成的n个指纹;计算所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵,并将所述第一不符合度矩阵发送至所述后台服务器,所述第一不符合度矩阵用于描述所述测试指纹与所述挑战指纹阵列之间的不匹配程度,所述后台服务器接收到所述终端计算并发送的所述测试指纹与所述挑战指纹阵列间的第一不符合度矩阵后,获取预存的参考指纹;分别计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵,并基于所述第一不符合度矩阵和针对每个参考指纹分别计算的第二不符合度矩阵,确定每个参考指纹与所述测试指纹之间的匹配度;基于每个参考指纹与所述测试指纹之间的匹配度,向所述终端返回所述测试指纹对应的身份验证结果,这样,当终端位于非受信区域,且需要进行使用者实名身份验证的情况下,通过在终端采集测试指纹,借助后台服务器生成的挑战指纹阵列得到测试指纹与挑战指纹阵列间的第一不符合度矩阵并发送给所述后台服务器,后台服务器计算每个参考指纹与所述挑战指纹阵列间的第二不符合度矩阵,并通过判断第一不符合度矩阵和第二不符合度矩阵的差异性,得到测试指纹对应的身份验证结果,避免了终端采集的测试指纹的泄露风险,也避免了后台服务器中存储的参考指纹的泄露风险,还能够利用云端数据库存储的参考指纹对使用者进行身份验证,保证安全性的前提下,扩大指纹的身份验证的应用范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可读程序代码的计算机可用存储介质上实施的计算机程序产品的 形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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