Útok týdne: hlasové hovory přes LTE (ReVoLTE)

Od překladatele a TL;DR

  1. TL; DR:

    Zdá se, že VoLTE dopadlo ještě hůře chráněné než první Wi-Fi klienti s WEP. Výhradně architektonický chybný výpočet, který vám umožní trochu XOR provoz a obnovit klíč. Útok je možný, pokud jste blízko volajícího a často volá.

  2. Díky za tip a TL;DR Klukonín

  3. Výzkumníci vytvořili aplikaci, která určí, zda je váš operátor zranitelný, přečtěte si více zde. Podělte se o výsledky v komentářích, VoLTE je v mém regionu na Megafonu zakázáno.

O autorovi

Matthew Green.

Jsem kryptograf a profesor na Johns Hopkins University. Navrhl jsem a analyzoval kryptografické systémy používané v bezdrátových sítích, platebních systémech a platformách pro zabezpečení digitálního obsahu. Ve svém výzkumu se zaměřuji na různé způsoby použití kryptografie ke zlepšení soukromí uživatelů.

Už je to nějaký čas, co jsem napsal formát příspěvku "útok týdne"a naštvalo mě to. Ne proto, že by tam nebyly útoky, ale hlavně proto, že tam nebyl útok na něco dostatečně široce používaného, ​​aby mě to dostalo ze spisovatelského bloku.

Ale dnes jsem narazil zajímavý útok nazvaný ReVoLTE pro protokoly, z nichž jsem obzvláště nadšený z hackování, konkrétně protokoly LTE pro mobilní sítě (hlasové přenosy). Jsem nadšený z těchto konkrétních protokolů – a tohoto nového útoku –, protože je velmi vzácné vidět skutečné protokoly a implementace celulárních sítí, které by byly hacknuty. Především proto, že tyto standardy byly vyvinuty v zakouřených místnostech a zdokumentovány ve 12000 XNUMXstránkových dokumentech, se kterými si ne každý výzkumník poradí. Implementace těchto útoků navíc nutí výzkumníky používat složité rádiové protokoly.

Vážná kryptografická zranitelnost by se tak mohla rozšířit po celém světě, možná jen proto, aby byla zneužita vládami, než si toho všimne jakýkoli výzkumník. Čas od času se ale najdou výjimky a dnešní útok je jednou z nich.

Autoři útokyPřispěvatelé: David Rupprecht, Katharina Kohls, Thorsten Holz a Christina Pöpper z Ruhr-University Bochum a New York University Abu Dhabi. Jedná se o skvělý útok na přeinstalaci klíče v hlasovém protokolu, který pravděpodobně již používáte (za předpokladu, že jste ze starší generace, která stále telefonuje pomocí mobilního telefonu).

Na začátek krátký historický exkurz.

Co jsou LTE a VoLTE?

Základ našich moderních standardů mobilní telefonie byl položen v Evropě již v 80. letech standardem Globální systém pro mobily (Globální systém pro mobilní komunikace). GSM byl prvním hlavním standardem digitální mobilní telefonie, který zavedl řadu revolučních funkcí, například použití šifrování k ochraně telefonních hovorů. Rané GSM bylo navrženo především pro hlasovou komunikaci, i když peníze mohly být přenášet další data.

Jak se přenos dat stal v celulárních komunikacích důležitějším, byly vyvinuty standardy Long Term Evolution (LTE), které zefektivnily tento typ komunikace. LTE je založeno na skupině starších standardů, jako je GSM, EDGE и HSPA a je navržen tak, aby zvýšil rychlost výměny dat. Existuje mnoho značek a zavádějící nesprávným označenímale TL;DR je, že LTE je systém přenosu dat, který slouží jako most mezi staršími paketovými datovými protokoly a budoucími mobilními datovými technologiemi. 5G.

