首页 > 其他分享 >GFPS技术原理(五)快速配对流程

GFPS技术原理(五)快速配对流程

时间:2024-11-16 13:17:44浏览次数:3  
标签:account passkey request 流程 GFPS Seeker key Provider 配对

这里快速配对流程分为两种情况:

初次做快速配对

Seeker Provider ①:打开配对模式 ②:监听provider广播 ③:write key-based pairing request ④ :key-based pairing response ⑤:改变双方IO Capability为Display Yes/No ⑥:进行Numeric配对 ⑦:write passkey characteristic request confirm passkey to yes or no ⑧:write passkey characteristic request confirm passkey "yes or no" ⑨:生成account key ⑩:write account key ⑪:notification account key characteristic ⑫:退回IO capablity原始设置 ⑬:继续进行SDP和A2DP,HFP Seeker Provider
  • ①:Provider打开配对模式,然后进行广播
  • ②: 如果Seeker发现自己感兴趣的广播,就会通过LE连接到Provider,Seeker会检查广播包的内容,发现没有account key filter,说明此设备还没有配对过。
  • ③:Seeker首先发起key-based pairing request,这个request会有16字节加密数据和64字节Seeker的公钥。Provider收到此write request,利用收到的公钥和自己的私钥,通过secp256r1 ECDH产生256 bits AES key,然后调用SHA-256得到256 bits哈希值,最后取前128 bit作为AES key,我们命名为K。
  • ④:Provider利用K去解析16字节加密数据,如果消息类型符合key-based pairing request数据格式,我们就认为此K有效,然后用K加密回复key-based pairing response,此response会包含6字节Provider的BR/EDR地址和9字节随机数salt,以便Seeker 发起BR连接。
  • ⑤:Seeker准备开启配对之前,双方的IO Capability如果不是Display Yes/No的话,都需要临时改成Display Yes/No,这样是为了防止中间人攻击。
  • ⑥:Seeker发起BR配对,配对方式是Numeric,双方会协商出6 digit也就是4字节的passkey。
  • ⑦:Seeker利用K加密发送passkey request给Provider,如果Provider校验正确,则回复yes。
  • ⑧:同理Provider利用K加密发送passkey request给Seeker,如果Seeker校验正确,也回复yes。
  • ⑨:上述步骤都正确的话,Seeker会产生account key,这里就是K。
  • ⑩: Seeker把account key通过写请求发给Provider。
  • ⑪:Provider收到account key会在本地更新保持,并发个通知给Seeker。
  • ⑫ 退回IO Capability到原始设置。
  • ⑬:Seeker和Provider继续进行SDP,A2DP或者HFP连接。

后续做快速配对

Seeker Provider ①:打开配对模式 ②:监听provider广播 ③:write key-based pairing request ④ :key-based pairing response ⑤:改变双方IO Capability为Display Yes/No ⑥:进行Numeric配对 ⑦:write passkey characteristic request confirm passkey to yes or no ⑧:write passkey characteristic request confirm passkey "yes or no" ⑨:生成account key ⑩:write account key ⑪:notification account key characteristic ⑫:退回IO capablity原始设置 ⑬:继续进行SDP和A2DP,HFP Seeker Provider
  • ①:Provider打开配对模式,然后进行广播
  • ②: 如果Seeker发现自己感兴趣的广播,就会通过LE连接到Provider,发现广播包包含又account key filter,然后Seeker就会从谷歌云获取此设备的account key,再做布隆过滤器判断是否为其中的一个account key作为AES key K尝试去加密报文。
  • ③:Seeker会用步骤2获取的account key加密数据发起key-based pairing request。
  • ④:Provider会尝试利用本地的account key一一去解析16字节加密数据,如果某个account key解析出来的消息类型符合key-based pairing request数据格式,我们就认为此K有效,然后用K加密回复key-based pairing response,此response会包含6字节Provider的BR/EDR地址和9字节随机数salt,以便Seeker 发起BR连接。
  • ⑤:Seeker准备开启配对之前,双方的IO Capability如果不是Display Yes/No的话,都需要临时改成Display Yes/No,这样是为了防止中间人攻击。
  • ⑥:Seeker发起BR配对,配对方式是Numeric,双方会协商出6 digit也就是4字节的passkey。
  • ⑦:Seeker利用K加密发送passkey request给Provider,如果Provider校验正确,则回复yes。
  • ⑧:同理Provider利用K加密发送passkey request给Seeker,如果Seeker校验正确,也回复yes。
  • ⑨:上述步骤都正确的话,Seeker会产生account key,这里就是K。
  • ⑩: Seeker把account key通过写请求发给Provider。
  • ⑪:Provider收到account key会在本地更新保持,并发个通知给Seeker。
  • ⑫ 退回IO Capability到原始设置。
  • ⑬:Seeker和Provider继续进行SDP,A2DP或者HFP连接。

标签:account,passkey,request,流程,GFPS,Seeker,key,Provider,配对
From: https://blog.csdn.net/Jzj1234555/article/details/143719998

相关文章

  • 【GraphRAG】本地部署全流程!超详细介绍!
    1、GraphRAG是什么?GraphRAG(Graph-basedRelation-AwareGrouping)是一种基于图的关系感知分组方法,通常用于计算机视觉和机器学习领域。它的核心思想是利用图结构来表示和处理实体之间的关系,从而更有效地进行分组和识别任务。2、本地部署在autodl上进行运行,4090单显卡+24GB内......
  • 解决ClassNotFoundException心得体会以及解决流程
    解决ClassNotFoundException心得体会以及解决流程问题出现原因:原因一:引入的依赖版本不对,导致依赖中没有该类原因二:该依赖除了被主动引入外,又包含在引入的其他依赖中,发生了依赖冲突,一般体现为依赖覆盖,本质上是因为导致原因一问题解决:解决原因一:github上查看不同的release......
  • Android Framework AMS(15)ContentProvider分析-2(getContentResolver及ContentResolver
    该系列文章总纲链接:专题总纲目录AndroidFramework总纲本章关键点总结&说明:说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。有了前面activity组件分析、service组件分析、广播组件分析、ContentProvider组件的基本流程分析、基于此......
  • 如何通过集成化平台优化企业业务流程,减少低效环节
    在企业管理中,优化业务流程是提升效率和减少成本的关键手段。低效的业务流程不仅会降低企业的整体生产力,还可能导致资源浪费、客户体验下降以及错失市场机会。本文将探讨企业业务流程中的常见低效环节、它们产生的原因,以及如何通过优化和现代化技术手段,尤其是集成化流程管理平台......
  • 基于Java+SpringBoot+Vue+HTML5课程设计选题管理(源码+LW+调试文档+讲解等)/课程设计/
    博主介绍......
  • 标题:Windows系统启动流程 二
      https://www.cnblogs.com/suv789/p/17499017.htmlBootmgr(BootManager)是WindowsVista及其后续版本(包括Windows7、Windows8、Windows8.1和Windows10)中的引导加载程序,取代了之前的NTLDR。Bootmgr的主要功能是管理计算机的引导过程,负责加载操作系统并将控制权转移给操作......
  • 在建筑装饰施工中,瓷砖铺设是非常重要的一环,特别是墙面和地面瓷砖的施工。为了确保质量
    在建筑装饰施工中,瓷砖铺设是非常重要的一环,特别是墙面和地面瓷砖的施工。为了确保质量与美观,瓷砖施工需要遵循一套明确的流程,且施工完毕后需要进行严格的验收。下面是瓷砖铺设的详细施工流程和验收流程:一、瓷砖施工流程1. 施工准备材料准备:包括瓷砖、瓷砖胶(粘合剂)、水泥砂浆......
  • View绘制流程;
    ......
  • 流程:IPD体系的核心及MM、RM和小IPD流程运作
    考虑到IPD体系涉及到公司战略、组织、决策、执行的各个方面,内容庞大复杂,细致严谨,学习周期较长;本文对IPD体系做一个简单的介绍,以期大家能迅速了解IPD的核心思想和做法。1、产品开发是一项投资决策   进行投资组合分析(成本与收益),设置检查点,决定是否继续、暂停、中止其过......
  • UML精髓:带你读懂14种核心类型与流程图的绝妙之处
    目录 一、 什么是UML二、UML图的类型(1)活动(流程)图(2)用例图(3)交互概览图(4)时序图(6)序列图(7)通信UML图(8)类图(9)对象图(10)组件图(11)组合结构图(12)部署图(13)包图(14)剖面图三、流程图大揭秘(1)流程图中最重要的符号汇总(2)那么多样式的箭头,到底都是什么意思?四、 总结......