
透過衛星通訊傳送緊急資訊
使用 iPhone 14 或後續機型的使用者,可以透過衛星連線進行通訊以提供多種服務。由於衛星連線的頻寬限制相當嚴格,因此需要使用頻寬負擔極低的安全通訊協定。不論通訊類型為「SOS 緊急服務」、SMS 或 iMessage,Apple 都會在離網裝置與 Apple 資料中心之間建立一個安全作業階段。為了在離網狀態下降低頻寬使用量,裝置會先透過行動網路或 Wi-Fi,向伺服器預先註冊公用密鑰資料。
核心安全架構
當裝置要求使用衛星服務時,會透過參照其公用密鑰的截斷雜湊值來建立與 Apple 資料中心的安全連線,以進行密鑰交換。每一組公用/專用密鑰僅支援單一作業階段,最長有效時間為八小時。伺服器會事先為每一組用戶端密鑰產生對應的公用密鑰與專用密鑰組,並將公用密鑰分享給用戶端。
作業階段逾期或結束後,Apple 伺服器與裝置都會移除對應的專用密鑰,以確保前向保密性。Apple 與裝置會在固定時間間隔,以及在使用過專用密鑰後重新上線時,註冊額外的密鑰,以為衛星通訊提供事後入侵安全性。由於每部裝置在每一個作業階段都會輪替識別碼,觀察者無法從作業階段識別碼中辨識使用者身分,以避免產生關聯。
透過衛星的緊急服務與道路救援服務
當使用者透過衛星使用 SOS 或道路救援服務時,上述與 Apple 建立的安全連線可保護通訊內容。此外,系統還會加上一層額外加密,確保內容在傳送至應用程式伺服器前始終保持加密狀態,該伺服器再以傳輸加密方式將訊息轉送給 Apple 的緊急服務與道路救援合作夥伴。
透過衛星的 iMessage
當裝置透過 Wi-Fi 或行動網路交換 iMessage 時,只要傳送端或接收端群組中有任何一部裝置支援衛星服務,就會同時交換密鑰資料。透過這個機制,裝置會定期接收更新的密鑰,使其在行動網路無法使用、且裝置連線至衛星時,仍能對訊息進行加密與解密。由於密鑰存續時間有限,使用者需在最近 30 天內曾交換訊息,才能在離網狀態下通訊。
每部裝置會產生對稱式密鑰資料,並透過 iMessage 加密機制散佈,用來加密其傳出的訊息。每則訊息都會透過以雜湊為基礎的密鑰衍生函數(HKDF)棘輪機制,依訊息計數器衍生出唯一的對稱式訊息密鑰。接收端裝置會查詢傳送端的對稱式密鑰資料,並衍生對應的訊息密鑰。裝置重新上線後,系統會散佈新的對稱式密鑰,供後續作業階段使用。
傳送端只有在收到接收端確認可透過衛星接收訊息的已簽署承載資料後,才會透過衛星傳送 iMessage。
【注意】透過衛星的 iMessage 僅支援一對一通訊,不支援群組訊息。
透過衛星的 SMS
當使用者透過衛星傳送或接收 SMS 時,訊息會經由網路互通功能(IWF)進行轉送。IWF 會從傳送端電信業者接收要送往離網狀態用戶端的訊息(由於裝置在離網狀態下未連線至電信業者的區域網路,因此在系統看來會呈現為漫遊狀態)。相對地,IWF 也會將離網狀態用戶端送出的外傳訊息轉送給收件者所屬的電信業者。離網狀態用戶端與 IWF 之間交換的 SMS 訊息,會透過加密與驗證機制加以保護,確保無論是 Apple 或任何能存取衛星訊號的一方,都無法讀取或修改訊息內容。
在用戶端仍處於連線狀態時,系統便會在 NIST P-256 曲線上啟動 Diffie-Hellman 密鑰交換,並在裝置進入離網狀態且建立初始衛星連線時完成該流程。Apple 與裝置會使用 HKDF-SHA-256,從這次密鑰交換中衍生出多個密鑰。其中一個密鑰會使用 256 位元金鑰的 AES-GCM 進行對稱式加密,用來保護 SMS 正確路由所需的用戶端資訊(IMSI 與 SMSC)。另一組密鑰則同樣使用 256 位元金鑰的 AES-GCM,提供用戶端與 IWF 之間訊息的雙向加密。
因為相較於傳統行動網路通訊,衛星連線的頻寬較低、延遲較高,為了避免垃圾訊息或低價值訊息延誤關鍵 SMS 的接收,裝置在進入離線狀態並透過衛星連線時,並不會立即收到所有傳入的 SMS 訊息。系統只會在兩種情況下才會將傳入訊息轉送給用戶端:
1.用戶端在最近 24 小時內、於離網狀態下曾向該寄件人發送過訊息。
2.該寄件人屬於已核准的寄件人(在使用者的緊急聯絡人或 iCloud 家庭成員中)。
否則,Apple 會將該訊息以加密形式儲存在其伺服器上,直到用戶端重新連線上線,並透過傳統網路取回這些訊息為止。為了維護使用者隱私權,Apple 也確保 IWF 無法得知使用者的已核准寄件人列表。
在每個工作階段中,用戶端會使用從該工作階段主要密鑰衍生出的密鑰,搭配 HMAC-SHA-256,為每個電話號碼產生隨機的假名。當工作階段建立時,用戶端會將允許列表中各電話號碼對應的假名傳送給 Apple 伺服器。同樣地,每當用戶端向某個電話號碼傳送 SMS 時,也會產生假名並傳送給 Apple。這使 Apple 能在該工作階段中維護一份被允許的寄件人假名列表。
當有人在工作階段建立後向用戶端發送 SMS 時,IWF 會先加密訊息,並計算寄件人電話號碼的假名。接著將假名與加密後的訊息一併傳送給 Apple 伺服器。伺服器會將該假名與允許列表進行比對,若相符,便會轉送加密後的訊息。