在2015年10月推出了腾讯 SOTER解决方案,并且在2017年8月4日,腾讯SOTER解决方案宣布正式开源,git地址如下:github.com/Tencent/sot… 。微信使用的指纹锁、指纹支付,都是基于SOTER解决方案,微信推出的指纹方案一定能保证安全吗?这里通过逆向对微信指纹锁原理和安全性做一个简单分析。

1.微信指纹锁业务流程逻辑

通过对微信指纹锁的逆向分析之后得出微信指纹锁的业务流程图如下:

  • 微信指纹解锁业务流程图(开启指纹锁):

在开启指纹锁阶段会先校验是否已经存在系统指纹,若没有则需先录入系统指纹,否则需要用户输入密码进行身份认证,

身份认证通过后会将该系统指纹fid(每个指纹的识别码),发送给tee,并且存储在tee中,同时存入微信的本地数据库作为备份。
  • 微信指纹解锁业务流程图(校验指纹):

校验指纹阶段分为两个阶段的校验,由于直接调用系统接口获得的返回数据不可信,所以微信设计了本地二次校验。二次校验需要tee返回特定格式的内容,所以需要和不同厂商做适配,在开启指纹锁阶段微信将fid值同时存入了本地数据库和tee,在进行校验时若指纹匹配成功则返回之前存储的fid和用内置私钥签名后的指纹信息等,

指纹锁的本地二次校验主要是对fid进行二次校验,将tee返回的fid值和数据库中的fid值比较,若匹配则二次校验成功,否则匹配失败。

2.fid校验关键代码

其中关键点是fid的校验,下面从具体代码的角度来看看上面的fid比较逻辑:

微信验证fid的逻辑如下:

com.tencent.mm.plugin.walletlock.fingerprint.a.a:

Md函数参数即是从tee中返回的fid值,a.w函数从微信数据库中读取原始fid,当匹配成功后跳转到com.tencent.mm/.plugin.mall.ui.MallIndexUI,
日志信息如下:

如果匹配不成功则跳转到
com.tencent.mm/.plugin.wallet.pwd.ui.WalletLockCheckPwdUI
日志信息如下:

匹配不成功即跳转至重新输入密码的页面。

3.指纹锁安全性分析

微信指纹锁采用了本地二次校验的方式对android原始指纹认证接口进行了加强,由于二次校验中使用的fid对每个指纹而言都是固定值,

所以微信指纹锁存在被重放攻击的可能性,但是由于微信支付采用的是联网校验模式,即使进入微信钱包页面也无法使用微信支付,所以对微信支付安全影响比较小,总体而言安全性较高。

微信指纹支付总体流程和指纹锁类似,主要区别在于会联网将签名加密后的支付信息传给服务器做校验。

4.支付宝钱包指纹锁

钱包也打算上指纹锁,但是由于钱包支持离线支付,若参照微信的设计模式,存在被绕过而影响资金安全的可能性,不过相较于无指纹锁的情况对安全性有明显提高,解决方案可以在文案中告知用户“指纹锁也不是万能的之类”。

