本週攻擊:LTE 語音通話 (ReVoLTE)

來自譯者和 TL;DR

  1. TL; DR:

    事實證明,VoLTE 的保護效果似乎比第一個採用 WEP 的 Wi-Fi 用戶端還要差。 一種獨特的架構錯誤計算,可讓您對流量進行一點異或併恢復金鑰。 如果您距離呼叫者很近並且他頻繁撥打電話,則可能會受到攻擊。

  2. 感謝您的提示和 TL;DR 克魯科寧

  3. 研究人員製作了一個應用程式來確定您的運營商是否容易受到攻擊,了解更多 這裡。 在評論中分享結果,我所在的地區在 Megafon 上禁用了 VoLTE。

關於作者

馬修·格林。

我是約翰霍普金斯大學的密碼學家和教授。 我設計並分析了無線網路、支付系統和數位內容安全平台中使用的加密系統。 在我的研究中,我研究了使用加密技術來改善用戶隱私的不同方法。

好久沒寫文格式了 “本週攻擊”,這讓我很不安。 不是因為沒有攻擊,而是主要是因為沒有對廣泛使用的東西進行攻擊,足以讓我擺脫作家的障礙。

但今天我遇到了 有趣的攻擊 我對駭客攻擊特別感興趣的協定稱為 ReVoLTE,即蜂窩網路(語音)LTE 協定。 我對這些特定協定以及這種新的攻擊感到興奮,因為很少看到實際的蜂窩網路協定和實作被駭客攻擊。 主要是因為這些標準是在充滿煙霧的房間中製定的,並記錄在 12000 頁的文件中,並非每個研究人員都能處理。 此外,實施這些攻擊迫使研究人員使用複雜的無線電協定。

因此,嚴重的加密漏洞可能會傳播到世界各地,也許只有在研究人員注意到之前才被政府利用。 但時不時也會有例外,今天的攻擊就是其中之一。

作者 攻擊貢獻者:波鴻魯爾大學和阿布達比紐約大學的 David Rupprecht、Katharina Kohls、Thorsten Holz 和 Christina Pöpper。 這是一個很好的攻擊,可以在您可能已經使用的語音協定中重新安裝金鑰(假設您來自仍使用手機撥打電話的老一代)。

首先,進行一次簡短的歷史考察。

什麼是 LTE 和 VoLTE?

我們現代蜂窩電話標準的基礎是 80 年代在歐洲制定的標準 全球移動系統 (全球行動通訊系統)。 GSM 是第一個主要的數位蜂窩電話標準,它引入了許多革命性的功能,例如使用 加密 以保護電話。 早期的 GSM 主要是為語音通訊而設計的,儘管金錢可以 傳輸其他數據.

隨著數據傳輸在蜂窩通訊中變得越來越重要,開發了長期演進 (LTE) 標準來簡化此類通訊。 LTE 是基於一組較舊的標準,例如 GSM、 EDGE и HSPA的 旨在提高資料交換速度。 有很多品牌和 因不正確的名稱而產生誤導但總而言之,LTE 是一種數據傳輸系統,可作為舊的分組數據協議和未來蜂窩數據技術之間的橋樑 5G.

當然,歷史告訴我們,一旦有足夠的(IP)頻寬可用,「語音」和「資料」等概念將開始變得模糊。 這同樣適用於現代蜂窩協議。 為了使這一過渡更加順利,LTE 標準定義了 LTE 語音 (VoLTE),這是一種 IP 標準,用於直接透過 LTE 系統的資料平面承載語音呼叫,完全繞過蜂窩網路的撥號部分。 與標準一樣 網路電話通話,VoLTE 呼叫可以由蜂窩運營商終止並連接到常規電話網路。 或(越來越普遍)他們 可以路由 直接從一個蜂窩客戶端到另一個蜂窩客戶端,甚至在不同的提供者之間。

與標準 VoIP 一樣,VoLTE 基於兩種流行的基於 IP 的協定: 會話發起協定 (會話發起協議 – SIP)用於呼叫建立和即時傳輸協定(即時傳輸協定,應該叫RTTP但實際上叫RTP)用來處理語音資料。 VoLTE 還添加了一些額外的頻寬優化,例如標頭壓縮。

好吧,這跟加密有什麼關係呢?

LTE,例如 的GSM,具有一組標準的加密協議,用於在空中傳輸資料包時對其進行加密。 它們的主要目的是保護您的資料在手機(稱為用戶設備或 UE)和手機訊號塔(或您的提供者決定終止連接的任何地方)之間傳輸時的資料。 這是因為蜂窩提供者將外部竊聽設備視為敵人。 嗯,當然。

