---
# System prepended metadata

title: 'Trust in Apple’s secret garden: Exploring & Reversing Apple’s Continuity Protocol / es'
tags: [HITCONCMT, HITCON, HITCONCMT2019]

---

Trust in Apple’s secret garden: Exploring & Reversing Apple’s Continuity Protocol / es
===

- Speaker: es Ta-Lun Yen



## 逆向 Apple Continuity Protocol 的流程
非常有鼓勵性的故事。

。動機
    Apple 只會公開哪裡有問題，然後它們修好了，不會告知是什麼問題。
    
    想讓Apple更好。
    不是Bug Bounty，也沒有Bug Bounty
    Apple 歡迎第三方。
    
。Continuity
    熱點、傳檔案、付錢、手錶解鎖電腦…
    但在灌在藍芽就廢掉了…
    它其實有用iCloud科技
    使用iMesage加密
    可以PUSH 你的裝置
    每個裝置都有Device token
    iMessage 沒開源，但有人逆
    號稱有點對點加密，但是其實並不是這樣。
    
    傳訊傳給陌生人的話，會先去iCloud查電話找PulbicKey，然後再傳PublicKey。
    
    
    註冊機制會產生RSA/ECDSA Key    
    RSA用來加密，ECDSA用來簽章。
    
    Private Key 不會離開裝置，但可以在裝裡找取得。
    
    全部黏起來之後，加上簽章


。Celluar Call Relay
    APNs(Apple Push Notification Service)

進階方式可以透過 API 其他裝置，可以幫亂忙靜音。
    -皆已修復





。AirDrop
BLE & AWDL (Apple Wireless Direct Link)
    - WiFI 點對點技術 

Bootstrapping using BLE
     
參考：https://owlink.org/

。Continuity Stack
    

- MAC
- TypeID
- 
only on channal 37

tyoe 0x0e
battery 5e(94%)

privacy leak
device fingerprinting
type ID(為了辨識裝置的功能)
    device type
    OS version
        apple watch
        


Ubertooth-btle faux slave mode

Continuity Protocol
摸黑猜

- UUID
每次連線都會綁定一組uuid
如果連線過了就不會再get Key
 
iMessage key lose
重開治百病。




它自己簽章，但不會讓掉。
修正方式：收到訊息時收到Hash，沒有收過的話，把它加進清單中。

但如果傳入髒東西，然後清單可能就會被整個刪掉，所以有機會整個Crash。

API：SecMPVerifyAndExposeMessage
依賴Security Transforms


Keychain 可以撈到token，所以加密完的內容都是有機會可以，但後續由於內容可以解出來。
`\x1f\x8b` => Gz 的 Header
bplist00 >> Apple Binary Plist


實作參考資料：
Apple Continuity Re-Implementation
https://github.com/evanslify/continuity



### 感想

用裝置時的時候，並不會考慮安全性。
破掉水桶可能隨時都會，

閉源，不能公開去嘗試這個問題。
broadcast 可能還有很多可以改進的部份，
後續會公開加解密的部份。



###### tags: `HITCONCMT2019`,`HITCONCMT`,`HITCON`