详解IFAA标准中的注册认证流程
大家早安,这个周末,红黄蓝继续在让人不安与愤怒,北京的大清理让人深思!安智客继续来聊技术、行业!我们今天来详细了解下IFAA标准!IFAA有四个流程,注册、认证、注销、查询
今天我们来说说注册和认证,注销和查询相对简单。(IFAA联盟:http://www.sohu.com/a/286675447_503310)
具体来说,注册过程中,APP首先会调用指纹认证界面进行手指认证,由于是APP主动发起请求注册,由于IFAATA数据从APP来的,所以首先需要验证证书,表明数据的确是从APP来的,而不是其他APP伪造的请求注册数据。注册过程中IFAATA同时还要验证数据是IFAA服务器下发的,使用IFAA服务器的公钥来验证IFAA服务器的合法性。
IFAA服务器收到APP的数据后,根据APP的字段,下发注册请求数据。该数据包含TOKEN(用来标识业务的唯一ID)、Challenge(用来避免重放攻击)。
然后IFAATA会获取当前认证指纹的ID,生成一对业务公私钥,连同服务器端下发的TOKEN、Challenge等保存在以TOKEN为文件名在安全存储中。IFAATA同时会获取认证器版本、DEVICEID组建返回数据,并用产线工具预制的私钥进行签名。向APP返回数据,确保IFAA服务器端确认收到的数据是此设备发的。
IFAAServer会根据将客户端上传的消息和签名连同deviceid一起发到IFAA认证中心进行验证。IFAA认证中心根据deviceid来索引到具体的设备公钥,并使用该公钥验证签名是否匹配。
IFAAServer发往IFAA认证中心的消息必须经过自己的私钥签名,并附加上具体的证书链,消息到达IFAA认证中心后,IFAA认证中心先使用附加的证书验证签名,再使用IFAA根证书验证该附加证书的合法性。IFAA认证中心回复给具体IFAAServer的消息将经过IFAA认证中心自己持有的私钥的签名。并将证书附加签名上。以防止认证结果的伪造和篡改。
IFAA认证流程
认证流程中,APP也会调用指纹认证界面进行手指认证,IFAATA同样也需要验证证书链的合法性,然后获取认证ID,读取注册时存在安全存储中的数据,将读取的last_id与获取的ID比较指纹是否匹配,如果匹配,则获取认证器版本号、deviceID等组建返回给IFAA服务的数据。并用注册时生成的业务私钥对数据进行签名。
注册流程与认证流程相比较:
1,注册流程是生成业务秘钥并保存文件,认证流程是通过token来读取业务秘钥对、lastID,并与认证过程中获取的lastID进行对比,判断出是否认证通过。
2,注册流程首先是验证服务器端发过来数据的有效性,通过IFAA_CheckCert来,注册流程最后是将生成的业务秘钥对数据返回给服务器,同时使用手机在产线生成的私钥对数据进行签名。
认证过程不处理产线秘钥。
如何理解IFAATA端数据到IFAA服务器端数据的保密性需求?
因为支付过程中IFAATA端数据到IFAA服务器端不会涉及到敏感数据,IFAA服务器和IFAATA之间并没有对数据保密性要求,只需要防抵赖、防篡改即可。
IFAAServer根据注册时保存的用户公钥来验证用户校验结果的签名,如果验证通过则继续验证用户的生物特征是否匹配。两步均验证通过后,则返回给应用服务器结果。否则返回失败,应用服务器应该信任IFAAServer的验证结果,而不是客户端的验证结果。
页:
[1]