Útok týždňa: hlasové hovory v LTE (ReVoLTE)

Od prekladateľa a TL;DR

  1. TL;DR:

    Zdá sa, že VoLTE je ešte horšie chránené ako prvé Wi-Fi klientske aplikácie s WEP. Výlučne architektonický prešľap, ktorý umožňuje trochu poXOR-ovať prevádzku a obnoviť kľúč. Útok je možný, ak ste blízko osoby, ktorá telefonuje, a tá často uskutočňuje hovory.

  2. Ďakujem za tip a TL;DR Klukonin

  3. Vedci vytvorili aplikáciu na zistenie, či je váš operátor zraniteľný, viac informácií tu. Podeľte sa v komentároch o výsledky, v mojom regióne je na Megafone VoLTE vypnuté.

O autorovi

Matthew Green.

Som kryptograf a profesor na Johns Hopkins University. Vyvíjal a analyzoval som kryptografické systémy, ktoré sa používajú v bezdrôtových sieťach, platobných systémoch a platformách na ochranu digitálneho obsahu. Vo svojich výskumoch skúmam rôzne spôsoby využitia kryptografie na zvýšenie úrovne súkromia používateľov.

Už dlho som nenapísal príspevok formátu „útok týždňa“, a to ma frustrovalo. Nie preto, že by nejaké útoky neboli, ale hlavne preto, že nebol útok na niečo dostatočne rozšírené, aby ma dostal z kreatívnej krízy.

Ale dnes som narazil na zaujímavý útok s názvom ReVoLTE na protokoly, ktorých hackovanie ma obzvlášť teší, a to protokoly mobilných sietí (voice over) LTE. Som nadšený práve z týchto protokolov – a z tohto nového útoku – pretože veľmi zriedka môžete sledovať hackovanie skutočných protokolov a implementácií mobilných sietí. Hlavne preto, že tieto štandardy boli vyvinuté v zadymených miestnostiach a zdokumentované v 12000-stranových dokumentoch, ktoré nedokáže prečítať každý výskumník. Navyše implementácia týchto útokov núti výskumníkov používať zložité rádiové protokoly.

Takže vážne kryptografické zraniteľnosti sa môžu rozšíriť po celom svete a možno ich budú používať len vlády, skôr než si ich nejaký výskumník všimne. Ale občas sú výnimky a dnešný útok je jednou z nich.

Autori útoky: David Rupprecht, Katharina Kohls, Thorsten Holz a Christina Pöpper z Ruhr Universität Bochum a New York University Abu Dhabi. Toto je vynikajúci útok na reinštaláciu kľúča v hlasovom protokole, ktorý pravdepodobne už používate (ak predpokladáme, že patríte k staršej generácii, ktorá sa ešte stále telefonuje pomocou mobilného telefónu).

Na začiatok – stručný historický prehľad.

Čo je to LTE a VoLTE?

Základy našich súčasných štandardov mobilnej telefónie sa položili v Európe už v 80. rokoch minulého storočia štandardom Global System for Mobile (Globálny systém mobilnej komunikácie). GSM bol prvým základným štandardom digitálnej mobilnej telefónie, ktorý zaviedol rad revolučných funkcií, ako je používanie šifrovania na ochranu telefónnych hovorov. Počiatočný GSM bol vyvinutý predovšetkým na hlasovú komunikáciu, hoci za poplatok bolo možné prenášať aj iné dáta.

Ako sa v mobilnej komunikácii zvyšovala dôležitosť prenosu dát, boli vyvinuté štandardy Long Term Evolution (LTE) na zefektívnenie tohto typu komunikácie. LTE vychádza z skupiny starších štandardov, ako sú GSM, EDGE a HSPA a je určené na zvýšenie rýchlosti prenosu dát. V tejto oblasti je veľa brandingu a zavádzajúceho označovania, ale TL;DR je, že LTE je systém prenosu dát, ktorý slúži ako most medzi starými protokolmi prenosu dát a budúcimi technológiami mobilného prenosu dát. 5G.

