從ellisys空口分析藍牙耳機回連手機失敗案例

問題背景:

前兩天同事發現我們現在做的項目,耳機在跟某些特定類型安卓手機(尤其是比較新的手機)回連會失敗,然后我幫他分析了一些log,記錄如下:
回連失敗所做步驟如下:

  1. 手機和耳機進行正常的藍牙配對連接,手機藍牙界面能看到配對連接成功的設備。
  2. 耳機入盒,手機和耳機斷開藍牙連接,手機藍牙界面看到設備斷開。
  3. 耳機出盒發起回連,發現手機最終會把耳機在藍牙界面刪除,并且報“authentication failure”錯誤。

我讓同事幫忙抓了一份ellisys空口,打開分析一下發生了什么:

問題分析:

手機主動發起連接配對:

在這里插入圖片描述
如上圖所示:

  • 手機會主動發起paging (ID packet),此時手機作為主設備會設置FHS。
  • 手機和耳機分別進行:
    LMP Version Exchange (Central: 5.4 ? Peripheral: 5.4) ,
    LMP Features Exchange (45 Features ? 45 Features),
    LMP Extended Features Exchange (SSP Host, LE Host, SC Host ? SSP Host, LE Host, SC Host),
    LMP Extended Features Exchange (SC Controller, Ping ? SC Controller, Ping),
    注意此時手機和耳機都是支持SC(Secure Connection)的。
  • 接著就會建立LMP連接:LMP Host Connection (Accepted),LMP Setup Complete

在這里插入圖片描述
如上圖,接下來會交互:

  • 手機會enable AFH:
    LMP Set AFH (Ch=43, 0x0F5E33A, as CLK[27-0]: 0x1EBC674, AFH enabled)
    LMP Channel Classification Request (AFH Reporting Enabled)
  • 手機獲取耳機時鐘精度:LMP Timing Accuracy Transaction (250 ppm, Jitter=0 us)
  • 耳機告訴手機最大傳輸slot 為5:LMP Max Slot (5 slots = 3.125 ms)
  • 手機設置包類型:LMP Packet Type Table (2/3Mbps ? Accepted)
  • 手機告訴耳機最大傳輸slot為5:LMP Max Slot (5 slots = 3.125 ms)
  • 手機設置傳輸速率:
    LMP Preferred Rate (BR=No FEC, Size=Use 5-slot packets, EDR=Use 2 Mbps packets, Size=Use 1-slot packets)。
    LMP Preferred Rate (BR=FEC, Size=Use 1-slot packets, EDR=Use 2 Mbps packets, Size=Use 5-slot packets)
  • 手機設置鏈路超時時間為5s:LMP Supervision Timeout (8’000 slots = 5.000 s (5.000 s))
  • 耳機獲取手機的時鐘精度:
    LMP Timing Accuracy Request
    LMP Timing Accuracy Response (45 ppm, Jitter=0 us)

在這里插入圖片描述
如上圖所示,接下來會進行:

  • 手機和耳機進行IO Capability交互:
    LMP IO Capability Request (DisplayYesNo, No OOB Authentication, MITM Protection Required – Dedicated Bonding)
  • 手機和耳機的公鑰交互:LMP Encapsulated P-256 Public Key
  • 手機和耳機第一階段相互隨機數驗證:LMP Simple Pairing Confirmation (A6 23 E8 6E C3 7B CD C3 7A EE 04 47 CF E5 94 6E)
  • 手機和耳機相互DHKEY Check:LMP DH Key Check (91 7F 69 33 47 CA 76 3E B3 69 74 B4 8E 70 8F 1E)
  • 手機和耳機進行第二階段的隨機數校驗:LMP Secure Authentication Transaction (0x0A67C2A9)
  • 手機請求進入加密模式:LMP Encryption Mode Request (Encryption)
  • 手機發起加密:LMP Start Encryption Request (ED 52 7E 99 B2 28 C8 87 27 85 B4 99 68 84 ED 4C)

在這里插入圖片描述
如上圖,接下來會進行:

  • SMP OVER BREDR:通過CTKD方式生成LE連接的
    LTK SMP Pairing Feature Exchange (Display Only, No Bonding ? Display Only, Bonding, SC)。
    SMP Transport Specific Key Distribution
  • 進行SDP查詢。
  • 各種Profile的建立,比如A2DP, HFP等等。