Historie nám samozřejmě říká, že jakmile bude k dispozici dostatečná (IP) šířka pásma, pojmy jako „hlas“ a „data“ se začnou rozmazávat. Totéž platí pro moderní mobilní protokoly. Aby byl tento přechod hladší, definují standardy LTE Hlas přes LTE (VoLTE), což je standard IP pro přenos hlasových hovorů přímo přes datovou rovinu systému LTE, přičemž zcela obchází vytáčenou část celulární sítě. Stejně jako u standardu VoIP hovory,VoLTE hovory mohou být ukončeny mobilním operátorem a připojeny k běžné telefonní síti. Nebo (jak je čím dál častější) oni lze směrovat přímo od jednoho mobilního klienta k druhému a dokonce i mezi různými poskytovateli.

Stejně jako standardní VoIP je VoLTE založeno na dvou populárních protokolech založených na IP: Session Initiation Protocol (Protokol o zahájení relace – SIP) pro nastavení hovoru a přenosový protokol v reálném čase (Protokol přenosu v reálném čase, který by se měl nazývat RTTP, ale ve skutečnosti se nazývá RTP) pro zpracování hlasových dat. VoLTE také přidává některé další optimalizace šířky pásma, jako je komprese záhlaví.

Dobře, co to má společného se šifrováním?

Třeba LTE GSM, má standardní sadu kryptografických protokolů pro šifrování paketů přenášených vzduchem. Jsou určeny především k ochraně vašich dat při jejich cestování mezi telefonem (nazývaným uživatelské zařízení nebo UE) a mobilní věží (nebo kdekoli, kde se váš poskytovatel rozhodne ukončit připojení). Je to proto, že poskytovatelé mobilních sítí považují externí odposlouchávací zařízení za nepřátele. No, samozřejmě.