Samozrejme, história nám hovorí, že akonáhle bude dosť (IP) šírky pásma, také pojmy ako „hlas“ a „dáta“ začnú aby sa rozmazávali. To isté platí aj pre súčasné mobilné protokoly. Aby bol tento prechod plynulejší, štandardy LTE definujú Voice-over-LTE (VoLTE), čo je IP štandard na prenos hlasových hovorov priamo cez dátovú rovinu systému LTE, úplne obchádzajúc spínanú časť mobilnej siete. Rovnako ako v prípade štandardných VoIP hovorov, VoLTE hovory môžu byť terminované mobilným operátorom a pripojené k bežnej telefónnej sieti. Alebo (čo sa stáva čoraz častejšie) môžu byť smerované priamo od jedného mobilného klienta k druhému, a to aj medzi rôznymi poskytovateľmi.

Ako štandardná VoIP, VoLTE je založená na dvoch populárnych protokoloch typu IP: protokole na iniciáciu relácie (Session Initiation Protocol – SIP) na vytváranie hovorov, a transportnom protokole v reálnom čase (Real Time Transport Protocol, ktorý by sa mal nazývať RTTP, ale v skutočnosti sa nazýva RTP) na spracovanie hlasových dát. VoLTE tiež pridáva niektoré ďalšie optimalizácie šírky pásma, ako je kompresia hlavičiek.

Dobre, akú to má súvislosť so šifrovaním?

LTE, podobne ako GSM, má štandardnú sadu kryptografických protokolov na šifrovanie paketov počas ich prenosu vzduchom. Tieto sú hlavne určené na ochranu vašich dát počas ich pohybu medzi telefónom (nazývaným 'užívateľské zariadenie', alebo UE) a mobilnou vežou (alebo kdekoľvek, kde sa poskytovateľ rozhodne terminovať spojenie). To sa deje preto, že mobilní poskytovatelia považujú externé odpočúvacie zariadenia za nepriateľov. Nuž, samozrejme.

(Avšak fakt, že pripojenia VoLTE môžu prebiehať priamo medzi klientmi v rôznych sieťach poskytovateľov, znamená, že samotný protokol VoLTE má niektoré ďalšie a voliteľné protokoly šifrovania, ktoré môžu prebiehať na vyšších sieťových úrovniach. To sa netýka aktuálneho článku, okrem faktu, že môžu všetko pokaziť. Krátko sa o nich budeme rozprávať neskôr).

Historicky malo šifrovanie v GSM mnoho slabých miest: slabé šifry, protokoly, v ktorých sa iba telefón autentizoval na veži (to znamená, že útočník mohol predstierať, že je veža, čím vytváral „Stingray“) a podobne. LTE opravilo mnohé z očividných chýb, pričom stále zachovalo veľkú časť predchádzajúcej štruktúry.

Začnime s samotným šifrovaním. Ak predpokladáme, že vytvorenie kľúča už prebehlo — a o tom budeme hovoriť o chvíľu — každý dátový paket je šifrovaný pomocou režimu šifrovania toku s pomocou akéhosi šifry nazývanej 'EEA' (ktorá môže byť v praxi realizovaná pomocou takých vecí, ako je AES). V podstate je tu mechanizmom šifrovania CTR, ako je znázornené nižšie:

Útok týždňa: hlasové hovory v LTE (ReVoLTE)
Hlavný algoritmus šifrovania VoLTE paketov (zdroj: ReVoLTE). EEA – šifrovanie, „COUNT“ – 32-bitový čítač, „BEARER“ – jedinečný identifikátor relácie, ktorý oddeľuje VoLTE pripojenia a bežný internetový prenos. „DIRECTION“ určuje, ktorým smerom prenos ide – od UE k vysielaču alebo naopak.

Keďže samotný algoritmus šifrovania (EEA) môže byť realizovaný pomocou silného šifrovania ako AES, je nepravdepodobné, že by na samotný šifrovací mechanizmus došlo k priamemu útoku, ako to bolo v časoch GSM.Avšak jasné je, že aj pri silnom šifrovaní táto šifrovacia schéma predstavuje vynikajúci prostriedok na samovraždu.

Konkrétne: v štandarde LTE sa používa (neautentifikovaný) prúdový šifrovací mechanizmus s režimom, ktorý bude mimoriadne zraniteľný, ak sa čítač – a iné vstupy ako „bearer“ a „direction“ – niekedy znovu použijú. V modernej terminológii sa tento pojem nazýva „útok na opätovné použitie nonce“, ale potenciálne riziká nie sú nič nové. Sú známe a staré, siahajúce až do časov glam metalu a dokonca diska.

