「尋找」功能的安全性
Apple 裝置的「尋找」App 的建置基礎為先進的公用密鑰加密編譯技術。
概覽
「尋找」App 將「尋找我的 iPhone」和「尋找我的朋友」結合到一個 App 中(iOS、iPadOS 和 macOS)。「尋找」可協助使用者定位遺失的裝置(即使是處於離線的 Mac)。在線上的裝置可以直接透過 iCloud 向使用者報告其位置。「尋找」可從遺失裝置送出短距離藍牙訊號,以達到離線運作的目的,而附近正在使用的其他 Apple 裝置可以偵測到該訊號。然後,這些附近的裝置會將偵測到之遺失裝置的位置中繼傳送到 iCloud,以便使用者在「尋找」App 中找到它,同時保護所有相關使用者的隱私權和安全性。「尋找」甚至適用於處於離線和睡眠狀態的 Mac。
藉由使用藍牙和世界各地不計其數處於活躍使用狀態的 iOS、iPadOS 和 macOS 裝置,使用者可以定位他們遺失的裝置,即使沒有連接 Wi-Fi 或行動網路也可找到。在「尋找」中啟用「離線尋找」的任何 iOS、iPadOS 或 macOS 裝置,都能作為「尋找者裝置」使用。這表示裝置可以使用藍牙偵測其他遺失的離線裝置,然後使用其網路連線來向裝置擁有者回報約略位置。當裝置啟用離線尋找功能,就代表該裝置的位置也可被其他參與者以相同方式定位。整個互動是端對端加密、匿名,且設計要提高電池和資料效率。對電池壽命和行動數據方案使用的影響最小,並且使用者隱私得到更好的保護。
【注意】「尋找」可能未在所有國家或地區提供。
端對端加密
「尋找」的建置基礎為先進的公用密鑰加密編譯技術。當「尋找」設定中的離線尋找啟用時,會直接在裝置上產生用橢圓曲線(EC)P-224 專用加密密鑰組,其標註為 {d,P}(d 表示專用密鑰,P 則為公用密鑰)。此外,256 位元密碼 SK0 和計數器 i 會初始化為零。這組專用密鑰和該密碼絕不會傳送給 Apple,且會使用「iCloud 鑰匙圈」,只在使用者的其他裝置間以端對端加密方式同步。密碼和計數器用於透過下列遞迴建構來衍生目前的對稱密鑰 SKi:SKi = KDF(SKi-1, “update”)。
根據密鑰 SKi,兩個大整數 ui 和 vi 會透過 (ui,vi) = KDF(SKi, "diversify") 來計算。接下來會使用與兩個整數相關的離線關聯,衍生出以 d 表示的 P-224 專用密鑰和以 P 代表的對應的公用密鑰,以便計算出暫時性密鑰組:衍生的專用密鑰為 di,其中 di = ui * d + vi(以 P-224 曲線的順序為模型),而對應的公用密鑰部分為 Pi 且驗證 Pi = ui*P + vi*G。
當裝置遺失且無法連接 Wi-Fi 或行動網路時(例如將 MacBook Pro 遺落在公園長椅上時),裝置會於有限期間內,在藍牙承載資料中開始定期廣播衍生的公用密鑰 Pi。藉由使用 P-224,公用密鑰的表示資料可以容納在單一的藍牙承載單位中。這樣周圍的裝置便能將離線裝置的位置加密到公用密鑰來協助尋找該裝置。大約每隔 15 分鐘,系統就會使用計數器的增量值和上述的程序來以新的公用密鑰取代原有的,因此無法透過持久性識別碼來追蹤使用者。衍生機制的設計用意在於防止多個公用密鑰 Pi 連結至相同裝置。
讓使用者和裝置保持匿名狀態
除了確保完全加密位置資訊和其他資料,參與者的身分也會對彼此和 Apple 保密。在尋找者裝置傳送至 Apple 的資料中,內容或標頭均不含任何認證資訊,因此 Apple 無從得知尋找者是誰,也不知道誰的裝置被找到。此外,Apple 不會記錄可能揭露尋找者身分的資訊,也不會保留可能讓任何人建立尋找者和擁有者之間關聯的資訊。裝置擁有者只會收到加密位置資訊(在「尋找」App 中解密並顯示),不會顯示誰找到了裝置。