TENCENT SOTER是腾讯于2015年开始制定的生物认证平台与标准。已在微信指纹支付、微信公众号指纹授权接口等场景使用。具有安全、易用、可在敏感业务使用、保护用户生物隐私、保护接入方商业隐私等特性。所有关键数据存储与操作依赖TEE,设备出厂前生成根密钥,保证“无授权,不签名”;前端sdk轻量,后台无须集成sdk,接入成本低;可在不获取用户指纹图案前提下区分同设备不同用户;验证无须请求到中心服务,保护敏感商业数据。该平台在主流安卓平台手机中可用,超过30家合作厂商已接入,数亿设备支持。
开源地址:https://github.com/Tencent/soter
一、技术原理
1. 三级密钥体系
TENCENT SOTER采用设备根密钥(ATTK)→ 应用密钥(ASK)→ 业务密钥(AuthKey)的三级架构,形成严格的信任链:
设备根密钥(ATTK)
由厂商在设备出厂时通过安全产线烧入TEE,私钥永久存储于TEE的安全存储区域(如RPMB),公钥通过双向HTTPS接口上传至腾讯TAM(Trusted ATTK Management)服务器。ATTK是整个信任链的根,用于验证设备合法性。
应用密钥(ASK)
由ATTK私钥在TEE内派生,每个应用仅生成一对。ASK私钥存储于TEE,公钥需通过ATTK签名后上传至应用服务器。应用服务器需将签名信息提交至TAM服务器验证,确保ASK的真实性。
业务密钥(AuthKey)
由ASK私钥在TEE内派生,用于具体业务操作(如支付、登录)。AuthKey私钥同样存储于TEE,公钥通过ASK签名后上传至应用服务器。应用服务器直接使用ASK公钥验证AuthKey签名,无需再与TAM交互。
2. 生物认证与签名流程
以微信支付为例,认证流程如下:
1)随机串生成:微信客户端生成随机串A,传输至TEE。
2)指纹验证:指纹传感器将用户指纹数据传入TEE,与预存模板比对。
3)签名操作:若指纹匹配,TEE内的AuthKey私钥对随机串A进行签名,生成签名结果(A+签名)。
4)验签与授权:签名结果发送至应用服务器,使用AuthKey公钥验证。验证通过后,服务器通知银行扣款。
3. 安全机制
TEE隔离:所有敏感操作(密钥生成、指纹验证、签名)均在TEE内完成,外部无法篡改或窃取数据。即使设备被Root,TEE的安全区域仍不可突破。
防篡改设计:签名结果若被篡改,验签时将失败,确保数据完整性。
隐私保护:指纹数据仅在TEE内处理,不传输至外部,避免泄露。
二、技术架构
1. 客户端架构
TEE层
包含可信应用(TA),负责密钥生成、生物识别验证和签名操作。TA通过厂商定制的安全接口与硬件交互,确保操作在安全环境中执行。
SDK层
提供soter-core(核心接口)和soter-wrapper(流程封装),简化开发者接入。SDK处理设备兼容性问题,屏蔽底层差异,如适配Android 6.0的FingerprintManager和KeyStore接口。
应用层
第三方应用通过调用SDK接口发起生物认证请求,接收验证结果并进行业务逻辑处理。
2. 服务器端架构
TAM服务器
存储所有设备的ATTK公钥,负责验证ASK公钥的签名,确保设备合法性。TAM服务器仅在应用首次注册时参与交互。
应用服务器
存储ASK和AuthKey的公钥,验证业务签名结果。服务器端无需集成SDK,通过标准接口与客户端通信。
3. 与Android系统的集成
接口适配:兼容Android原生指纹接口(FingerprintManager)和密钥管理(KeyStore),同时针对Android的不安全场景(如Root、应用篡改)进行加固。
厂商合作:与华为、荣耀等主流厂商深度合作,确保TEE和指纹传感器符合SOTER标准,覆盖超过7.5亿台设备。
三、核心技术优势
1. 安全与效率平衡
所有关键操作在TEE内完成,确保安全性;生物识别验证耗时<1秒,满足高并发场景需求。
2. 低接入成本
开发者通过几行代码即可集成,无需深入安全域。SDK已适配主流厂商设备,减少兼容性问题。
3. 灵活扩展
支持指纹、人脸等多种生物识别方式,未来可扩展至跨设备认证(如手机与智能手表联动)。
四、应用场景
1.移动支付
在微信支付等场景中应用,用户通过指纹、面部等生物识别方式进行支付,无需输入密码,提高支付的安全性和便捷性。例如,用户在购物付款时,只需按一下指纹或扫一下脸,就能快速完成支付。
2.账号登录
实现生物识别登录,替代传统的账号密码登录方式。用户可以通过指纹或面部识别快速登录应用程序或网站,无需记忆繁琐的账号和密码,还能防止账号被盗用。像微众银行安卓版App就引入了TENCENT SOTER的指纹识别技术,将传统的手势解锁更新为指纹识别登录。
3.企业办公
在企业内部,可用于员工考勤、权限管理等。比如腾讯内部的员工考勤系统中,通过SOTER进行身份验证,提高了工作效率,减少了因密码遗忘或被盗而导致的安全隐患。在流程审批、工资查询等场景中,也能通过生物识别简化流程,优化办公效率。
4.公众号与小程序
公众号应用可通过调用jsapi接口直接进行生物识别可信验证。例如,在一些需要用户授权登录或进行敏感操作的公众号中,用户可以使用指纹等生物识别方式进行快速验证,提升用户体验和安全性。
5.其他场景
还可作为正常密码鉴权的补充,替代传统短信验证码,降低短信成本,同时提高用户体验。未来随着技术发展,可能会引入更多生物识别技术,并被整合到更广泛的设备和应用中,实现跨平台和跨设备的无缝生物识别安全体验。