來自譯者和 TL;DR
-
TL; DR:
事實證明,VoLTE 的保護效果似乎比第一個採用 WEP 的 Wi-Fi 用戶端還要差。 一種獨特的架構錯誤計算,可讓您對流量進行一點異或併恢復金鑰。 如果您距離呼叫者很近並且他頻繁撥打電話,則可能會受到攻擊。
-
感謝您的提示和 TL;DR
克魯科寧 -
研究人員製作了一個應用程式來確定您的運營商是否容易受到攻擊,了解更多
這裡 。 在評論中分享結果,我所在的地區在 Megafon 上禁用了 VoLTE。
關於作者
馬修·格林。
我是約翰霍普金斯大學的密碼學家和教授。 我設計並分析了無線網路、支付系統和數位內容安全平台中使用的加密系統。 在我的研究中,我研究了使用加密技術來改善用戶隱私的不同方法。
好久沒寫文格式了
但今天我遇到了
因此,嚴重的加密漏洞可能會傳播到世界各地,也許只有在研究人員注意到之前才被政府利用。 但時不時也會有例外,今天的攻擊就是其中之一。
作者
首先,進行一次簡短的歷史考察。
什麼是 LTE 和 VoLTE?
我們現代蜂窩電話標準的基礎是 80 年代在歐洲制定的標準
隨著數據傳輸在蜂窩通訊中變得越來越重要,開發了長期演進 (LTE) 標準來簡化此類通訊。 LTE 是基於一組較舊的標準,例如 GSM、
當然,歷史告訴我們,一旦有足夠的(IP)頻寬可用,「語音」和「資料」等概念將開始變得模糊。 這同樣適用於現代蜂窩協議。 為了使這一過渡更加順利,LTE 標準定義了
與標準 VoIP 一樣,VoLTE 基於兩種流行的基於 IP 的協定: 會話發起協定 (
好吧,這跟加密有什麼關係呢?
LTE,例如
(然而,VoLTE 連線可以直接發生在不同提供者網路上的用戶端之間,這意味著VoLTE 協定本身俱有一些可以發生在更高網路層的附加和可選加密協定。這與目前文章無關,除了以下事實:它們可以毀掉一切(接下來我們將簡要討論它們)。
從歷史上看,GSM 中的加密一直是
讓我們從加密本身開始。 假設金鑰創建已經發生 - 我們將在一分鐘內討論 - 然後使用稱為“EEA”的流加密技術(實際上可以使用 AES 等技術來實現)對每個資料包進行加密。 本質上,這裡的加密機制是
VoLTE資料包的主要加密演算法(資料來源:
由於加密演算法本身(EEA)可以使用像 AES 這樣的強密碼來實現,因此不太可能像這樣對密碼本身進行任何直接攻擊
特別是:LTE 標準使用(未經身份驗證的)流密碼,如果計數器以及“承載”和“方向”等其他輸入被重複使用,該模式將非常容易受到攻擊。 用現代的說法,這個概念的術語是“隨機數重用攻擊”,但這裡的潛在風險並不是現代的東西。 它們著名且古老,可以追溯到華麗金屬甚至迪斯科時代。
即使 Poison 已知,在 CTR 模式下對隨機數重用的攻擊仍然存在
公平地說,LTE 標準規定:“請不要重複使用這些儀表。” 但 LTE 標準大約有 7000 頁長,無論如何,這就像求小孩不要玩槍一樣。 他們不可避免地會發生,可怕的事情將會發生。 這種情況下的發射槍是密鑰流重複使用攻擊,其中兩個不同的機密訊息對相同的密鑰流位元組進行異或。 據了解,這
什麼是 ReVoLTE?
ReVoLTE 攻擊表明,實際上,這種非常脆弱的加密設計被現實世界的硬體濫用。 具體來說,作者分析了使用商業設備進行的真實 VoLTE 通話,並表明他們可以使用一種稱為「金鑰重新安裝攻擊」的方法。 (發現這個問題的大部分功勞歸功於
讓我簡要地向您展示攻擊的本質,儘管您應該查看並了解
人們可能會認為,一旦 LTE 建立了分組數據連接,LTE 語音的任務就變成了通過該連接路由語音數據包以及所有其餘流量的問題。 換句話說,VoLTE將是一個僅存在於
事實上,LTE鏈路層引入了「承載」的概念。 承載是分隔不同類型的封包流量的單獨會話標識符。 常規網路流量(您的 Twitter 和 Snapchat)透過一個承載。 VoIP 的 SIP 訊號通過另一個通道,語音流量資料包透過第三個通道處理。 我對 LTE 無線電和網路路由機制不是很了解,但我相信這樣做是因為 LTE 網路希望強制實施 QoS(服務品質)機制,以便以不同的優先權處理不同的封包流:即你的 第二次評價 與 Facebook 的 TCP 連線的優先順序可能低於即時語音通話。
這通常不是問題,但後果如下。 每次安裝新「承載」時,都會單獨建立 LTE 加密金鑰。 基本上,每次您撥打新電話時都會再次發生這種情況。 這將導致每個呼叫使用不同的加密金鑰,從而消除了重複使用相同金鑰來加密兩組不同的語音呼叫資料包的可能性。 事實上,LTE 標準規定「每次安裝新承載來處理新電話時,都應該使用不同的金鑰」。 但這並不意味著這確實發生了。
事實上,在現實生活中的實現中,在時間上接近的兩個不同的呼叫將使用相同的密鑰——儘管事實上在它們之間配置了同名的新承載。 這些呼叫之間發生的唯一實際變化是加密計數器重設為零。 在文獻中,這有時被稱為
實際上,這種攻擊會導致金鑰流重複使用,攻擊者可以獲得加密資料包$inline$C_1 = M_1 oplus KS$inline$和$inline$C_2 = M_2 oplus KS$inline$,從而允許計算$inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$。 更好的是,如果攻擊者知道 $inline$M_1$inline$ 或 $inline$M_2$inline$ 之一,那麼他可以立即恢復另一個。 這給了他強烈的動力 找出兩個未加密的組件之一.
這為我們帶來了完整且最有效的攻擊場景。 考慮一個攻擊者,他可以攔截目標電話和手機信號塔之間的無線電流量,並且以某種方式幸運地記錄了兩個不同的呼叫,第二個呼叫緊隨第一個呼叫之後發生。 現在想像一下,他可以以某種方式猜出其中一個通話的未加密內容。 有了這樣的 偶然性 我們的攻擊者可以使用兩組資料包之間的簡單異或來完全解密第一個呼叫。
當然,這與運氣無關。 由於電話設計用於接聽電話,因此能夠無意中聽到第一通電話的攻擊者將能夠在第一個電話結束時發動第二通電話。 如果再次使用相同的加密金鑰並將計數器重設為零,則第二次呼叫將允許恢復未加密的資料。 此外,由於我們的攻擊者實際上在第二次調用期間控制了數據,因此他可以恢復第一次調用的內容 - 這要歸功於許多專門實現的 小東西,在他身邊打球。
這是整體攻擊計畫的圖像,取自
攻擊概述來自
那麼這種攻擊真的有效嗎?
一方面,這確實是有關 ReVoLTE 的文章的主要問題。 上述所有想法在理論上都很棒,但也留下了許多問題。 例如:
- (對於學術研究人員而言)是否有可能真正攔截 VoLTE 連線?
- 真正的 LTE 系統真的會重新金鑰嗎?
- 您實際上可以快速可靠地發起第二個呼叫,以便電話和訊號塔重複使用金鑰嗎?
- 即使系統重新加密,您實際上是否可以知道第二次調用的未加密內容- 考慮到編解碼器和轉碼之類的東西可以完全改變第二次調用的(逐位)內容,即使您有權訪問“位” “來自你的攻擊手機?
ReVoLTE 的工作對其中一些問題做出了肯定的回答。 作者使用了一種商業軟體可重新配置的無線電流嗅探器,稱為
研究人員發現,為了使密鑰重用發揮作用,第二個呼叫必須在第一個呼叫結束後足夠快地發生,但不能太快——對於他們進行實驗的操作員來說,大約十秒鐘。 幸運的是,用戶是否在這段時間內接聽電話並不重要——「鈴聲」即。 SIP 連線本身迫使營運商重複使用相同的金鑰。
因此,許多最糟糕的問題都圍繞著問題(4)——接收攻擊者發起的呼叫的未加密內容位。 這是因為當您的內容透過蜂窩網路從攻擊者的手機傳輸到受害者的手機時,可能會發生很多事情。 例如,諸如重新編碼編碼音訊串流之類的骯髒伎倆,使聲音保持不變,但完全改變了其二進位表示形式。 LTE 網路也使用 RTP 標頭壓縮,這可以顯著改變 RTP 封包的大部分內容。
最後,攻擊者發送的資料包應該與第一次電話呼叫期間發送的資料包大致一致。 這可能會產生問題,因為在通話期間修改靜音會導致訊息變短(也稱為舒適噪音),而這可能與原始通話不太相符。
這是一個令人驚訝的高成功率,坦白說比我開始處理這份文件時的預期要高得多。
那我們能做些什麼來解決它呢?
這個問題的直接答案非常簡單:由於漏洞的本質是金鑰重用(重新安裝)攻擊,因此只需修復問題即可。 確保為每個電話呼叫取得新金鑰,並且絕不允許資料包計數器使用相同金鑰將計數器重設為零。 問題解決了!
或者可能不是。 這將需要升級大量設備,而且坦白說,這種修復本身並不是非常可靠。 如果標準能夠找到一種更安全的方法來實現其加密模式,並且預設不會災難性地受到此類金鑰重用問題的影響,那就太好了。
一個可能的選擇是使用
這項新研究也提出了一個普遍問題:為什麼
或者,我們可以做 Facebook 和 Apple 等公司越來越多地做的事情:在 OSI 網路堆疊的更高層級上進行語音通話加密,而不依賴蜂窩設備製造商。 我們甚至可以推動語音通話的端對端加密,就像 WhatsApp 對 Signal 和 FaceTime 所做的那樣,假設美國政府停止這樣做
或者我們可以簡單地做我們的孩子已經做過的事情:停止接聽那些煩人的語音電話。
來源: www.habr.com