Útok týždňa: hlasové hovory v LTE (ReVoLTE)
Útoky na opätovné použitie nonce v móde CTR existovali už vtedy, keď sa Poison stalo populárnym.

Spravodlivo povedané, v štandardoch LTE sa uvádza: „Nepoužívajte tieto čítače opakovane, prosím.“ Ale štandardy LTE majú približne 7000 strán a je to v podstate to isté, ako žiadať deti, aby sa nehrali so zbraňou. Nevyhnutne to urobia a stane sa niečo hrozné. V tomto prípade je spúšťacou zbraňou útok na opätovné použitie toku kľúčov, v ktorom sú dva rôzne tajné správy XOR-ované s tými istými bajtmi toku kľúčov. Je známe, že to mimoriadne deštruktívne ovplyvňuje dôvernosť správ..

Čo je to ReVoLTE?

Útok ReVoLTE demonštruje, že v praxi je táto veľmi zraniteľná konštrukcia šifrovania nesprávne použitá skutočným hardvérom. Konkrétne autori analyzujú skutočné hovory VoLTE uskutočnené pomocou komerčného hardvéru a ukazujú, že môžu zaútočiť použitím niečoho, čo sa nazýva „útok na opätovné nainštalovanie kľúča“. (Veľká zásluha za odhalenie tohto problému patrí Reizovi a Lu. (Raza & Lu), ktorí prvýkrát poukázali na potenciálnu zraniteľnosť. Ale štúdie ReVoLTE ju premieňajú na praktický útok).

Dovoľte mi, aby som vám v skratke ukázal podstatu útoku, hoci by ste mali pozrieť aj pôvodný dokument.

Môžeme predpokladať, že hneď ako LTE nadviaže pripojenie na prenos dát, úloha prenosu hlasu cez LTE sa stáva len otázkou smerovania hlasových paketov cez toto pripojenie spolu so všetkým ostatným vaším prenosom. Inými slovami, VoLTE bude koncept, ktorý existuje len nad 2. úrovňou [modely OSI – napr. z.]. Nie je to úplne tak.

V skutočnosti kanálová úroveň LTE zavádza pojem „bearer“. Bearer sú jednotlivé identifikátory relácií, ktoré rozdeľujú rôzne typy paketového prenosu. Bežný internetový prenos (váš Twitter a Snapchat) prebieha cez jeden bearer. Signalizácia SIP pre VoIP ide cez iný, zatiaľ čo pakety hlasového prenosu sa spracovávajú na treťom. Nie som veľmi zbehlý v mechanizmoch rádiových kanálov a sieťovom smerovaní LTE, ale predpokladám, že je to takto nastavené, pretože siete LTE chcú zabezpečiť fungovanie mechanizmov QoS (kvality služby), aby rôzne toky paketov boli spracovávané s rôznymi úrovňami priority: teda vaše druhotriedne TCP spojenia s Facebookom môžu mať nižšiu prioritu ako vaše hlasové hovory v reálnom čase.

V podstate to nie je problém, ale dôsledky sú nasledovné. Kľúče na šifrovanie LTE sa vytvárajú oddelene zakaždým pri nastavení nového „bearer“. V zásade by sa to malo diať znovu zakaždým, keď uskutočníte nový telefónny hovor. To povedie k tomu, že pre každý hovor sa použije iný šifrovací kľúč, čo vylučuje možnosť opätovného použitia rovnakého kľúča na šifrovanie dvoch rôznych súborov paketov hlasových hovorov. Skutočne, štandard LTE hovorí niečo ako „musíte používať rôzne kľúče zakaždým, keď nastavujete nový bearer na spracovanie nového telefónneho hovoru“. Ale to neznamená, že sa to naozaj deje.

V skutočnosti v reálnych realizáciách dva rôzne volania, ktoré sa uskutočňujú v bezprostrednej časovej blízkosti, budú používať ten istý kľúč — aj keď medzi nimi sú nastavené nové (rovnomenne nazvané) bearer. Jediná praktická zmena, ktorá sa deje medzi týmito volaniami, je, že počítadlo šifrovania sa resetuje na nulu. V literatúre sa to niekedy nazýva útokom na preinštaláciu kľúča. Môže sa argumentovať, že v podstate ide o chybu implementácie, hoci v tomto prípade sa riziká, ako sa zdá, vo veľkej miere odvodzujú od samotného štandardu.