耳機關盒斷開連接

在這里插入圖片描述
如上圖,耳機會發送一個LMP Detach (Remote User Terminated Connection)來告訴手機鏈路斷開。

耳機發起回連

在這里插入圖片描述
如上圖,耳機發起回連,這個時候耳機會主動發起Paging ID,并且耳機發起FHS決定時鐘。注意紅色框里面耳機發起的LMP Extended Features Request (SSP Host, LE Host) ,和手機回復的:LMP Extended Features Response (SSP Host, LE Host, SC Host)。這里耳機請求里SC Host不見了。
在這里插入圖片描述
如上圖,接下來手機主動發起:LMP Extended Features Request (SSP Host, LE Host, SC Host),然而耳機依舊回復:LMP Extended Features Response (SSP Host, LE Host)。至此手機跟耳機無法達成一致的加密方法,手機只能主動斷開連接:LMP Detach (Authentication Failure)。

至此整個問題的分析結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/80172.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/80172.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/80172.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

教育+AI:個性化學習能否顛覆傳統課堂?

近年來,人工智能(AI)技術迅猛發展,逐漸滲透到各行各業,教育領域也不例外。從智能輔導系統到自適應學習平臺,AI正在改變傳統的教學模式,使個性化學習成為可能。然而,這種變革能否真正…

【C++設計模式之Strategy策略模式】

C設計模式之Strategy策略模式 模式定義核心思想動機(Motivation)結構(Structure)實現步驟1. 定義策略接口(基于繼承)2.實現具體策略3.上下文類(Context)4. 在main中調用 應用場景(基于繼承)1.定義策略接口2.實現具體策略3.上下文類…

Python企業級MySQL數據庫開發實戰指南

簡介 Python與MySQL的完美結合是現代Web應用和數據分析系統的基石,能夠創建高效穩定的企業級數據庫解決方案。本文將從零開始,全面介紹如何使用Python連接MySQL數據庫,設計健壯的表結構,實現CRUD操作,并掌握連接池管理、事務處理、批量操作和防止SQL注入等企業級開發核心…

matlab轉python

1 matlab2python開源程序 https://blog.csdn.net/qq_43426078/article/details/123384265 2 網址 轉換網址:https://app.codeconvert.ai/code-converter?inputLangMatlab&outputLangPython 文件比較網址:https://www.diffchecker.com/text-comp…

Vue 3 中編譯時和運行時的概念區別

文章目錄 前言Vue 3 中的編譯時 vs 運行時區別模板在編譯時轉化為渲染函數編譯時的優化處理運行時的工作:創建組件實例與渲染流程前言 詳細整理 Vue 3 中編譯時和運行時的概念區別,并重點解釋為什么組件實例是在運行時創建的。 我會結合官方文檔、源碼分析和社區解釋,確保內…

Spring 框架實戰:如何實現高效的依賴注入,優化項目結構?

Spring 框架實戰:如何實現高效的依賴注入,優化項目結構? 在當今的 Java 開發領域,Spring 框架占據著舉足輕重的地位。而依賴注入作為 Spring 的核心概念之一,對于構建高效、靈活且易于維護的項目結構有著關鍵作用。本…

創建虛擬服務時實現持久連接。

在調度器中配置虛擬服務,實現持久性連接,解決會話保持問題。 -p 【timeout】 -p 300 這5分鐘之內調度器會把來自同一個客戶端的請求轉發到同一個后端服務器。【不管使用的調度算法是什么。】【稱為持久性連接。】 作用:將客戶端一段時間…

說下RabbitMQ的整體架構

RabbitMQ 是一個基于 AMQP(Advanced Message Queuing Protocol) 協議的開源消息中間件,RabbitMQ的整體架構圍繞消息的生產、路由、存儲和消費設計,旨在實現高效、可靠的消息傳遞,它由多個核心組件協同工作。 核心組件 …

STM32--GPIO

教程 視頻 博主教程 STM32系統結構圖 GPIO GPIO(General Purpose Input/Output)是STM32內部的一種外設。 一個STM32芯片內存在多個GPIO外設,每個GPIO外設有16個引腳; 比如GPIOA:PA0~PA15; GPIOB:PB0~…