(Skutečnost, že připojení VoLTE může probíhat přímo mezi klienty v sítích různých poskytovatelů, však znamená, že samotný protokol VoLTE má některé další a volitelné šifrovací protokoly, které se mohou vyskytovat na vyšších vrstvách sítě. To není pro aktuální článek relevantní, kromě skutečnosti, že dokážou všechno pokazit (příště si o nich stručně povíme).

Historicky bylo šifrování v GSM mnoho slabých míst: špatný šifry, protokoly, ve kterých byl k věži ověřen pouze telefon (to znamená, že útočník se mohl vydávat za věž, generovat "Stingray") a tak dále. LTE opravilo mnoho zjevných chyb při zachování velké části stejné struktury.

Začněme samotným šifrováním. Za předpokladu, že k vytvoření klíče již došlo – a o tom si povíme za minutu – je každý paket dat zašifrován pomocí šifrování toku pomocí něčeho, co se nazývá „EEA“ (což lze v praxi implementovat pomocí věcí jako AES ). V podstatě zde existuje šifrovací mechanismus MPjak je uvedeno níže:

Útok týdne: hlasové hovory přes LTE (ReVoLTE)
Hlavní šifrovací algoritmus pro pakety VoLTE (zdroj: ReVoLTE). EEA je šifra, „COUNT“ je 32bitový čítač, „BEARER“ je jedinečný identifikátor relace, který odděluje připojení VoLTE od běžného internetového provozu. „DIRECTION“ udává, kterým směrem proudí provoz – z UE do věže nebo naopak.

Vzhledem k tomu, že samotný šifrovací algoritmus (EEA) může být implementován pomocí silné šifry, jako je AES, je nepravděpodobné, že by došlo k nějakému přímému útoku na samotnou šifru, jako je tento se stalo v dobách GSM. Je však jasné, že i se silnou šifrou je toto šifrovací schéma skvělým způsobem, jak se střelit do vlastní nohy.

Konkrétně: standard LTE používá (neautentizovanou) proudovou šifru s režimem, který bude extrémně zranitelný, pokud bude počítadlo - a další vstupy, jako je "nosič" a "směr" - někdy znovu použito. V moderním jazyce je termín pro tento koncept „útok s opakovaným použitím“, ale potenciální rizika zde nejsou něčím moderním. Jsou slavné a prastaré, pocházejí z dob glam metalu a dokonce i disca.

Útok týdne: hlasové hovory přes LTE (ReVoLTE)
Útoky na opakované použití v režimu CTR existovaly, i když se Poison stal známým

Abychom byli spravedliví, standardy LTE říkají: "Prosím, nepoužívejte tyto měřiče znovu." Jenže standardy LTE mají zhruba 7000 stran a v každém případě je to jako prosit děti, aby si nehrály se zbraní. Nevyhnutelně budou a budou se dít hrozné věci. Střílející pistolí je v tomto případě útok s opětovným použitím keystreamu, ve kterém dvě různé důvěrné zprávy XOR stejný keystream bajtů. Je známo, že toto má velmi destruktivní vliv na důvěrnost komunikace.

Co je ReVoLTE?

Útok ReVoLTE ukazuje, že v praxi je tento velmi zranitelný návrh šifrování zneužíván skutečným hardwarem. Konkrétně autoři analyzují skutečné hovory VoLTE uskutečněné pomocí komerčního zařízení a ukazují, že mohou použít něco, čemu se říká „útok na přeinstalaci klíče“. (Velká zásluha za nalezení tohoto problému patří Reise a Lu (Raza & Lu), kteří jako první upozornili na potenciální zranitelnost. Výzkum ReVoLTE to ale mění v praktický útok).

Dovolte mi, abych vám krátce ukázal podstatu útoku, i když byste se měli podívat a zdrojový dokument.

Dalo by se předpokládat, že jakmile LTE naváže paketové datové spojení, úloha přenosu hlasu přes LTE se stane pouze záležitostí směrování hlasových paketů přes toto spojení spolu s veškerým zbytkem vašeho provozu. Jinými slovy, VoLTE bude koncept, který přetrvává Úroveň 2 [modely OSI – Cca.]. Není to tak úplně pravda.

Linková vrstva LTE ve skutečnosti zavádí koncept „nosiče“. Nosiče jsou samostatné identifikátory relace, které oddělují různé typy paketového provozu. Běžný internetový provoz (váš Twitter a Snapchat) prochází jedním nosičem. Signalizace SIP pro VoIP prochází jiným a pakety hlasového provozu jsou zpracovávány přes třetí. Nejsem příliš obeznámen s LTE rádiem a mechanismy směrování sítě, ale věřím, že se to dělá tímto způsobem, protože sítě LTE chtějí prosadit mechanismy QoS (kvalita služeb), aby byly různé toky paketů zpracovávány na různých úrovních priority: tzn. vaše druhořadý TCP spojení s Facebookem mohou mít nižší prioritu než vaše hlasové hovory v reálném čase.

To obecně není problém, ale důsledky jsou následující. Klíče pro šifrování LTE se vytvářejí samostatně při každé instalaci nového „nosiče“. V zásadě by se to mělo opakovat pokaždé, když provedete nový telefonní hovor. To bude mít za následek použití jiného šifrovacího klíče pro každý hovor, čímž se eliminuje možnost opětovného použití stejného klíče k šifrování dvou různých sad paketů hlasových hovorů. Standard LTE totiž říká něco jako „pokaždé, když instalujete nový nosič, měli byste pro vyřízení nového telefonního hovoru použít jiný klíč“. To ale neznamená, že se to skutečně děje.

Ve skutečnosti v reálných implementacích budou dva různé hovory probíhající v těsné časové blízkosti používat stejný klíč – navzdory skutečnosti, že mezi nimi jsou nakonfigurováni noví nositelé stejného jména. Jedinou praktickou změnou, ke které dochází mezi těmito voláními, je vynulování počítadla šifrování. V literatuře se tomu někdy říká útok reinstalace klíče. Někdo by mohl namítnout, že jde v podstatě o chybu implementace, i když v tomto případě se zdá, že rizika z velké části vyplývají ze samotného standardu.

V praxi tento útok vede k opětovnému použití toku klíčů, kdy útočník může získat zašifrované pakety $inline$C_1 = M_1 oplus KS$inline$ a $inline$C_2 = M_2 oplus KS$inline$, což umožňuje výpočet $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Ještě lepší je, když útočník zná jednu z $inline$M_1$inline$ nebo $inline$M_2$inline$, pak může okamžitě obnovit druhou. To mu dává silnou motivaci zjistěte jednu ze dvou nešifrovaných součástí.

Tím se dostáváme ke kompletnímu a nejúčinnějšímu scénáři útoku. Vezměme si útočníka, který dokáže zachytit rádiový provoz mezi cílovým telefonem a mobilní věží a který má nějakým způsobem to štěstí, že zaznamená dva různé hovory, přičemž k druhému dojde bezprostředně po prvním. A teď si představte, že by nějak dokázal uhodnout nezašifrovaný obsah jednoho z hovorů. S takovými náhoda náš útočník může plně dešifrovat první volání pomocí jednoduchého XOR mezi dvěma sadami paketů.

Štěstí s tím samozřejmě nemá nic společného. Protože jsou telefony navrženy tak, aby přijímaly hovory, útočník, který zaslechne první hovor, bude moci zahájit druhý hovor přesně v okamžiku, kdy první hovor skončí. Toto druhé volání, pokud je znovu použit stejný šifrovací klíč s počítadlem vynulovaným, umožní obnovení nezašifrovaných dat. Navíc, protože náš útočník skutečně kontroluje data během druhého hovoru, může obnovit obsah prvního hovoru - díky mnoha speciálně implementovaným malé věci, hrající na jeho straně.

Zde je obrázek obecného plánu útoku převzatý z originální dokument:

Útok týdne: hlasové hovory přes LTE (ReVoLTE)
Přehled útoku z dokument ReVoLTE. Toto schéma předpokládá, že pomocí stejného klíče jsou uskutečněna dvě různá volání. Útočník ovládá pasivní sniffer (vlevo nahoře) a také druhý telefon, pomocí kterého může uskutečnit druhý hovor na telefon oběti.

Takže útok opravdu funguje?

To je na jednu stranu opravdu hlavní otázka pro článek o ReVoLTE. Všechny výše uvedené myšlenky jsou skvělé teoreticky, ale zanechávají spoustu otázek. Jako:

  1. Je možné (pro akademické výzkumníky) skutečně zachytit připojení VoLTE?
  2. Skutečně překlíčují skutečné systémy LTE?
  3. Dokážete skutečně zahájit druhý hovor dostatečně rychle a spolehlivě, aby telefon a věž znovu použily klíč?
  4. I když se systémy znovu zakódují, můžete skutečně znát nešifrovaný obsah druhého hovoru - vzhledem k tomu, že věci jako kodeky a překódování mohou zcela změnit (bit po bitu) obsah tohoto druhého hovoru, i když máte přístup k "bitům" „z vašeho útočného telefonu?

Práce ReVoLTE na některé z těchto otázek odpovídá kladně. Autoři používají komerční softwarově rekonfigurovatelný radio stream sniffer tzv Airscope k zachycení hovoru VoLTE ze strany stahování. (Myslím, že pouhé seznámení se softwarem a získání přibližné představy o tom, jak funguje, zkrátilo chudým postgraduálním studentům měsíce života – což je pro tento druh akademického výzkumu typické).

Výzkumníci zjistili, že aby opětovné použití klíče fungovalo, druhý hovor musel proběhnout dostatečně rychle po skončení prvního, ale ne příliš rychle – asi deset sekund pro operátory, se kterými experimentovali. Naštěstí je jedno, zda uživatel hovor během této doby přijme – „prozvonění“ tzn. Samotné připojení SIP nutí operátora znovu použít stejný klíč.

Mnoho z nejhorších problémů se tedy točí kolem problému (4) - přijímání bitů nešifrovaného obsahu hovoru iniciovaného útočníkem. Je to proto, že se s vaším obsahem může stát hodně, když putuje z telefonu útočníka do telefonu oběti přes mobilní síť. Například takové špinavé triky, jako je překódování zakódovaného audio streamu, které zvuk ponechá stejný, ale zcela změní jeho binární reprezentaci. Sítě LTE také používají kompresi hlavičky RTP, která může výrazně změnit velkou část paketu RTP.

Nakonec by pakety odeslané útočníkem měly být zhruba v souladu s pakety odeslanými během prvního telefonního hovoru. To může být problematické, protože úprava ticha během telefonního hovoru má za následek kratší zprávy (aka komfortní hluk), které nemusí dobře zapadat do původního hovoru.

Sekce "útok v reálném světě" Stojí za to si to podrobně přečíst. Řeší mnoho z výše uvedených problémů – autoři zejména zjistili, že některé kodeky nejsou překódovány a že lze obnovit přibližně 89 % binární reprezentace cílového volání. To platí pro minimálně dva evropské operátory, kteří byli testováni.

To je překvapivě vysoká úspěšnost a upřímně řečeno mnohem vyšší, než jsem očekával, když jsem začal pracovat na tomto dokumentu.

Co tedy můžeme udělat, abychom to napravili?

Okamžitá odpověď na tuto otázku je velmi jednoduchá: protože podstatou zranitelnosti je útok na opětovné použití (reinstalaci) klíče, jednoduše problém vyřešte. Ujistěte se, že pro každý telefonní hovor získáte nový klíč a nikdy nedovolte, aby počítadlo paketů vynulovalo počítadlo pomocí stejného tlačítka. Problém je vyřešen!

Nebo možná ne. To bude vyžadovat aktualizaci velkého množství zařízení a upřímně řečeno, taková oprava sama o sobě není super spolehlivá. Bylo by hezké, kdyby standardy dokázaly najít bezpečnější způsob implementace svých režimů šifrování, který by ve výchozím nastavení nebyl katastroficky zranitelný vůči takovým problémům s opětovným použitím klíčů.

Jednou z možných možností je použití režimy šifrování, ve kterých zneužití nonce nevede ke katastrofickým následkům. To může být pro některý současný hardware příliš drahé, ale je to určitě oblast, na kterou by měli návrháři v budoucnu myslet, zvláště když se standardy 5G chystají převzít svět.

Tato nová studie také vyvolává obecnou otázku proč ty samé zatracené útoky se neustále objevují v jednom standardu za druhým, z nichž mnohé používají velmi podobné návrhy a protokoly. Když se potýkáte s problémem přeinstalace stejného klíče napříč více široce používanými protokoly, jako je WPA2, nemyslíte, že by mohl být čas, aby byly vaše specifikace a testovací postupy robustnější? Přestaňte se chovat k implementátorům norem jako k ohleduplným partnerům, kteří jsou pozorní k vašim varováním. Zacházejte s nimi jako s (neúmyslnými) protivníky, kteří nevyhnutelně pokazí věci.

Nebo můžeme udělat to, co společnosti jako Facebook a Apple stále více dělají: zajistit šifrování hlasových hovorů na vyšší úrovni síťového zásobníku OSI, aniž bychom se spoléhali na výrobce mobilních zařízení. Mohli bychom dokonce prosadit šifrování hlasových hovorů typu end-to-end, jako to dělá WhatsApp se Signal a FaceTime, za předpokladu, že americká vláda prostě zastaví podraz nás. Pak by (s výjimkou některých metadat) mnoho z těchto problémů jednoduše zmizelo. Toto řešení je zvláště důležité ve světě, kde dokonce ani vlády si nejsou jisté, zda důvěřují svým dodavatelům zařízení.

Nebo můžeme jednoduše udělat to, co už udělaly naše děti: přestat odpovídat na ty otravné hlasové hovory.

Zdroj: www.habr.com

Přidat komentář