V praxi tento útok vedie k opätovnému použitiu šifrovacieho toku, kde útočník môže získať zašifrované pakety $inline$C_1 = M_1 oplus KS$inline$ a $inline$C_2 = M_2 oplus KS$inline$, čo umožňuje vypočítať $inline$C_1 oplus C_2 = M_1 oplus M_2$inline$. Ešte lepšie je, ak útočník pozná jedno z $inline$M_1$inline$ alebo $inline$M_2$inline$, môže okamžite obnoviť druhé. To mu dáva silnú motiváciu zistiť jednu z dvoch nezašifrovaných komponentov.

To nás privádza k úplnému a najefektívnejšiemu scenáru útoku. Predstavme si útočníka, ktorý môže odpočúvať rádiový prenos medzi cieľovým telefónom a mobilnou veží a ktorý akýmsi zázrakom "mohol mať šťastie" zaznamenať dva rôzne hovory, kde druhý sa uskutoční hneď po prvom. Teraz si predstavte, že akýmkoľvek spôsobom môže uhádnuť nezašifrovaný obsah jedného z hovorov. Pri takomto šťastnom náhodnom zistení náš útočník môže úplne dešifrovať prvý hovor jednoducho použitím XOR medzi dvoma sadami paketov.

Samozrejme, šťastie tu nie je na mieste. Pretože telefóny sú určené na prijímanie hovorov, útočník, ktorý dokáže počúvať prvý hovor, bude schopný iniciovať aj druhý hovor presne v momente, keď prvý skončí. Tento druhý hovor, v prípade opätovného použitia toho istého šifrovacieho kľúča so resetovaným počítadlom na nulu, umožní obnoviť nezašifrované dáta. Ďalej, pretože náš útočník skutočne ovláda dáta počas druhého hovoru, môže obnoviť obsah prvého hovoru – vďaka rôznym špecificky implementovaným drobnostiam, ktoré sú na jeho strane.

Tu je znázornenie celkového plánu útoku, prevzaté z pôvodného dokumentu:

Útok týždňa: hlasové hovory v LTE (ReVoLTE)
Prehľad útoku z dokumentu ReVoLTE. Tento diagram predpokladá, že prebiehajú dva rôzne hovory s použitím toho istého kľúča. Útočník ovláda pasívny sniffer (vľavo hore), ako aj druhý telefón, pomocou ktorého môže uskutočniť druhý hovor na telefón obete.

Ako naozaj útok funguje?

Na jednej strane je to naozaj hlavná otázka pre článok o ReVoLTE. Teoreticky sú všetky vyššie uvedené myšlienky vynikajúce, ale zostáva veľa otázok. Napríklad:

  1. Je možné (akademickým výskumníkom) skutočne zachytiť VoLTE spojenie?
  2. Naozaj skutočné LTE systémy preinštalovávajú kľúče?
  3. Môžete naozaj iniciovať druhý hovor dostatočne rýchlo a spoľahlivo, aby telefón a veža znovu použili kľúč?
  4. Aj keď systémy preinštalovávajú kľúče, môžete naozaj získať nešifrovaný obsah druhého hovoru – berúc do úvahy, že veci ako kodeky a prekodovanie môžu úplne zmeniť (bitové) obsahy tohto druhého hovoru, aj keď máte prístup k „bitom“, ktoré pochádzajú z vášho útočníckeho telefónu?

Na niektoré z týchto otázok práca ReVoLTE odpovedá kladne. Autori používajú komerčný softvérovo rekonfigurovateľný sniffer rádiového prúdu s názvom Airscope na zachytenie VoLTE hovoru zo strany zostupnej linky. (Myslím, že jednoduché ovládanie softvéru a približné pochopenie toho, ako to funguje, zabralo mesiacov života chudákom postgraduálom - čo je typické pre takéto akademické výskumy).

Výskumníci zistili, že na aktiváciu opätovného použitia kľúča musí druhý hovor prebehnúť dosť rýchlo po dokončení prvého, ale nie príliš – asi po desiatich sekundách pre operátorov, s ktorými experimentovali. Našťastie nezáleží na tom, či používateľ zdvihne hovor v tomto čase – „hovor“, t.j. samotná SIP komunikácia núti operátora opätovne použiť ten istý kľúč.

