生物认证中的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 认证中心自己持有的私钥的签名。 并将证书附加签名上。以防止认证结果的伪造和篡改。
生产阶段密钥置入
符合 IFAA 规范的设备在生产阶段需要写入一对验证机器身份的秘钥对。该秘钥对的公钥信息会通过生 产用 APP 发送到 IFAA 证书服务器。IFAA 中心验证服务器会在该产品的注册阶段使用该公钥信息来判 断该设备的合法性。
置入流程
- 产线生产用 APP 向生产 TA 发送设备秘钥对生成请求;
- 生产 TA 生成设备秘钥对;
- 生产 TA 将生成的秘钥对保存到设备的 RPMB 中;
- 生产 TA 将生成的秘钥对的公钥和设备的 ID 用私钥签名后发送到生产用 APP 中;
- 生产用 APP 将签名后的公钥和 ID 发送到 IFAA 证书服务器中;
- IFAA 证书服务器用收到的签名数据中的公钥验证该签名数据的完整性
- IFAA 证书服务器保存
由于 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-腾讯云开发者社区-腾讯云