QUIC協議優化:HTTP_3環境下的超高速異步抓取方案

摘要 隨著 QUIC 和 HTTP/3 的普及,基于 UDP 的連接復用與內置加密帶來了遠超 HTTP/2 的性能提升,可顯著降低連接握手與擁塞恢復的開銷。本文以爬取知乎熱榜數據為目標,提出一種基于 HTTPX aioquic 的異步抓取方案,并結合代理 IP設…

[論文閱讀]MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System

MCP Guardian: A Security-First Layer for Safeguarding MCP-Based AI System http://arxiv.org/abs/2504.12757 推出了 MCP Guardian,這是一個框架,通過身份驗證、速率限制、日志記錄、跟蹤和 Web 應用程序防火墻 (WAF) 掃描來…

Redis客戶端緩存的4種實現方式

Redis作為當今最流行的內存數據庫和緩存系統,被廣泛應用于各類應用場景。然而,即使Redis本身性能卓越,在高并發場景下,應用與Redis服務器之間的網絡通信仍可能成為性能瓶頸。 這時,客戶端緩存技術便顯得尤為重要。 客…

eNSP中路由器OSPF協議配置完整實驗和命令解釋

本實驗使用三臺華為路由器(R1、R2和R3)相連,配置OSPF協議實現網絡互通。拓撲結構如下: 實驗IP規劃 R1: GE0/0/0: 192.168.12.1/24 (Area 0)Loopback0: 1.1.1.1/32 (Area 0) R2: GE0/0/0: 192.168.12.2/24 (Area 0)GE0/0/1: 192.…

內網滲透——紅日靶場三

目錄 一、前期準備 二、外網探測 1.使用nmap進行掃描 2.網站信息收集 3.漏洞復現(CVE-2021-23132) 4.disable_function繞過 5.反彈shell(也,并不是) 6.SSH登錄 7.權限提升(臟牛漏洞) 8.信息收集 9.上線msf 三…

解決Win11下MySQL服務無法開機自啟動問題

問題描述 在win11系統中,明明將MySQL服務設置成了自動啟動,但在重啟電腦后MySQL服務還是無法自動啟動,每次都要重新到計算機管理的服務中找到服務再手動啟動。 解決方式 首先確保mysql服務的啟動類型為自動。 設置方法:找到此電…

后端項目進度匯報

項目概述 本項目致力于構建一個先進的智能任務自動化平臺。其核心技術是一套由大型語言模型(LLM)驅動的后端系統。該系統能夠模擬一個多角色協作的團隊,通過一系列精心設計或動態生成的處理階段,來高效完成各種復雜任務&#xff…

深度學習中學習率調整:提升食物圖像分類模型性能的關鍵實踐

深度學習中學習率調整:提升食物圖像分類模型性能的關鍵實踐 接上篇保存最優模型,在深度學習模型訓練過程中,學習率作為核心超參數,其設置直接影響模型的收斂速度與最終性能。本文將結合食物圖像分類項目,深入探討學習…

Vue 3零基礎入門:從環境搭建到第一個組件

Vue 3零基礎入門:從環境搭建到第一個組件 一、Vue 3簡介 Vue.js是一款漸進式JavaScript框架,用于構建用戶界面。Vue 3是Vue的最新主要版本,于2020年9月發布,帶來了許多改進和新特性: 更快的渲染速度更小的包體積Com…

為了結合后端而學習前端的學習日志(1)——純CSS靜態卡片案例

前端設計專欄 使用純CSS創建簡潔名片卡片的學習實踐 在這篇技術博客中,我將分享我的前端學習過程,如何使用純HTML和CSS創建一個簡潔美觀的名片式卡片,就像我博客首頁展示的那樣。這種卡片設計非常適合作為個人簡介、產品展示或團隊成員介紹…

k8s監控方案實踐(一):部署Prometheus與Node Exporter

k8s監控方案實踐(一):部署Prometheus與Node Exporter 文章目錄 k8s監控方案實踐(一):部署Prometheus與Node Exporter一、Prometheus簡介二、PrometheusNode Exporter實戰部署1. 創建Namespace(p…