透過 iMessage 發送訊息是 iOS 裝置和 Mac 電腦之間通訊的一種流行方式。蘋果的伺服器每天處理數千萬條訊息,隨著蘋果設備的銷售成長,iMessage 也越來越受歡迎。但您是否想過如何保護您的訊息免受潛在攻擊者的侵害?
蘋果最近發布了 文件 描述 iOS 安全性。它很好地描述了iOS中使用的安全機制——系統、資料加密和保護、應用程式安全、網路通訊、互聯網服務和設備安全。如果你對安全有一點了解,並且英文沒有問題,你可以在第20頁找到iMessage。如果沒有,我會盡量清楚地描述iMessage安全原理。
發送訊息的基礎是加密。對於外行人來說,這通常與使用金鑰加密訊息並且收件者使用該金鑰解密訊息的過程有關。這樣的密鑰稱為對稱金鑰。此過程的關鍵點是將金鑰移交給接收者。如果攻擊者掌握了它,他們可以簡單地解密您的訊息並冒充收件者。為了簡化,想像一個帶鎖的盒子,裡面只能放一把鑰匙,用這把鑰匙你可以插入和取出盒子裡的東西。
幸運的是,有使用兩個金鑰(公鑰和私鑰)的非對稱加密。原則是每個人都可以知道你的公鑰,當然只有你知道你的私鑰。如果有人想向您發送訊息,他們會使用您的公鑰對其進行加密。加密的訊息只能用您的私鑰解密。如果你再以簡化的方式想像一個郵箱,那麼這次它會有兩個鎖。使用公鑰,任何人都可以解鎖它以插入內容,但只有擁有私鑰的您才能選擇它。當然,我要補充一點,用公鑰加密的訊息不能用該公鑰解密。
iMessage 中的安全性如何運作:
- 啟動 iMessage 時,裝置上會產生兩個金鑰對 - 1280b RSA 用於加密數據,256b ECDSA 用於驗證資料在傳輸過程中未被竄改。
- 這兩個公鑰被傳送到 Apple 的目錄服務 (IDS)。當然,兩個私鑰僅儲存在裝置上。
- 在 IDS 中,公鑰與 Apple 推播通知服務 (APN) 中的電話號碼、電子郵件和裝置位址相關聯。
- 如果有人想要向您發送訊息,他們的裝置將在 IDS 中找到您的公鑰(或多個公鑰,如果在多個裝置上使用 iMessage)以及您裝置的 APN 位址。
- 他使用 128b AES 對訊息進行加密,並使用他的私鑰對其進行簽署。如果該訊息要透過多個裝置傳送給您,則該訊息會分別在每個裝置的 Apple 伺服器上儲存和加密。
- 有些資料(例如時間戳記)根本沒有加密。
- 所有通訊均透過 TLS 完成。
- 較長的訊息和附件在 iCloud 上使用隨機密鑰進行加密。每個這樣的物件都有自己的 URI(伺服器上某物的位址)。
- 訊息發送到您的所有裝置後,就會被刪除。如果它沒有傳送到您的至少一台設備,它會在伺服器上保留 7 天,然後被刪除。
這個描述你可能覺得很複雜,但是如果你看上圖,你一定會懂其中的原理。這種安全系統的優點是只能透過暴力從外部對其進行攻擊。好吧,就目前而言,因為攻擊者變得越來越聰明。
潛在的威脅來自蘋果本身。這是因為他管理整個金鑰基礎設施,因此理論上他可以將另一個裝置(另一對公鑰和私鑰)分配給您的帳戶,例如根據法院命令,可以解密傳入的訊息。不過,蘋果在這裡表示,它不會也不會做任何這樣的事。
在誰面前加密?普通的 SSL 還不夠嗎?訊息被傳送到 Apple,然後 Apple 透過 SSL 再次發送訊息?無論如何,蘋果有能力竊聽消息,那麼為什麼周圍有這麼多噪音呢?無論如何,這只是防止第三方竊聽訊息的問題,而 SSL 就足夠了。
如果我們相信蘋果不發送私鑰,那麼他就不會讀取它們。無論如何,SSL 只是客戶端-伺服器連接上非對稱加密的一種實作。
因此,我們透過 SSL 發送 2x 加密的訊息,Apple 可以讀取它,或發送 2x 未加密的訊息,因為我們事先請求公鑰並使用與 SSL 情況相同的密碼,理論上 Apple 無法讀取它們。
為什麼蘋果公司也要對資料進行加密?因為某些員工一定會接觸到它們。他被女友欺騙了,所以他開始下載她的資訊——資訊洩露,蘋果公司陷入困境。
搞笑的喊聲..