身份认证之SOTER

最近晚上有空闲时间,分析了下腾讯Soter的原理和开源代码。

开源代码:https://github.com/Tencent/soter

三级密钥管理(采用的RSA2048密钥)

ATTK:设备根密钥,在设备出厂前在TEE中生成,公钥通过安全通道传输到腾讯TAM服务器,私钥存储在RPMB

ASK:App Secure Key,应用密钥,在应用启动时生成,每个应用生成一个

AuthKey:Authentication Key,业务密钥,应用内每个业务生成一对

主要流程解析

1、生成ASK

通过Android keystore机制,在TEE中生成ASK公私钥对,公钥结构体使用ATTK签名后导出并上传,私钥加密存储在文件系统中

2、生成AuthKey

与ASK流程基本上一致,在TEE内生成公私钥对,公钥结构体使用ASK签名后导出并上传,私钥加密存储在文件系统中,使用时需要认证生物特征进行授权

3、认证流程

应用通过用户指纹授权后,将请求的挑战因子(challenge)作为签名对象,通过keystore调用指定的AuthKey私钥进行签名,组装的JSON签名结果中包含了挑战因子、用户使用的手指(fid)、其他设备信息及签名值。其中,指纹验证的fid在TEE中自动读取并被组装到报文中,黑客是无法伪造。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值