微信指纹锁原理及安全性分析相关推荐

  1. 【工控协议专题01】Modbus协议原理与安全性分析

    目录 O.术语 一.背景: 二.协议原理 三.传输方式 四.Modbus RTU 和Modbus ASCII有什么区别? 五.MODBUS TCP 注意点 六.功能码作用 七.Modbus 协议安全性 ...

  2. Satori指纹识别原理及dhcp分析

    Satori是被动识别中的一款独树一帜的软件,和ettercap等软件不同,它专门采用dhcp进行识别.本文通过对satori进行测试.读源码对其识别机制进行简单的分析,并在最后一部分对Satori开 ...

  3. 指纹锁的识别与原理及安全性

    你有仔细的观察过你的双手吗?张开你的双手你看到了什么呢?有没有看到你手上有着一些奇奇怪怪的纹路呢,这些纹路里的信息你有了解多少呢? 如果说有人和你长得相像可以理解,有人的身高和你一样可以理解,但是你一 ...

  4. php指纹登录原理,指纹锁的应用原理竟然是这样,你知道吗?

    指纹锁的应用原理竟然是这样,你知道吗? 说起指纹锁,想必大家都能有所了解,指纹锁应用于我们的生活中,我们也因为其具有的众多优势对其很是喜欢.而随着指纹锁的广泛应用也让很多朋友对指纹锁为何会有如此众多的 ...

  5. preparestatement中的反射原理_技术文章 |智能网联汽车激光雷达工作原理、性能比较与安全性分析...

    引用本文 武晓宇,张晓,王伟忠.智能网联汽车激光雷达工作原理.性能比较与安全性分析[J].信息安全与通信保密,2020(9):92-98. 摘要 近年来,激光雷达被用于导航领域,如机器人.无人机和智能 ...

  6. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  7. 魅族16spro锁回BL(Bootloader) 恢复微信指纹

    这里写自定义目录标题 起因 回锁 前期准备 回锁操作 起因 购买了一台二手魅族16spro,发现无法开通微信指纹支付,提示"系统错误". 客服说可能是解锁了bootloader导致 ...

  8. danlock锁_微信指纹密码锁下载最新版-微信指纹密码(Applock指纹)锁手机版app下载v2.51-单游网...

    微信指纹密码锁app是一款最新上线的手机指纹密码锁,操作简单,装扮精致,具有隐形模式锁定.隐藏保护图片和视频.防止密码屏幕卸载锁定等功能特色,帮助用户更好的进行隐私保护,更加轻松的与自己的私密好友畅聊 ...

  9. 智能网联汽车激光雷达工作原理、性能比较与安全性分析

    本文由武晓宇,张晓,王伟忠联合创作 摘要 近年来,激光雷达被用于导航领域,如机器人.无人机和智能车的自动驾驶(包括辅助驾驶等不同级别).市场上激光雷达的种类多样,测量原理和工作特性差异较大,通过对车载 ...

  10. 指纹锁的安全性及其未来发展

    在智能化的时代,人们的生活可以说无处不智能. 比如,智能电视.智能空调.智能窗帘.智能汽车.智能手机,等等,它们已与我们的生活逐渐变得密不可分. 所以,在这样的时代背景之下,智能门锁也逐渐随着智能家居 ...

最新文章

  1. GitHub:数据科学最全资料集合
  2. 常用HLS优化指令总结
  3. 重命名myclipse中web项目名称的过程
  4. 被吹的神乎其神的Python到底都能干什么
  5. 按用户设置计算机权限,巧妙设置用户权限 管理学生机房计算机
  6. Spring-AbstractRefreshableApplicationContext
  7. 刪除主表中不存在記錄的從表資料
  8. Excel:INDIRECT函数
  9. [转载]类名.this与类名.class_-Chaz-_新浪博客
  10. matlab逆变器原理,MATLAB中的单相全桥逆变器电路建模与仿真
  11. css版权备案等居于页面底部与超出不换行可滑动
  12. 一键使 WIN 10进入休眠、睡眠、关机的命令
  13. c语言上机题库程序设计,c语言上机程序设计题库及答案.pdf
  14. javascript获取本周、本月、本季度、本年时间
  15. 大胆预测一下《数据结构》期末机考题
  16. 编译原理 实验2 语法分析器的构造
  17. 羊皮卷的故事-第十五章-羊皮卷之八
  18. 《Python语言程序设计》王恺 王志 李涛 机械工业出版社 第2章 Python的基础语法 课后习题答案【强烈推荐】
  19. 国内十大免费网络相册
  20. 房产经纪人必备——房地产基础知识大全(建议收藏)

热门文章

  1. SCU 4487 king's trouble I
  2. 计算机无法创建新文件夹,使用win10系统时,发现无法新建文件夹怎么办,学会这招即可修复...
  3. 2068个开源的网站模板【免费下载】
  4. 基于FPGA板的音乐盒的设计
  5. EC20 和 Air724 4G模组连接OneNet平台笔记
  6. ANdroid的QQ分享接入,android 集成QQ互联 (登录,分享)
  7. python图像降采样,【图像处理】——改变图像的大小(降采样重采样)
  8. python 动态执行 内存变化_深入理解python数组的动态扩容机制以及摊销分析
  9. 小米手机解BL锁 刷开发版系统获取root权限
  10. 李沐动手学深度学习-kaggle实战:房价预测