人脸认证方法和装置与流程

未命名 08-15 阅读:126 评论:0


1.本说明书一个或多个实施例涉及网络信息技术,尤其涉及人脸认证方法和装置。


背景技术:

2.随着网络技术的发展,人脸认证业务的应用场景越发广泛,比如在购物支付时,通过人脸认证来进行支付,再如在登录一个系统或者通过一个门禁时,通过人脸认证来进行准入操作。并且,目前,除了小程序,第三方app(应用程序)之外,一些h5页面也开始集成人脸认证。因此,人脸认证业务的安全性至关重要,但是,目前的人脸认证业务的安全性有待提高。
3.因此,亟需一种更为安全的人脸认证方法。


技术实现要素:

4.本说明书一个或多个实施例描述了人脸认证方法和装置,能够提高人脸认证业务的安全性。
5.根据第一方面,提供了一种人脸认证方法,其中,该方法包括:
6.接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息;
7.对该人脸信息进行认证,得到人脸认证结果;
8.生成授权码;
9.保存该授权码与该人脸认证结果的第一对应关系;
10.将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;
11.接收第三方服务器发来的认证结果查询请求;
12.判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。
13.在第一方面中,在所述接收终端设备中的人脸验证app发来的人脸信息之前,该方法进一步包括:接收第三方服务器发来的认证授权请求;根据该认证授权请求中携带的用户身份信息,得到认证标识certifyid;将该certifyid发送给第三方服务器;
14.在所述生成授权码之后,进一步包括:保存所生成的所述授权码与所得到的所述certifyid的第二对应关系;
15.所述认证结果查询请求中进一步携带有certifyid;
16.在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,进一步包括:判断认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间是否具有所述第二对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给
第三方服务器,否则,拒绝返回人脸认证结果。
17.在第一方面中,在所述接收终端设备中的人脸验证app发来的人脸信息之前,该方法进一步包括:接收第三方服务器发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid,得到与该用户身份信息对应的认证标识certifyid;并保存该certifyid与该sessionid的第三对应关系;以及将该certifyid发送给第三方服务器,以由第三方服务器将该certifyid发送给第三方app;
18.所述人脸验证app发来的人脸认证请求中进一步携带有:第三方app上报给人脸验证app的certifyid与sessionid;
19.在所述接收终端设备中的人脸验证app发来的人脸认证请求之后,并在所述得到人脸认证结果之前,进一步包括:判断人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间是否具有所述第三对应关系,如果是,则继续执行所述得到人脸认证结果,否则,人脸认证失败。
20.在第一方面中,在所述生成授权码之后,进一步包括:保存所生成的该授权码与从所述认证授权请求中得到的sessionid的第四对应关系;
21.在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,进一步包括:判断第三方服务器发来的认证结果查询请求中是否携带有sessionid,如果是,则判断认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间是否具有所述第四对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,拒绝返回人脸认证结果。
22.根据第二方面,提供了人脸认证方法,其中,该方法包括:
23.接收终端设备中的第三方app发来的认证触发请求;
24.获取用户的人脸信息;
25.将该人脸信息携带在人脸认证请求中发送给验证服务器;
26.如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。
27.在第二方面中,所述第三方app发来的认证触发请求中携带有认证标识certifyid和本次会话的会话标识sessionid;
28.所述将该人脸信息携带在人脸认证请求中发送给验证服务器,包括:将所述人脸信息、从认证触发请求中获取的certifyid和sessionid携带在人脸认证请求中发送给验证服务器。
29.根据第三方面,提供了人脸认证方法,该方法包括:
30.接收第三方app发来的认证结果查询请求;该认证结果查询请求中携带有授权码;
31.将携带授权码的认证结果查询请求发送给验证服务器;
32.接收验证服务器发来的人脸认证结果;
33.将人脸认证结果发送给第三方app。
34.在第三方面中,在所述接收第三方app发来的认证结果查询请求之前,进一步包括:接收第三方app发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;将携带用户身份信息及所述sessionid的认证授权请求发送给验证服务器;
35.所述将携带授权码的认证结果查询请求发送给验证服务器,包括:将携带授权码以及所述sessionid的认证结果查询请求发送给验证服务器。
36.根据第四方面,提供了人脸认证方法,其中,该方法包括:
37.向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息;
38.接收人脸验证app发来的授权码;
39.将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果;
40.接收第三方服务器发来的人脸认证结果。
41.在第四方面中,在所述向终端设备中的人脸验证app发送认证触发请求之前,进一步包括:向第三方服务器发送认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;
42.所述向终端设备中的人脸验证app发送认证触发请求包括:将所述sessionid以及第三方服务器发来的认证标识certifyid携带在认证触发请求中发送给终端设备中的人脸验证app;
43.所述认证结果查询请求中进一步携带有所述certifyid和/或所述sessionid。
44.根据第五方面,提供了人脸认证装置,其中,该装置设置于验证服务器中,该装置包括:
45.人脸认证请求接收模块,配置为接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息;
46.人脸认证执行模块,配置为对该人脸信息进行认证,得到人脸认证结果;
47.认证结果处理模块,配置为生成授权码;保存该授权码与该人脸认证结果的第一对应关系;
48.授权码下发模块,配置为将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;
49.结果查询处理模块,配置为接收第三方服务器发来的认证结果查询请求;判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。
50.根据第六方面,提供了人脸认证装置,其中,该装置设置于终端设备中,用于执行人脸验证app的处理,该装置包括:
51.触发请求接收模块,配置为接收终端设备中的第三方app发来的认证触发请求;
52.人脸信息处理模块,配置为获取用户的人脸信息;将该人脸信息携带在人脸认证请求中发送给验证服务器;
53.授权码转发模块,配置为如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。
54.根据第七方面,提供了人脸认证装置,该装置被设置于第三方服务器中,该装置包括:
55.查询请求接收模块,配置为接收第三方app发来的认证结果查询请求;该认证结果
查询请求中携带有授权码;
56.查询请求转发模块,配置为将携带授权码的认证结果查询请求发送给验证服务器;
57.认证结果获取模块,配置为接收验证服务器发来的人脸认证结果;将人脸认证结果发送给第三方app。
58.根据第八方面,提供了一种人脸认证装置,该装置被设置于终端设备中,用于实现第三方app的处理,该装置包括:
59.触发请求发送模块,配置为向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息;
60.授权码接收模块,配置为接收人脸验证app发来的授权码;
61.查询请求发送模块,配置为将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果;
62.认证结果确定模块,配置为接收第三方服务器发来的人脸认证结果。
63.根据第九方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现本说明书任一实施例所述的方法。
64.本说明书各个实施例提供的人脸认证方法及装置至少具有如下有益效果:
65.1、验证服务器在对人脸信息进行认证后,不是直接将人脸认证结果比如表征验证成功的状态值或者验证失败的状态值下发给人脸验证app,而是将授权码下发给人脸验证app,相应地,人脸验证app也无法将人脸认证结果发送给第三方app,这样,即使发生了攻击行为,攻击者盗取了授权码,攻击者也无法根据授权码得到人脸认证结果,攻击者就无法修改人脸认证结果,因此,大大提高了人脸认证业务的安全性。
66.2、利用第一对应关系提供人脸认证结果。具体来说,考虑到certifyid对应的是用户的身份信息,而不是认证中的人脸信息,因此,在本说明书实施例中没有采用certifyid来作为查询人脸认证结果的凭证,而是采用能够表征一次认证过程中的人脸信息的授权码来作为查询人脸认证结果的凭证,也就是说,第三方app和第三方服务器如果能向验证服务器提供正确的授权码,验证服务器就会根据自己预先保存的授权码与人脸认证结果之间的第一对应关系,提供人脸认证结果。
67.3、因为不会直接将人脸认证结果发送给第三方app,而是首先发送授权码,第三方app根据授权码无法得知人脸认证结果,因此,迫使了第三方app及第三方服务器必须根据得到的授权码主动向验证服务器查询人脸验证的结果,从而符合了协议的要求,进一步提高了人脸认证业务的安全性。
68.4、利用第三对应关系来解决可能出现的certifyid泄露的问题。具体来说,在验证服务器中,可以根据自己预先保存的sessionid以及certifyid之间的第三对应关系来判断人脸认证请求中携带的certifyid是否合法,是否发生了由于certifyid泄露而导致的攻击行为,如果是,则不会提供人脸认证结果。因此,可以进一步提高人脸认证过程的安全性。
69.5、利用第二对应关系来验证查询人脸认证结果的第三方服务器、第三方app的合法性。具体来说,验证服务器可以预先保存授权码与certifyid之间的第二对应关系,如果第三方服务器能够提供具有该第二对应关系的授权码与certifyid,则可以确定第三方app及第三方服务器的合法性,从而才会提供人脸认证结果。
70.6、利用第四对应关系来验证查询人脸认证结果的第三方服务器、第三方app的合法性。具体来说,验证服务器可以预先保存授权码与sessionid之间的第四对应关系,如果第三方服务器能够提供具有该第四对应关系的授权码与sessionid,则可以确定第三方app及第三方服务器的合法性,从而才会提供人脸认证结果。
附图说明
71.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
72.图1是本说明书一个实施例所应用的系统架构的示意图。
73.图2是本说明书一个实施例中在验证服务器中执行的人脸认证方法的流程图。
74.图3是本说明书一个实施例中在人脸验证app中执行的人脸认证方法的流程图。
75.图4是本说明书一个实施例中在第三方服务器中执行的人脸认证方法的流程图。
76.图5是本说明书一个实施例中在第三方app中执行的人脸认证方法的流程图。
77.图6是本说明书一个实施例中各方配合完成的人脸认证方法的流程图。
78.图7是本说明书一个实施例中设置在验证服务器中的人脸认证装置的结构示意图。
79.图8是本说明书一个实施例中设置在终端设备中执行人脸验证app的处理的人脸认证装置的结构示意图。
80.图9是本说明书一个实施例中设置在第三方服务器中的人脸认证装置的结构示意图。
81.图10是本说明书一个实施例中设置在终端设备中执行第三方app的处理的人脸认证装置的结构示意图。
具体实施方式
82.下面结合附图,对本说明书提供的方案进行描述。
83.首先需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
84.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
85.在终端设备侧,一种应用程序,称为第三方app,需要使用人脸认证服务时,会通过终端设备侧的人脸验证app将采集的人脸信息发送给验证服务器,验证服务器对人脸进行验证,之后验证服务器会将人脸认证结果通过人脸验证app发送给第三方app。但是在验证服务器将人脸认证结果下发给人脸验证app以及在人脸验证app将人脸认证结果下发给第三方app的过程中,有可能受到攻击,从而改变人脸认证结果,比如,如果是攻击者利用假脸发起的人脸认证,虽然验证服务器下发的人脸认证结果为不通过,但是攻击者可以修改下
发的人脸认证结果,将该人脸认证结果修改为通过,从而导致了人脸认证业务的安全性大大降低。
86.为了方便对本说明书提供的方法进行理解,首先对本说明书所涉及和适用的系统架构进行描述。如图1中所示,该系统架构中主要包括四种网络节点:第三方app、人脸验证app、第三方服务器以及验证服务器。
87.其中第三方app以及人脸验证app安装并运行于终端设备中,终端设备可以包括但不限于诸如:智能移动终端、智能家居设备、网络设备、可穿戴式设备、智能医疗设备、pc(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、pda(个人数字助理)、互联网汽车等。智能家居设备可以包括智能家电设备,诸如智能电视、智能空调、智能热水器、智能冰箱、智能空气净化器等等,智能家居设备还可以包括智能门锁、智能插座、智能电灯、智能摄像头等。网络设备可以包括诸如交换机、无线ap、服务器等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。智能医疗设备可以包括诸如智能体温计、智能血压仪、智能血糖仪等等。
88.第三方服务器可以是单一服务器,也可以是多个服务器构成的服务器群组,负责为第三方app提供网络服务,例如安全认证、网络服务等级的管理等等。
89.验证服务器可以是单一服务器,也可以是多个服务器构成的服务器群组,负责为人脸验证app提供网络服务,例如人脸的对比等等。
90.应该理解,图1中的第三方app、人脸验证app、第三方服务器以及验证服务器的数目仅仅是示意性的。根据实现需要,可以选择和布设任意数目。
91.可以看出,本发明实施例的方法涉及到第三方app的处理、人脸验证app的处理、第三方服务器的处理以及验证服务器的处理。下面将通过不同的实施例来分别说明各方在人脸认证过程中的处理。
92.下面首先说明在验证服务器中的处理。图2是本说明书一个实施例中在验证服务器中执行的人脸认证方法的流程图。该方法的执行主体为人脸认证装置。该装置位于验证服务器中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图2,该方法包括:
93.步骤201:验证服务器接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息。
94.步骤203:验证服务器对该人脸信息进行认证,得到人脸认证结果;
95.步骤205:验证服务器生成授权码;
96.步骤207:验证服务器保存该授权码与该人脸认证结果的第一对应关系;
97.步骤209:验证服务器将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;
98.步骤211:验证服务器接收第三方服务器发来的认证结果查询请求;
99.步骤213:验证服务器判断该认证结果查询请求中是否携带有授权码,如果是,则执行步骤215,否则,拒绝提供人脸认证结果,结束当前流程。
100.步骤215:验证服务器将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。
101.上述图2所示流程描述的是在验证服务器中的处理。对应于上述图2所示的验证服务器的处理,人脸验证app、第三方服务器以及第三方app也需要配合完成相应的处理。
102.下面说明对应于图2所示的验证服务器中的处理,在人脸验证app中执行的相应处理。图3是本说明书一个实施例中在人脸验证app中执行的人脸认证方法的流程图。该方法的执行主体为人脸认证装置。该装置位于终端设备中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图3,该方法包括:
103.步骤301:人脸验证app接收终端设备中的第三方app发来的认证触发请求。
104.步骤303:人脸验证app获取用户的人脸信息。
105.步骤305:人脸验证app将该人脸信息携带在人脸认证请求中发送给验证服务器。
106.步骤307:人脸验证app如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。
107.下面说明对应于图2所示的验证服务器的处理,在第三方服务器中执行的相应处理。图4是本说明书一个实施例中在第三方服务器中执行的人脸认证方法的流程图。该方法的执行主体为人脸认证装置。该装置位于第三方服务器中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图4,该方法包括:
108.步骤401:第三方服务器接收第三方app发来的认证结果查询请求;该认证结果查询请求中携带有授权码。
109.步骤403:第三方服务器将携带授权码的认证结果查询请求发送给验证服务器。
110.步骤405:第三方服务器接收验证服务器发来的人脸认证结果。
111.步骤407:第三方服务器将人脸认证结果发送给第三方app。
112.下面说明对应于图2所示的验证服务器的处理,在第三方app中执行的相应处理。图5是本说明书一个实施例中在第三方app中执行的人脸认证方法的流程图。该方法的执行主体为人脸认证装置。该装置位于终端设备中。可以理解,该方法也可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。参见图5,该方法包括:
113.步骤501:第三方app向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息。
114.步骤503:第三方app接收人脸验证app发来的授权码。
115.步骤505:第三方app将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果。
116.步骤507:第三方app接收第三方服务器发来的人脸认证结果。
117.如前所述,在现有技术中,验证服务器是直接将人脸认证结果比如表征验证成功的状态值或者验证失败的状态值下发给人脸验证app,相应地,人脸验证app也是直接将该人脸认证结果发送给第三方app,当发生针对该人脸认证结果的攻击行为时,就会改变人脸验证app或者第三方app收到的人脸认证结果,比如,如果是攻击者利用假脸发起的人脸认证,虽然验证服务器下发的人脸认证结果为不通过,但是攻击者可以修改下发的人脸认证结果,将该人脸认证结果修改为通过,从而导致了人脸认证业务的安全性大大降低。相反,参见上述图2至图5所示的流程,在本说明书实施例中,验证服务器在对人脸信息进行认证后,不是直接将人脸认证结果比如表征验证成功的状态值或者验证失败的状态值下发给人脸验证app,而是将授权码下发给人脸验证app,相应地,人脸验证app也无法将人脸认证结
果发送给第三方app,这样,即使发生了攻击行为,攻击者盗取了授权码,攻击者也无法根据授权码得到人脸认证结果,攻击者就无法修改人脸认证结果,因此,大大提高了人脸认证业务的安全性。参见图2至图5,后续,第三方app和第三方服务器如果能向验证服务器提供正确的授权码,才能获得人脸认证结果。
118.为了提高安全性,在人脸认证业务中,在第三方app收到了人脸验证app转发的人脸验证结果之后,也会要求第三方app及第三方服务器主动向验证服务器查询人脸验证的结果。但是在现有技术中,因为第三方app已经从人脸验证app转发的人脸验证结果中得到了人脸验证是否成功的结果,因此,很多第三方app及第三方服务器则不会按照协议的要求主动向验证服务器查询人脸验证的结果,从而违反了协议的要求,降低了人脸认证业务的安全性。相反,参见图2至图5所示流程,在本说明书实施例中,因为不会直接将人脸认证结果发送给第三方app,而是首先发送授权码,第三方app根据授权码无法得知人脸认证结果,因此,迫使了第三方app及第三方服务器必须根据得到的授权码主动向验证服务器查询人脸验证的结果,从而符合了协议的要求,进一步提高了人脸认证业务的安全性。在本说明书的上述实施例中,通过授权码避免了攻击者对人脸认证结果的修改。
119.在本说明书的实施例中,还进一步考虑了人脸认证过程中的如下问题:
120.1、在第三方app及第三方服务器主动向验证服务器查询人脸验证的结果时,如何利用授权码来验证第三方app及第三方服务器的合法性。
121.2、如何避免认证标识(certifyid)泄露导致的人脸认证的安全问题。
122.关于上述第1点问题,可以利用如下两种方式来验证第三方app及第三方服务器的合法性:
123.方式a、利用授权码与certifyid之间的对应关系,记为第二对应关系,来验证第三方app及第三方服务器的合法性。
124.方式b、利用授权码与会话标识(sessionid)之间的对应关系,记为第四对应关系,来验证第三方app及第三方服务器的合法性。
125.下面针对上述方式a来进行说明。
126.在人脸认证业务中,每一个用户的身份信息比如用户的姓名唯一对应一个certifyid,也就是说,一个certifyid表征了一个用户。在一次会话中,因为需要对用户的人脸信息进行认证,因此,在验证服务器、第三方服务器、人脸验证app以及第三方app之间会传输该用户的身份信息对应的certifyid。利用这一特点,在本说明书一个实施例,可以在验证服务器中保存授权码与certifyid之间的对应关系,即第二对应关系,从而利用该第二对应关系来验证第三方app及第三方服务器的合法性。
127.在方式a中,当第三方app需要使用人脸认证功能时,会在人脸验证app发送人脸信息之前,向第三方服务器发送携带用户身份信息的认证授权请求,第三方服务器将携带用户身份信息的认证授权请求发送给验证服务器,从而通过用户身份信息来换取certifyid,也就是说,验证服务器接收第三方服务器发来的认证授权请求;根据该认证授权请求中携带的用户身份信息,得到认证标识certifyid;将该certifyid发送给第三方服务器,第三方服务器再将该certifyid发送给第三方app,之后,验证服务器生成了授权码;验证服务器会保存所生成的授权码与所得到的所述certifyid的第二对应关系。之后,当需要查询人脸认证结果是,第三方app会将携带certifyid和授权码的认证结果查询请求发送给第三方服务
器,第三方服务器再将携带certifyid和授权码的认证结果查询请求发送给验证服务器,这样,在上述步骤213中,验证服务器判断出认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,进一步包括:验证服务器判断认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间是否具有该验证服务器中保存的第二对应关系,也就是说,在该验证服务器保存的第二对应关系中是否能查找到认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间的对应关系,如果是,则确定第三方服务器与第三方app合法,继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,确定第三方服务器与第三方app不合法,拒绝返回人脸认证结果。
128.下面首先针对解决上述第2点问题的方法进行说明,在该解决方法的基础上可以进一步实现解决上述第1点问题的方式b。
129.如前所述,在人脸认证业务中,一个certifyid表征了一个用户的身份信息,这样,同一个用户的不同次人脸认证中,则会使用同一个certifyid。在不同的人脸认证中,如果发生了攻击行为,攻击者盗取了用户的身份信息,则可以得到该用户的身份信息对应的certifyid。因此,仍然存在一定的风险,导致人脸认证过程的安全性降低。使用标识一个会话的sessionid,则可以进一步避免该风险,因为sessionid不仅表征了一次人脸认证中的用户身份信息,而且还表征了本次人脸认证中的人脸信息,因此,可以解决上述第2点问题。
130.此时,当第三方app需要使用人脸认证功能时,会获取本次会话的sessionid,在人脸验证app发送人脸信息之前,第三方app向第三方服务器发送携带用户身份信息以及sessionid的认证授权请求,第三方服务器将携带用户身份信息以及sessionid的认证授权请求发送给验证服务器,从而一方面通过用户身份信息来换取certifyid,另一方面,将本次会话的sessionid上报给了验证服务器。也就是说,验证服务器接收第三方服务器发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的sessionid,得到与该用户身份信息对应的certifyid;并保存该certifyid与该sessionid的第三对应关系;以及将该certifyid以及sessionid发送给第三方服务器,以由第三方服务器将该certifyid以及sessionid发送给第三方app。之后,第三方app将得到的certifyid以及sessionid携带在认证触发请求中发送给终端设备中的人脸验证app;app将获取到的人脸信息、从认证触发请求中获取的certifyid和sessionid携带在人脸认证请求中发送给验证服务器。验证服务器在接收到人脸验证app发来的人脸认证请求之后,并在对人脸进行认证从而得到人脸认证结果之前,进一步包括:验证服务器判断人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间是否具有所述第三对应关系,也就是说,验证服务器自身保存的第三对应关系中能否查找到人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间的对应关系,如果是,则确定certifyid未被盗用,继续执行所述对人脸进行认证从而得到人脸认证结果,否则,人脸认证失败。可见,该处理过程解决了上述问题2。之后,验证服务器生成了授权码;验证服务器会保存所生成的授权码与所得到的sessionid的第四对应关系。之后,当需要查询人脸认证结果是,第三方app会将携带sessionid和授权码的认证结果查询请求发送给第三方服务器,第三方服务器再将携带sessionid和授权码的认证结果查询请求发送给验证服务器,这样,在上述步骤213中,验证服务器判断出认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方
服务器之前,进一步包括:验证服务器判断认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间是否具有该验证服务器中保存的第四对应关系,也就是说,在该验证服务器保存的第四对应关系中是否能查找到认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间的对应关系,如果是,则确定第三方服务器与第三方app合法,继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,确定第三方服务器与第三方app不合法,拒绝返回人脸认证结果。可见,实现了针对第1点问题的方式b。
131.图6是本说明书一个实施例中各方配合完成的人脸认证方法的流程图。参见图6,该方法包括:
132.步骤601:第三方app获取sessionid,将携带sessionid以及用户身份信息的认证授权请求发送给第三方服务器。
133.步骤603:第三方服务器将携带sessionid以及用户身份信息的认证授权请求发送给验证服务器。
134.步骤605:验证服务器得到与认证授权请求中携带的用户身份信息对应的certifyid,并保存得到的该certifyid与认证授权请求中携带的sessionid之间的对应关系,记为第三对应关系。
135.步骤607:验证服务器将得到的certifyid发送给第三方服务器。
136.步骤609:第三方服务器将接收到的certifyid发送给第三app。
137.本步骤609中,为了提高安全性,第三方服务器可以是将加签后的certifyid发送给第三app。
138.步骤611:第三app将sessionid以及接收到的certifyid携带在认证触发请求中发送给终端设备中的人脸验证app。
139.步骤613:人脸验证app获取用户的人脸信息,将该人脸信息、从认证触发请求中获取的certifyid和sessionid携带在人脸认证请求中发送给验证服务器。
140.步骤615:验证服务器判断人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间是否具有上述第三对应关系,也就是说,验证服务器自身保存的第三对应关系中能否查找到人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间的对应关系,如果是,则确定certifyid未被盗用,执行步骤617,否则,人脸认证失败,结束当前流程。
141.步骤617:验证服务器对该人脸信息进行认证,得到人脸认证结果。
142.步骤619:验证服务器生成授权码,保存该授权码与人脸认证结果的对应关系,记为第一对应关系;验证服务器保存该授权码与sessionid之间的对应关系记为第四对应关系。
143.本步骤619中,验证服务器可以不保存第四对应关系,而是改为保存该授权码与certifyid之间的对应关系记为第二对应关系。
144.步骤621:验证服务器将授权码(authcode)发送给人脸验证app。
145.步骤623:人脸验证app将授权码发送给第三方app。
146.步骤625:第三方app将授权码以及sessionid携带在认证结果查询请求中发送给第三方服务器。
147.步骤627:第三方服务器将携带授权码以及sessionid的认证结果查询请求发送给验证服务器。
148.步骤629:验证服务器判断出认证结果查询请求中携带有授权码之后,判断认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间是否具有该验证服务器中保存的上述第四对应关系,如果是,执行步骤631,否则拒绝返回人脸认证结果,结束当前流程。
149.需要说明的是,在上述步骤625直至步骤627中,认证结果查询请求中也可以不携带sessionid,而是改为携带certifyid,这样,步骤629中,验证服务器判断认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间是否具有该验证服务器中保存的上述第二对应关系,如果是,执行步骤631,否则拒绝返回人脸认证结果,结束当前流程。
150.步骤631:验证服务器根据上述第一对应关系,获取与认证结果查询请求中携带的授权码对应的人脸认证结果,将该人脸认证结果发送给第三方服务器。
151.步骤633:第三方服务器将接收到的人脸认证将结果发送给第三方app。
152.本说明书实施例中还提出了一种人脸认证装置,该装置设置在验证服务器中,参见图7,该装置包括:
153.人脸认证请求接收模块701,配置为接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息;
154.人脸认证执行模块702,配置为对该人脸信息进行认证,得到人脸认证结果;
155.认证结果处理模块703,配置为生成授权码;保存该授权码与该人脸认证结果的第一对应关系;
156.授权码下发模块704,配置为将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;
157.结果查询处理模块705,配置为接收第三方服务器发来的认证结果查询请求;判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。
158.在本说明书一个实施例中,在图7所示的设置在验证服务器中的人脸认证装置中,进一步包括:第一授权模块(图7中未示出),第一授权模块被配置为接收第三方服务器发来的认证授权请求;根据该认证授权请求中携带的用户身份信息,得到认证标识certifyid;将该certifyid发送给第三方服务器;
159.相应地,认证结果处理模块703进一步被配置为在生成授权码之后,保存所生成的所述授权码与所得到的所述certifyid的第二对应关系;
160.所述认证结果查询请求中进一步携带有certifyid;
161.相应地,结果查询处理模块705被配置为执行:在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,判断认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间是否具有所述第二对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,拒绝返回人脸认证结果。
162.在本说明书一个实施例中,在图7所示的设置在验证服务器中的人脸认证装置中,进一步包括:第二授权模块(图7中未示出),第二授权模块被配置为执行:接收第三方服务器发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid,得到与该用户身份信息对应的认证标识certifyid;并保存该certifyid与该sessionid的第三对应关系;以及将该certifyid发送给第三方服务器,以由第三方服务器将该certifyid发送给第三方app;
163.相应地,人脸认证请求接收模块701接收到的人脸认证请求中进一步携带有:第三方app上报给人脸验证app的certifyid与sessionid;
164.相应地,结果查询处理模块705被配置为执行:在接收终端设备中的人脸验证app发来的人脸认证请求之后,并在所述得到人脸认证结果之前,判断人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间是否具有所述第三对应关系,如果是,则继续执行所述得到人脸认证结果,否则,人脸认证失败。
165.在本说明书一个实施例中,在图7所示的设置在验证服务器中的人脸认证装置中进一步包括上述第二授权模块时,
166.认证结果处理模块703进一步被配置为执行:在生成授权码之后,保存所生成的该授权码与从认证授权请求中得到的sessionid的第四对应关系;
167.相应地,结果查询处理模块705被配置为执行:在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,判断第三方服务器发来的认证结果查询请求中是否携带有sessionid,如果是,则判断认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间是否具有所述第四对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,拒绝返回人脸认证结果。
168.本说明书一个实施例还提出了一种人脸认证装置,该装置被设置于终端设备中,用于执行人脸验证app的处理。参见图8,该装置包括:
169.触发请求接收模块801,配置为接收终端设备中的第三方app发来的认证触发请求;
170.人脸信息处理模块802,配置为获取用户的人脸信息;将该人脸信息携带在人脸认证请求中发送给验证服务器;
171.授权码转发模块803,配置为如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。
172.在本说明书一个实施例中,在图8所示的设置在终端设备中的人脸认证装置中,触发请求接收模块801接收到的认证触发请求中携带有认证标识certifyid和本次会话的会话标识sessionid;
173.相应地,人脸信息处理模块802被配置为将所述人脸信息、从认证触发请求中获取的certifyid和sessionid携带在人脸认证请求中发送给验证服务器。
174.本说明书一个实施例还提出了一种人脸认证装置,该装置被设置于第三方服务器中,参见图9,该装置包括:
175.查询请求接收模块901,配置为接收第三方app发来的认证结果查询请求;该认证结果查询请求中携带有授权码;
176.查询请求转发模块902,配置为将携带授权码的认证结果查询请求发送给验证服务器;
177.认证结果获取模块903,配置为接收验证服务器发来的人脸认证结果;将人脸认证结果发送给第三方app。
178.在本说明书一个实施例中,在图9所示的设置在第三方服务器中的人脸认证装置中,进一步包括:授权请求转发模块(图中未示出),该授权请求模块配置为接收第三方app发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;将携带用户身份信息及所述sessionid的认证授权请求发送给验证服务器;
179.查询请求转发模块902被配置为执行:将携带授权码以及所述sessionid的认证结果查询请求发送给验证服务器。
180.本说明书一个实施例还提出了一种人脸认证装置,该装置被设置于终端设备中,用于实现第三方app的功能,参见图10,该装置包括:
181.触发请求发送模块1001,配置为向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息;
182.授权码接收模块1002,配置为接收人脸验证app发来的授权码;
183.查询请求发送模块1003,配置为将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果;
184.认证结果确定模块1004,配置为接收第三方服务器发来的人脸认证结果。在本说明书一个实施例中,在图10所示的设置在终端设备中的人脸认证装置中,进一步包括:授权请求发送模块(图中未示出),配置为向第三方服务器发送认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;
185.触发请求发送模块1001被配置为执行:将所述sessionid以及第三方服务器发来的认证标识certifyid携带在认证触发请求中发送给终端设备中的人脸验证app;
186.所述认证结果查询请求中进一步携带有所述certifyid和/或所述sessionid。
187.本说明书一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行说明书中任一个实施例中的方法。
188.本说明书一个实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现执行说明书中任一个实施例中的方法。
189.可以理解的是,本说明书实施例示意的结构并不构成对本说明书实施例的装置的具体限定。在说明书的另一些实施例中,上述装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
190.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
191.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明
的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术特征:
1.人脸认证方法,其中,该方法包括:接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息;对该人脸信息进行认证,得到人脸认证结果;生成授权码;保存该授权码与该人脸认证结果的第一对应关系;将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;接收第三方服务器发来的认证结果查询请求;判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。2.根据权利要求1所述的方法,其中,在所述接收终端设备中的人脸验证app发来的人脸信息之前,该方法进一步包括:接收第三方服务器发来的认证授权请求;根据该认证授权请求中携带的用户身份信息,得到认证标识certifyid;将该certifyid发送给第三方服务器;在所述生成授权码之后,进一步包括:保存所生成的所述授权码与所得到的所述certifyid的第二对应关系;所述认证结果查询请求中进一步携带有certifyid;在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,进一步包括:判断认证结果查询请求中携带的certifyid与认证结果查询请求中携带的授权码之间是否具有所述第二对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,拒绝返回人脸认证结果。3.根据权利要求1所述的方法,其中,在所述接收终端设备中的人脸验证app发来的人脸信息之前,该方法进一步包括:接收第三方服务器发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid,得到与该用户身份信息对应的认证标识certifyid;并保存该certifyid与该sessionid的第三对应关系;以及将该certifyid发送给第三方服务器,以由第三方服务器将该certifyid发送给第三方app;所述人脸验证app发来的人脸认证请求中进一步携带有:第三方app上报给人脸验证app的certifyid与sessionid;在所述接收终端设备中的人脸验证app发来的人脸认证请求之后,并在所述得到人脸认证结果之前,进一步包括:判断人脸认证请求中携带的certifyid与人脸认证请求中携带的sessionid之间是否具有所述第三对应关系,如果是,则继续执行所述得到人脸认证结果,否则,人脸认证失败。4.根据权利要求3所述的方法,在所述生成授权码之后,进一步包括:保存所生成的该授权码与从所述认证授权请求中得到的sessionid的第四对应关系;在判断出该认证结果查询请求中携带有授权码之后,并在将与所述授权码对应的人脸认证结果发送给第三方服务器之前,进一步包括:判断第三方服务器发来的认证结果查询
请求中是否携带有sessionid,如果是,则判断认证结果查询请求中携带的sessionid与认证结果查询请求中携带的授权码之间是否具有所述第四对应关系,如果是,则继续执行所述将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,否则,拒绝返回人脸认证结果。5.人脸认证方法,其中,该方法包括:接收终端设备中的第三方app发来的认证触发请求;获取用户的人脸信息;将该人脸信息携带在人脸认证请求中发送给验证服务器;如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。6.根据权利要求5所述的方法,所述第三方app发来的认证触发请求中携带有认证标识certifyid和本次会话的会话标识sessionid;所述将该人脸信息携带在人脸认证请求中发送给验证服务器,包括:将所述人脸信息、从认证触发请求中获取的certifyid和sessionid携带在人脸认证请求中发送给验证服务器。7.人脸认证方法,该方法包括:接收第三方app发来的认证结果查询请求;该认证结果查询请求中携带有授权码;将携带授权码的认证结果查询请求发送给验证服务器;接收验证服务器发来的人脸认证结果;将人脸认证结果发送给第三方app。8.根据权利要求7所述的方法,其中,在所述接收第三方app发来的认证结果查询请求之前,进一步包括:接收第三方app发来的认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;将携带用户身份信息及所述sessionid的认证授权请求发送给验证服务器;所述将携带授权码的认证结果查询请求发送给验证服务器,包括:将携带授权码以及所述sessionid的认证结果查询请求发送给验证服务器。9.人脸认证方法,其中,该方法包括:向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息;接收人脸验证app发来的授权码;将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果;接收第三方服务器发来的人脸认证结果。10.根据权利要求9所述的方法,其中,在所述向终端设备中的人脸验证app发送认证触发请求之前,进一步包括:向第三方服务器发送认证授权请求,该认证授权请求中携带有用户身份信息及本次会话的会话标识sessionid;所述向终端设备中的人脸验证app发送认证触发请求包括:将所述sessionid以及第三方服务器发来的认证标识certifyid携带在认证触发请求中发送给终端设备中的人脸验证app;所述认证结果查询请求中进一步携带有所述certifyid和/或所述sessionid。
11.人脸认证装置,其中,该装置设置于验证服务器中,该装置包括:人脸认证请求接收模块,配置为接收终端设备中的人脸验证app发来的人脸认证请求,该人脸认证请求中携带有人脸信息;人脸认证执行模块,配置为对该人脸信息进行认证,得到人脸认证结果;认证结果处理模块,配置为生成授权码;保存该授权码与该人脸认证结果的第一对应关系;授权码下发模块,配置为将生成的授权码下发给人脸验证app,以由该人脸验证app将该授权码发送给第三方app;结果查询处理模块,配置为接收第三方服务器发来的认证结果查询请求;判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方app。12.人脸认证装置,其中,该装置设置于终端设备中,用于执行人脸验证app的处理,该装置包括:触发请求接收模块,配置为接收终端设备中的第三方app发来的认证触发请求;人脸信息处理模块,配置为获取用户的人脸信息;将该人脸信息携带在人脸认证请求中发送给验证服务器;授权码转发模块,配置为如果接收到验证服务器下发的授权码,则将该授权码发送给第三方app。13.人脸认证装置,该装置被设置于第三方服务器中,该装置包括:查询请求接收模块,配置为接收第三方app发来的认证结果查询请求;该认证结果查询请求中携带有授权码;查询请求转发模块,配置为将携带授权码的认证结果查询请求发送给验证服务器;认证结果获取模块,配置为接收验证服务器发来的人脸认证结果;将人脸认证结果发送给第三方app。14.一种人脸认证装置,该装置被设置于终端设备中,用于实现第三方app的处理,该装置包括:触发请求发送模块,配置为向终端设备中的人脸验证app发送认证触发请求,以触发人脸验证app获取用户的人脸信息;授权码接收模块,配置为接收人脸验证app发来的授权码;查询请求发送模块,配置为将携带该授权码的认证结果查询请求发送给第三方服务器,以触发第三方服务器查询人脸认证结果;认证结果确定模块,配置为接收第三方服务器发来的人脸认证结果。15.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。

技术总结
本说明书实施例提供了一种人脸认证方法及装置。在验证服务器中执行的人脸认证方法包括:接收终端设备中的人脸验证APP发来的人脸认证请求,该人脸认证请求中携带有人脸信息;对该人脸信息进行认证,得到人脸认证结果;生成授权码;保存该授权码与该人脸认证结果的第一对应关系;将生成的授权码下发给人脸验证APP,以由该人脸验证APP将该授权码发送给第三方APP;接收第三方服务器发来的认证结果查询请求;判断该认证结果查询请求中是否携带有授权码,如果是,则将与所述认证结果查询请求中携带的授权码对应的人脸认证结果发送给第三方服务器,以由第三方服务器将人脸认证结果发送给第三方APP。本说明书实施例能够提高人脸认证业务的安全性。认证业务的安全性。认证业务的安全性。


技术研发人员:张婉桥 黄琳 董帅克 施尚成
受保护的技术使用者:支付宝(杭州)信息技术有限公司
技术研发日:2023.05.26
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