(然而,VoLTE 連線可以直接發生在不同提供者網路上的用戶端之間,這意味著VoLTE 協定本身俱有一些可以發生在更高網路層的附加和可選加密協定。這與目前文章無關,除了以下事實:它們可以毀掉一切(接下來我們將簡要討論它們)。

從歷史上看,GSM 中的加密一直是 許多弱點: 壞的 密碼,其中只有電話經過塔的身份驗證(意味著攻擊者可以冒充塔,生成 “黃貂魚”) 等等。 LTE 修正了許多明顯的錯誤,同時保持了大部分相同的結構。

讓我們從加密本身開始。 假設金鑰創建已經發生 - 我們將在一分鐘內討論 - 然後使用稱為“EEA”的流加密技術(實際上可以使用 AES 等技術來實現)對每個資料包進行加密。 本質上,這裡的加密機制是 點擊率如下:

本週攻擊:LTE 語音通話 (ReVoLTE)
VoLTE資料包的主要加密演算法(資料來源: ReVoLTE)。 EEA 是一個密碼,「COUNT」是一個 32 位元計數器,「BEARER」是一個唯一的會話標識符,它將 VoLTE 連線與常規網路流量分開。 「DIRECTION」指示流量的流動方向 - 從 UE 到塔,反之亦然。

由於加密演算法本身(EEA)可以使用像 AES 這樣的強密碼來實現,因此不太可能像這樣對密碼本身進行任何直接攻擊 發生在 GSM 時代。 然而,很明顯,即使使用強大的密碼,這種加密方案也是搬起石頭砸自己的腳的好方法。

特別是:LTE 標準使用(未經身份驗證的)流密碼,如果計數器以及“承載”和“方向”等其他輸入被重複使用,該模式將非常容易受到攻擊。 用現代的說法,這個概念的術語是“隨機數重用攻擊”,但這裡的潛在風險並不是現代的東西。 它們著名且古老,可以追溯到華麗金屬甚至迪斯科時代。

本週攻擊:LTE 語音通話 (ReVoLTE)
即使 Poison 已知,在 CTR 模式下對隨機數重用的攻擊仍然存在

公平地說,LTE 標準規定:“請不要重複使用這些儀表。” 但 LTE 標準大約有 7000 頁長,無論如何,這就像求小孩不要玩槍一樣。 他們不可避免地會發生,可怕的事情將會發生。 這種情況下的發射槍是密鑰流重複使用攻擊,其中兩個不同的機密訊息對相同的密鑰流位元組進行異或。 據了解,這 對通訊的保密性有很大的破壞性影響.

什麼是 ReVoLTE?

ReVoLTE 攻擊表明,實際上,這種非常脆弱的加密設計被現實世界的硬體濫用。 具體來說,作者分析了使用商業設備進行的真實 VoLTE 通話,並表明他們可以使用一種稱為「金鑰重新安裝攻擊」的方法。 (發現這個問題的大部分功勞歸功於 賴斯和盧 (Raza 和 Lu),他們是第一個指出潛在漏洞的人。 但 ReVoLTE 研究將其轉化為實際攻擊)。

讓我簡要地向您展示攻擊的本質,儘管您應該查看並了解 源文件.

人們可能會認為,一旦 LTE 建立了分組數據連接,LTE 語音的任務就變成了通過該連接路由語音數據包以及所有其餘流量的問題。 換句話說,VoLTE將是一個僅存在於 第二級 [OSI 模型 – 約。]。 這並不完全正確。

事實上,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$ 之一,那麼他可以立即恢復另一個。 這給了他強烈的動力 找出兩個未加密的組件之一.

這為我們帶來了完整且最有效的攻擊場景。 考慮一個攻擊者,他可以攔截目標電話和手機信號塔之間的無線電流量,並且以某種方式幸運地記錄了兩個不同的呼叫,第二個呼叫緊隨第一個呼叫之後發生。 現在想像一下,他可以以某種方式猜出其中一個通話的未加密內容。 有了這樣的 偶然性 我們的攻擊者可以使用兩組資料包之間的簡單異或來完全解密第一個呼叫。

當然,這與運氣無關。 由於電話設計用於接聽電話,因此能夠無意中聽到第一通電話的攻擊者將能夠在第一個電話結束時發動第二通電話。 如果再次使用相同的加密金鑰並將計數器重設為零,則第二次呼叫將允許恢復未加密的資料。 此外,由於我們的攻擊者實際上在第二次調用期間控制了數據,因此他可以恢復第一次調用的內容 - 這要歸功於許多專門實現的 小東西,在他身邊打球。

這是整體攻擊計畫的圖像,取自 原始文件:

本週攻擊:LTE 語音通話 (ReVoLTE)
攻擊概述來自 ReVoLTE 文檔。 該方案假設使用相同的密鑰進行兩個不同的呼叫。 攻擊者控制被動嗅探器(左上)以及第二部電話,他可以用第二部電話撥打受害者的電話。

那麼這種攻擊真的有效嗎?

一方面,這確實是有關 ReVoLTE 的文章的主要問題。 上述所有想法在理論上都很棒,但也留下了許多問題。 例如:

  1. (對於學術研究人員而言)是否有可能真正攔截 VoLTE 連線?
  2. 真正的 LTE 系統真的會重新金鑰嗎?
  3. 您實際上可以快速可靠地發起第二個呼叫,以便電話和訊號塔重複使用金鑰嗎?
  4. 即使系統重新加密,您實際上是否可以知道第二次調用的未加密內容- 考慮到編解碼器和轉碼之類的東西可以完全改變第二次調用的(逐位)內容,即使您有權訪問“位” “來自你的攻擊手機?

ReVoLTE 的工作對其中一些問題做出了肯定的回答。 作者使用了一種商業軟體可重新配置的無線電流嗅探器,稱為 望遠鏡 攔截下行側的VoLTE呼叫。 (我認為,僅僅掌握該軟體並大致了解它的工作原理就可以讓貧困研究生的生活縮短數月——這對於此類學術研究來說是典型的)。

研究人員發現,為了使密鑰重用發揮作用,第二個呼叫必須在第一個呼叫結束後足夠快地發生,但不能太快——對於他們進行實驗的操作員來說,大約十秒鐘。 幸運的是,用戶是否在這段時間內接聽電話並不重要——「鈴聲」即。 SIP 連線本身迫使營運商重複使用相同的金鑰。

因此,許多最糟糕的問題都圍繞著問題(4)——接收攻擊者發起的呼叫的未加密內容位。 這是因為當您的內容透過蜂窩網路從攻擊者的手機傳輸到受害者的手機時,可能會發生很多事情。 例如,諸如重新編碼編碼音訊串流之類的骯髒伎倆,使聲音保持不變,但完全改變了其二進位表示形式。 LTE 網路也使用 RTP 標頭壓縮,這可以顯著改變 RTP 封包的大部分內容。

最後,攻擊者發送的資料包應該與第一次電話呼叫期間發送的資料包大致一致。 這可能會產生問題,因為在通話期間修改靜音會導致訊息變短(也稱為舒適噪音),而這可能與原始通話不太相符。

“現實世界攻擊”部分 值得詳細閱讀。 它解決了上述許多問題 - 特別是,作者發現某些編解碼器沒有重新編碼,並且大約 89% 的目標調用的二進位表示可以恢復。 對於至少兩家接受測試的歐洲營運商來說,情況確實如此。

這是一個令人驚訝的高成功率,坦白說比我開始處理這份文件時的預期要高得多。

那我們能做些什麼來解決它呢?

這個問題的直接答案非常簡單:由於漏洞的本質是金鑰重用(重新安裝)攻擊,因此只需修復問題即可。 確保為每個電話呼叫取得新金鑰,並且絕不允許資料包計數器使用相同金鑰將計數器重設為零。 問題解決了!

或者可能不是。 這將需要升級大量設備,而且坦白說,這種修復本身並不是非常可靠。 如果標準能夠找到一種更安全的方法來實現其加密模式,並且預設不會災難性地受到此類金鑰重用問題的影響,那就太好了。

一個可能的選擇是使用 濫用隨機數不會導致災難性後果的加密模式。 對於目前的某些硬體來說,這可能太昂貴,但這無疑是設計人員未來應該考慮的一個領域,尤其是在 5G 標準即將席捲全球的情況下。

這項新研究也提出了一個普遍問題:為什麼 同樣該死的攻擊不斷在一個又一個標準中出現,其中許多使用非常相似的設計和協議。 當您面臨在 WPA2 等多種廣泛使用的協定中重新安裝相同金鑰的問題時,您是否認為是時候讓您的規格和測試程序變得更加可靠了? 不要將標準實施者視為關注您警告的貼心合作夥伴。 將他們視為(無意識的)對手,他們不可避免地會犯錯。

或者,我們可以做 Facebook 和 Apple 等公司越來越多地做的事情:在 OSI 網路堆疊的更高層級上進行語音通話加密,而不依賴蜂窩設備製造商。 我們甚至可以推動語音通話的端對端加密,就像 WhatsApp 對 Signal 和 FaceTime 所做的那樣,假設美國政府停止這樣做 讓我們絆倒。 然後(除了一些元資料之外)許多這些問題就會消失。 該解決方案在當今的世界中尤其重要 甚至政府也不確定他們是否信任他們的設備供應商.

或者我們可以簡單地做我們的孩子已經做過的事情:停止接聽那些煩人的語音電話。

來源: www.habr.com

添加評論