昨天講了在硬體層面可以碰到的部分,以及如何跟韌體進行互動。今天從另一個角度來看,藍牙和無線通訊相關的部分是如何經過 parser 達到 firmware 裡面跟它進行溝通的
針對 無線訊號進入 firmware 中間的 parser 來說,Bluetooth 的協定堆疊分成 controller 與 host 兩半,中間以 HCI 溝通:
Host L2CAP / ATT / GATT / SMP / RFCOMM / SDP
↕ HCI
Controller Link Layer(BLE)/ LMP + Baseband(Classic)
↕
Radio
Wi-Fi 則依晶片架構分成兩種:
SoftMAC: Radio → Wi-Fi chip(PHY / 低階 MAC)→ host driver 解析 802.11 frame
FullMAC: Radio → Wi-Fi chip firmware 解析 802.11 frame → host 只收到資料封包
| 階段 | Bluetooth | Wi-Fi | 攻擊者需要 |
|---|---|---|---|
| 未連線 | Advertising、Link Layer 控制封包、LMP | Beacon / Probe Response 的 Information Element | 位於訊號範圍內 |
| 配對 / 認證中 | SMP、LMP pairing | Authentication、Association、EAPOL 4-way handshake | 能發起連線 |
| 連線 / 加密後 | L2CAP、ATT / GATT、RFCOMM | 加密的 data frame | 已配對或知道密碼 |
愈上面的列門檻愈低,漏洞的價值也愈高。實務上許多 IoT 裝置的 GATT 不需要配對就能讀寫,實際門檻往往比表格更低。