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`