生物认证中的IFFA、SOTER、FIDO协议

生物识别认证以其“便捷与安全兼顾”的明显特征,已经可预见地成为人类从“移动互联网时代”向“智能物联网时代”演进的重要“入口”,担负着保证“现实世界”与“网络世界”的身份对应,生物识别认证也因在信息安全层面“盗取难度大、仿制成本高、骗取验证难”的新型密码角色,成为互联网领域的核心技术之一。

说到生物识别认证,就不得不想到IFFA(蚂蚁等)、SOTER(腾讯等)、FIDO(海外Google、微软等)这三个生物认证平台与标准。

IFFA协议

安全体系架构

IFAA Server

IFFA建立一个顶级根证书,并向各服务商颁发二级证书,服务商可以根据实际情况再颁发三级证书等,具体的证书和私钥作为IFAA Server的身份凭证

服务端下发的消息需要经过业务证书签名,并附加证书链信息:

1
服务商根证书|服务器证书|消息签名|消息体

client

OEM厂商根据实际能力选择使用一机一密或是一型一密。对于一机一密的方式,手机在产线上将按照 IFAA 标准为每个手机生成唯一的公私钥,私钥存入 RPMB 中。公钥连同设备 ID,手机型号等一起上传到 IFAA 认证中心。IFAA 认证中心负责保存所有本地免密设备的公钥,并向外提供安全验证服务。而对于一型一密的方式,需要厂商严格按照一型一密的原则为每个型号配置一对公私钥,并将私钥扫入 RPMB,公钥上传到 IFAA 网站。

客户端消息会经过私钥签名,形式如下:

1
消息签名|消息体

IFFA认证中心

IFAA 将提供一个集中的鉴定手机身份的服务。主要完成注册时客户端的签名验证等操作。对于发现安 全风险的客户端,将控制其使用。该服务将向 IFAA Server 会员提供服务。IFAA Server 在向 IFAA 认证 中心发起调用请求时,需要使用自己的证书做签名,签名将包含完整的证书链。IFAA 认证中心将使用 IFAA 根证书来验证请求中的证书链,如果验证通过,则响应其请求。否则拒绝访问。

消息验证方式

客户端验证服务端消息

客户端通过IFAA根证书来验证服务端消息的证书链,并用具体业务证书验证消息签名的真伪。

服务端验证客户端消息的合法性

注册时: IFAA Server将客户端上传的消息和签名连同deviceid一起发到IFAA认证中心进行验证。IFAA认证中心 根据deviceid来索引到具体的设备公钥,并使用该公钥验证签名是否匹配。

校验时: IFAA Server根据注册时保存的用户公钥来验证用户校验结果的签名,如果验证通过则继续验证用户的 生物特征是否匹配。两步均验证通过后,则返回给应用服务器结果。否则返回失败,应用服务器应该信 任IFAA Server的验证结果,而不是客户端的验证结果。

IFAA Server 与 IFAA 认证中心之间的安全验证

IFAA Server 发往 IFAA 认证中心的消息必须经过自己的私钥签名,并附加上具体的证书链,消息到达 IFAA 认证中心后,IFAA 认证中心先使用附加的证书验证签名,再使用 IFAA 根证书验证该附加证书的 合法性。IFAA 认证中心回复给具体 IFAA Server 的消息将经过 IFAA 认证中心自己持有的私钥的签名。 并将证书附加签名上。以防止认证结果的伪造和篡改。

image-20241207154715533

生产阶段密钥置入

符合 IFAA 规范的设备在生产阶段需要写入一对验证机器身份的秘钥对。该秘钥对的公钥信息会通过生 产用 APP 发送到 IFAA 证书服务器。IFAA 中心验证服务器会在该产品的注册阶段使用该公钥信息来判 断该设备的合法性。

置入流程

  1. 产线生产用 APP 向生产 TA 发送设备秘钥对生成请求;
  2. 生产 TA 生成设备秘钥对;
  3. 生产 TA 将生成的秘钥对保存到设备的 RPMB 中;
  4. 生产 TA 将生成的秘钥对的公钥和设备的 ID 用私钥签名后发送到生产用 APP 中;
  5. 生产用 APP 将签名后的公钥和 ID 发送到 IFAA 证书服务器中;
  6. IFAA 证书服务器用收到的签名数据中的公钥验证该签名数据的完整性
  7. IFAA 证书服务器保存

image-20241207160219131

由于 RPMB 本身实现不并加密,且在部分 MTK 芯片上,REE 也可以读取 RPMB 中的内容。所以 约定,存入 RPMB 中的秘钥必须经过 TEE 的加密处理。

RPMB(Replay Protected Memory Block)读取流程:

1、 Host 向 eMMC (Embedded Multi Media Card)发起读 RPMB 的请求,同时生成一个 16 bytes 的随机数,发送给 eMMC。
2、 eMMC 将请求的数据从 RPMB 中读出,并使用 Secure Key 通过 HMAC SHA-256 算法,计算读取到的数据和接收到的随机数拼接到一起后的签名。然后,eMMC 将读取到的数据、接收到的随机数、计算得到的签名一并发送给 Host。
3、 Host 接收到 RPMB 的数据、随机数以及签名后,首先比较随机数是否与自己发送的一致,如果一致,再用同样的 Secure Key 通过 HMAC SHA-256 算法对数据和随机数组合到一起进行签名,如果签名与 eMMC 发送的签名是一致的,那么就可以确定该数据是从 RPMB 中读取到的正确数据,而不是攻击者伪造的数据。

安全等级

Level 1:不为每个设备单独生产独立密钥对,一个型号共用一个,并且密钥信息不是存储在RPMB,直接存放在TA

Level 2:不为每个设备单独生产独立密钥对,一个型号共用一个,密钥信息存储在RPMB

Level 3:每个设备独立密钥对,密钥存储在RPMB

Level 4:每个设备独立密钥对,密钥存储在SE

所有级别,都要求在生产阶段将设备的秘钥信息与设备 ID 上传到 IFAA 的中心验证服务器中

SOTER协议

介绍

腾讯生物认证开放平台——TENCENT SOTER-腾讯云开发者社区-腾讯云

客户端组件

GitHub - Tencent/soter: A secure and quick biometric authentication standard and platform in Android held by Tencent.


生物认证中的IFFA、SOTER、FIDO协议
https://chujian521.github.io/blog/2024/12/07/生物认证中的IFFA、SOTER、FIDO协议/
作者
Encounter
发布于
2024年12月7日
许可协议