蘋果「尋找我的iPhone」
功能背後的密碼學
2020-4-9 by 高田鑑識
最近在國外鑑識論壇上有業界同仁提問一個狀況,緝毒組的警員執行了一個逮捕行動,過程中保存了數隻行動裝置與相關物證,在將證據移送到秘密地點保存之前,警員皆有依照 SOP 程序將 Android 與 iOS 裝置的「飛航模式」啟用。但在行動執行完不久,警員接獲另一位尚在犯罪組織內的臥底說明證據保存地點,已透過「尋找我的iPhone」功能被定位得知,請警員們立刻將證物移轉到其他地點,並將行動裝置關機或遮蔽。
在啟用「飛航模式」情況之下,為什麼 iOS 裝置在沒有任何的上網連線還可透過「尋找我的iPhone」找到裝置位置?
去年有針對如何保存查扣的 iOS 裝置文章(iPhone資料保存與提取步驟分析),因為 AFU (After First Unlock) 狀態的裝置,可在未取得螢幕鎖密碼的情況下提取出部分重要的數位證據,因此建議保存的方式是保持開機狀態。但在保存過程有一個很重要的動作,除了開啟飛航模式之外,還必須確認 Wi-Fi 與藍芽是否皆為關閉狀態。尤其在 iOS 13 更新後,開啟「飛航模式 – Airplane Mode」時,僅會關閉無線電訊號(4G、3G 與 Wi-Fi),藍芽則不會關閉。除非在「飛航模式」下特別去關閉藍牙,裝置會記得這項設定,並在下次啟用「飛航模式」時,藍芽才也會是關閉狀態。Apple 的官方說明請參考:在 iPhone、iPad、iPod touch 和 Apple Watch 上使用「飛航模式」。
新的離線「尋找我的iPhone」功能
在新的 iOS 13 中,「尋找我的iPhone」功能藉由藍牙來協助沒有 LTE 或 Wi-Fi 的裝置取得定位。該功能不僅只支援 iPhone 或 iPad,MacBook, Apple Watch 與 AirPods 皆可透過這個功能定位出遺失的裝置。唯一要確認的是藍芽功能不可以關閉,需保持在開啟的狀態。當時在 iOS 13 測試階段時,就有國外的網友透過該功能在 LAX 機場找到遺失的 iPad。Reddit 文章連接如下:[連接]。
圖一、啟用離線尋找
是否有隱私的問題?
蘋果公司為了確保用戶的隱私並避免讓該功能被其他有心人是濫用,特別說明了新的匿名加密的「尋找我的iPhone」機制,即便蘋果公司也無法得知遺失的裝置位置在哪。
離線版「尋找我的iPhone」採用了非對稱密碼學與 hash 函數機制,每個 Apple 裝置固定會透過藍芽廣播一個公鑰,而附近其他 Apple 裝置若接受到藍芽訊息,會使用該公鑰來加密和上傳當下的地理位置資訊至 Apple 雲端主機。比較特別的是,公鑰會隨著時間會不斷的更新,即使有人持續側錄藍芽廣播訊息,也無法將公鑰對應至特定裝置。另外,需擁有至少兩部 Apple 裝置才可使用該功能,因為用於解開公鑰加密內容的私鑰,會透過 iCloud 同步於使用者所有的 Apple 裝置上;有了私鑰,才有辦法從雲端取得這些加密的定位資訊並解開。
加密與匿名保護說明
以下為離線「尋找我的iPhone」每一個階段詳細說明
- 當您首次在 Apple 裝置上設定「尋找我的iPhone」時,Apple 會確認您至少需要兩台裝置才能使用此功能。啟用後會產生一組私鑰,並透過點對點的加密通訊方式同步在所有同一個 iCloud 帳號下的 Apple 裝置。
- 每個裝置還會產生一個公鑰,該公鑰則會透過藍牙 beacon 協議廣播給附近的 Apple 裝置。此公鑰用於加密資料,只有擁有相對應的私鑰才可以解開。
- 比較特別的是該公鑰會定期更新。多虧了一些數學上的魔術,新公鑰與舊公鑰並無任何關聯,但是裝置上的私鑰能然可以解開由新公鑰加密資訊。蘋果並沒有揭露公鑰更新的頻率與機制。
- 假設有人偷了您的 MacBook 並處於待機狀態。即使 MacBook 沒有網路連線,它也會透過藍牙不定時廣播公鑰。若附近有一台 iPhone 經過,兩個裝置在沒有任何互動的情況下,iPhone 接收到了該廣播資訊,會先確認該 iPhone 自身位置,並使用從 MacBook 廣播的公鑰對該位置資訊進行加密。公鑰本身不包含任何可被識別的資訊,既無法對應到任何一個人。
- 陌生人的 iPhone 會將兩個資訊上傳到 Apple 伺服器:使用公鑰加密的位置資訊,以及 MacBook 公鑰的 hash 值(該值將會用於對應到用戶的裝置)。 另外重要的是,由於 Apple 沒有私鑰,因此無法解開該位置資訊。
- 當您要搜尋被盜的 MacBook 時,需透過第二台 Apple 裝置(例如 iPad),因為 iPad 擁有與 MacBook 相同的私鑰,也會透過相同機制持續更新公鑰。 當您透過「尋找 」APP 搜尋時,iPad 會將當下的公鑰 hash 值上傳到 Apple 作為識別,以便 Apple 搜尋數千萬個儲存於雲端的加密位置資訊。 其中需注意的是,iPad 的公鑰 hash 值與您被盜 MacBook 的 hash 值可能不同,因為當陌生人的 iPhone 經過 MacBook 時,公鑰可能已更新了很多次。 蘋果並沒有完全解釋這個機制是如何運作。 但有可能是 iPad 可以上傳以前所有的公鑰 hash 值,以便用於識別,並對應出 MacBook 被發現時的位置。
- Apple 將 MacBook 加密位置回傳到 iPad,iPad 可以使用其私鑰對其解密,即可得到 MacBook 最後一個已知位置。另外,Apple 是無法解開加密位置資訊,而且由於 hash 函數的設計為不可逆的,因此也無法使用公鑰的 hash 值來收集有關設備所在位置的任何資訊。
延伸產品
2020 年第三季蘋果預計推出一個使用同樣技術的產品「AirTag」,這個追蹤器可以透過「尋找」APP ,隨時定位追蹤器的位置,就像「尋找我的 iPhone」一樣。AirTag 將搭載 U1 晶片,並採用「UWB」的超寬頻技術(Ultra-Wide Band),現有採用該晶片的裝置只有 iPhone 11 系列手機。未來定位機制一樣是透過其他 iPhone、iPad 或 Mac 發送加密位置資訊與公鑰 hash 值,來尋找追蹤器的位置。
圖二、AirTag
總結
以上整個過程極其複雜,但仍然是新的離線「尋找我的iPhone」協議的簡化說明版本。可以知道的是,蘋果公司為了在隱私保護與裝置安全性上取得平衡,的確投入很高的資源與人力來保障用戶權益。
而對於執法界的第一線同仁,了解新的技術原理對於查扣的裝置也可以有更正確的保存方式。