蘋果「尋找我的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」每一個階段詳細說明

  1. 當您首次在 Apple 裝置上設定「尋找我的iPhone」時,Apple 會確認您至少需要兩台裝置才能使用此功能。啟用後會產生一組私鑰,並透過點對點的加密通訊方式同步在所有同一個 iCloud 帳號下的 Apple 裝置。
  2. 每個裝置還會產生一個公鑰,該公鑰則會透過藍牙 beacon 協議廣播給附近的 Apple 裝置。此公鑰用於加密資料,只有擁有相對應的私鑰才可以解開。
  3. 比較特別的是該公鑰會定期更新。多虧了一些數學上的魔術,新公鑰與舊公鑰並無任何關聯,但是裝置上的私鑰能然可以解開由新公鑰加密資訊。蘋果並沒有揭露公鑰更新的頻率與機制。
  4. 假設有人偷了您的 MacBook 並處於待機狀態。即使 MacBook 沒有網路連線,它也會透過藍牙不定時廣播公鑰。若附近有一台 iPhone 經過,兩個裝置在沒有任何互動的情況下,iPhone 接收到了該廣播資訊,會先確認該 iPhone 自身位置,並使用從 MacBook 廣播的公鑰對該位置資訊進行加密。公鑰本身不包含任何可被識別的資訊,既無法對應到任何一個人。
  5. 陌生人的 iPhone 會將兩個資訊上傳到 Apple 伺服器:使用公鑰加密的位置資訊,以及 MacBook 公鑰的 hash 值(該值將會用於對應到用戶的裝置)。 另外重要的是,由於 Apple 沒有私鑰,因此無法解開該位置資訊。
  6. 當您要搜尋被盜的 MacBook 時,需透過第二台 Apple 裝置(例如 iPad),因為 iPad 擁有與 MacBook 相同的私鑰,也會透過相同機制持續更新公鑰。 當您透過「尋找 」APP 搜尋時,iPad 會將當下的公鑰 hash 值上傳到 Apple 作為識別,以便 Apple 搜尋數千萬個儲存於雲端的加密位置資訊。 其中需注意的是,iPad 的公鑰 hash 值與您被盜 MacBook 的 hash 值可能不同,因為當陌生人的 iPhone 經過 MacBook 時,公鑰可能已更新了很多次。 蘋果並沒有完全解釋這個機制是如何運作。 但有可能是 iPad 可以上傳以前所有的公鑰 hash 值,以便用於識別,並對應出 MacBook 被發現時的位置。
  7. 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」協議的簡化說明版本。可以知道的是,蘋果公司為了在隱私保護與裝置安全性上取得平衡,的確投入很高的資源與人力來保障用戶權益。

而對於執法界的第一線同仁,了解新的技術原理對於查扣的裝置也可以有更正確的保存方式。