Mnohé z najzávažnejších problémov súvisia s problémom (4) – získaním bitov nezašifrovaného obsahu hovoru, ktorý inicioval útočník. Dôvodom je, že s vaším obsahom sa môže veľa vecí prihodiť, kým sa prenáša z telefónu útočníka na telefón obete prostredníctvom mobilnej siete. Napríklad praktiky ako prekodovanie zakódovaného zvukového toku, ktoré ponecháva zvuk nezmenený, ale úplne mení jeho binárnu reprezentáciu. V LTE sieťach sa tiež používa kompresia hlavičiek RTP, ktorá môže významne ovplyvniť väčšinu RTP paketov.

Nakoniec musia byť pakety odoslané útočníkom približne v jednej línii s paketmi, ktoré boli odoslané počas prvého telefonátu. Môže to byť problematické, pretože modifikácia ticha počas telefonátu vedie k kratším správam (tzv. komfortný hluk), ktoré sa môžu zlúčiť so pôvodným hovorom.

Sekcia „reálne svetové útoky“ stoji za to si prečítať vo všetkých detailoch. Venuje sa mnohým z vyššie uvedených problémov – najmä autori zistili, že niektoré kodeky nie sú prekodované a že približne 89% binárnej reprezentácie cieľového hovoru môže byť obnovených. To platí minimálne pre dvoch európskych operátorov, ktorí boli testovaní.

Je to neuveriteľne vysoká miera úspechu a úprimne povedané, oveľa vyššia, než som očakával, keď som začal pracovať na tomto dokumente.

Čo môžeme urobiť pre nápravu?

Okamžitá odpoveď na túto otázku je veľmi jednoduchá: pretože podstatou zraniteľnosti je útok na opätovné použitie (reinštaláciu) kľúča, jednoducho napravte tento problém. Uistite sa, že pre každý telefonát je získaný nový kľúč, a nikdy nedovoľte, aby čítač paketov resetoval počítadlo späť na nulu pomocou toho istého kľúča. Problém je vyriešený!

Možno, že nie. Na to bude potrebná modernizácia veľkého množstva vybavenia a úprimne povedané, samotná taká oprava nie je veľmi spoľahlivá. Bolo by fajn, keby štandardy dokázali nájsť bezpečnejší spôsob, ako realizovať svoje šifrovacie režimy, ktorý nie je predvolene katastrofálne zraniteľný voči problémom s opätovným použitím kľúčov.

Jedným z možných riešení je použitie šifrovacích režimov, kde nevhodné použitie nonce nevedie k katastrofálnym následkom.To môže byť pre niektoré moderné hardvérové prostriedky príliš drahé, ale určite je to smer, ktorým by sa mali návrhári zamyslieť v budúcnosti, najmä keď štandardy 5G čoskoro ovládnu svet.

Tento nový výskum taktiež zdvíha celkovú otázku, prečo tie isté prekliate útoky naďalej pretrvávajú v jednom štandarde za druhým,mnohé z nich používajú veľmi podobné konštrukcie a protokoly. Keď narazíte na problém opätovnej inštalácie toho istého kľúča v niekoľkých široko používaných protokoloch, ako je WPA2, nemyslíte si, že možno prišiel čas spraviť vaše špecifikácie a testovacie postupy spoľahlivejšími? Už stačilo zaobchádzať s implementátormi štandardov ako s premýšľajúcimi partnermi citlivými na vaše varovania. Zaobchádzajte s nimi ako s (neúmyselnými) protivníkmi, ktorí nevyhnutne všetko implementujú nesprávne.

Alebo, ako alternatíva, môžeme spraviť to, čo čoraz častejšie robia spoločnosti ako Facebook a Apple: zabezpečiť, aby šifrovanie hlasových hovorov prebiehalo na vyššej úrovni sieťového zásobníka OSI, nespoliehajúc sa na výrobcov mobilného hardvéru. Môžeme dokonca propagovať end-to-end šifrovanie hlasových hovorov, ako to robia WhatsApp so Signal a FaceTime, s predpokladom, že vláda USA jednoducho prestane spriečiť nám na nohy.Potom (okrem niektorých metadát) by mnohé z týchto problémov jednoducho zmizli. Toto riešenie je obzvlášť aktuálne v svete, kde ani vlády si nie sú isté, či dôverujú svojim dodávateľom hardvéru..

Alebo môžeme jednoducho robiť to, čo už urobili naše deti: prestať odpovedať na tieto otravné hlasové hovory.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster