支付宝和微信所采用的指纹识别支付在原理上有所不同。
首先是支付宝,当用户录入指纹数据是,支付宝会将指纹数据全部加密储存在本地设备中的TEE安全区域,这里的重点是,支付宝不会将指纹数据信息上传至服务器或云端。
这里的TEE安全区域是一个完全与主操作系统互相隔离的环境,简单地说就是一个独立加密的“盒子”,它有自己的OS操作系统,与Android系统相互隔离,理论上数据是不太可能被读取走的。
而微信的工作原理与支付宝有明显区别。微信的指纹认证方案是基于Android 6.0接口和Key master,安全性也相当高。
指纹模块工作时,采用SOTER原理。SOTER的工作原理是使用签名、验签机制,基于RSA-2048非对称算法的密钥链签名、验签。
简单地说就是,支付流程开始时,微信后台会首先下发一个随机串,并由客户端给到TEE等待用户指纹授权签名。
用户使用指纹授权并成功之后,将签名串导出,发送到微信后台进行验签,验签通过之后即支付成功。整个过程微信接触不到指纹信息。