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

Od prekladateľa a TL;DR

  1. TL; DR:

    Zdá sa, že VoLTE dopadlo ešte horšie chránené ako prví Wi-Fi klienti s WEP. Výhradne architektonický nesprávny výpočet, ktorý vám umožňuje trochu XORovať premávku a obnoviť kľúč. Útok je možný, ak ste blízko volajúceho a často telefonuje.

  2. Ďakujem za tip a TL; DR Klukonin

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

O autorovi

Matúš Green.

Som kryptograf a profesor na Johns Hopkins University. Navrhol som a analyzoval kryptografické systémy používané v bezdrôtových sieťach, platobných systémoch a platformách zabezpečenia digitálneho obsahu. Vo svojom výskume sa zaoberám rôznymi spôsobmi použitia kryptografie na zlepšenie súkromia používateľov.

Už je to nejaký čas, čo som napísal formát príspevku "útok týždňa"a naštvalo ma to. Nie preto, že by tam neboli útoky, ale hlavne preto, že tam nebol útok na niečo, čo je dostatočne široko používané, aby som sa dostal zo spisovateľského bloku.

Ale dnes som narazil zaujímavý útok s názvom ReVoLTE pre protokoly, z ktorých hackingu som obzvlášť nadšený, a to protokoly celulárnej siete (voice over) LTE. Som nadšený z týchto konkrétnych protokolov - a tohto nového útoku -, pretože je veľmi zriedkavé vidieť skutočné protokoly a implementácie celulárnej siete, ktoré sú hacknuté. Predovšetkým preto, že tieto štandardy boli vyvinuté v zadymených miestnostiach a zdokumentované v 12000 XNUMX-stranových dokumentoch, s ktorými si nie každý výskumník poradí. Implementácia týchto útokov navyše núti výskumníkov používať zložité rádiové protokoly.

Vážne kryptografické zraniteľnosti by sa teda mohli rozšíriť po celom svete, možno len preto, aby ich mohli využiť vlády skôr, než si ich všimne nejaký výskumník. Ale z času na čas sa nájdu výnimky a dnešný útok je jednou z nich.

Autori útokovPrispievatelia: David Rupprecht, Katharina Kohls, Thorsten Holz a Christina Pöpper z Ruhr-University Bochum a New York University Abu Dhabi. Ide o skvelý útok na preinštalovanie kľúča v hlasovom protokole, ktorý už pravdepodobne používate (za predpokladu, že ste zo staršej generácie, ktorá stále telefonuje pomocou mobilného telefónu).

Na úvod krátky historický exkurz.

Čo sú LTE a VoLTE?

Základ našich moderných štandardov mobilnej telefónie položil v Európe už v 80. rokoch štandard Globálny systém pre mobilné zariadenia (Globálny systém pre mobilnú komunikáciu). GSM bol prvý hlavný štandard digitálnej mobilnej telefónie, ktorý zaviedol množstvo revolučných funkcií, ako napríklad použitie šifrovanie na ochranu telefónnych hovorov. Skorý GSM bol navrhnutý predovšetkým pre hlasovú komunikáciu, aj keď peniaze mohli byť prenášať iné údaje.

Keďže prenos dát sa stal dôležitejším v celulárnej komunikácii, boli vyvinuté štandardy Long Term Evolution (LTE), ktoré zefektívnili tento typ komunikácie. LTE je založené na skupine starších štandardov ako GSM, EDGE и HSPA a je navrhnutý tak, aby zvýšil rýchlosť výmeny dát. Existuje veľa značiek a zavádzajúce nesprávnym označenímale TL;DR je, že LTE je systém prenosu dát, ktorý slúži ako most medzi staršími paketovými dátovými protokolmi a budúcimi celulárnymi dátovými technológiami. 5G.

História nám samozrejme hovorí, že keď bude k dispozícii dostatočná šírka pásma (IP), pojmy ako „hlas“ a „dáta“ sa začnú rozmazávať. To isté platí pre moderné mobilné protokoly. Aby bol tento prechod plynulejší, definujú LTE štandardy Voice-over-LTE (VoLTE), čo je štandard IP na prenos hlasových hovorov priamo cez dátovú rovinu LTE, čím sa úplne obchádza časť celulárnej siete s vytáčaným pripojením. Rovnako ako pri štandarde VoIP hovory,VoLTE hovory môže mobilný operátor ukončiť a pripojiť k bežnej telefónnej sieti. Alebo (ako sa stáva čoraz bežnejším) oni možno smerovať priamo od jedného mobilného klienta k druhému a dokonca aj medzi rôznymi poskytovateľmi.

Podobne ako štandardné VoIP, aj VoLTE je založené na dvoch populárnych protokoloch založených na IP: Session Initiation Protocol (Protokol o začatí relácie – SIP) na nastavenie hovoru a prenosový protokol v reálnom čase (Transportný protokol v reálnom čase, ktorý by sa mal nazývať RTTP, ale v skutočnosti sa nazýva RTP) na spracovanie hlasových údajov. VoLTE tiež pridáva niektoré ďalšie optimalizácie šírky pásma, ako je kompresia hlavičky.

Dobre, čo to má spoločné so šifrovaním?

LTE, podobne GSM, má štandardnú sadu kryptografických protokolov na šifrovanie paketov pri ich prenose vzduchom. Sú určené hlavne na ochranu vašich údajov pri ich prenose medzi telefónom (nazývaným používateľské zariadenie alebo UE) a mobilnou vežou (alebo kdekoľvek, kde sa váš poskytovateľ rozhodne ukončiť pripojenie). Je to preto, že poskytovatelia mobilných služieb považujú externé odpočúvacie zariadenia za nepriateľov. No, samozrejme.

(Skutočnosť, že pripojenia VoLTE môžu prebiehať priamo medzi klientmi v sieťach rôznych poskytovateľov, však znamená, že samotný protokol VoLTE má niektoré dodatočné a voliteľné šifrovacie protokoly, ktoré sa môžu vyskytovať na vyšších sieťových vrstvách. Toto nie je relevantné pre aktuálny článok, okrem skutočnosti, že môžu všetko pokaziť (stručne si o nich povieme nabudúce).

Historicky bolo šifrovanie v GSM veľa slabých miest: zlý šifry, protokoly, v ktorých bol do veže overený iba telefón (čo znamená, že útočník sa mohol vydávať za vežu a generovať "Stingray") a tak ďalej. LTE opravilo mnoho zjavných chýb pri zachovaní veľkej časti rovnakej štruktúry.

Začnime so samotným šifrovaním. Za predpokladu, že k vytvoreniu kľúča už došlo – a o tom si povieme o minútu – potom sa každý paket údajov zašifruje pomocou šifrovania toku pomocou niečoho, čo sa nazýva „EEA“ (čo sa v praxi dá implementovať pomocou vecí ako AES ). V podstate je tu mechanizmus šifrovania CTRako je uvedené nižšie:

Útok týždňa: hlasové hovory cez LTE (ReVoLTE)
Hlavný šifrovací algoritmus pre pakety VoLTE (zdroj: ReVoLTE). EEA je šifra, „COUNT“ je 32-bitové počítadlo, „BEARER“ je jedinečný identifikátor relácie, ktorý oddeľuje pripojenia VoLTE od bežnej internetovej prevádzky. "DIRECTION" označuje, ktorým smerom prúdi prevádzka - z UE do veže alebo naopak.

Keďže samotný šifrovací algoritmus (EEA) môže byť implementovaný pomocou silnej šifry, ako je AES, je nepravdepodobné, že dôjde k priamemu útoku na samotnú šifru, ako je tento stalo v časoch GSM. Je však jasné, že aj pri silnej šifre je táto šifrovacia schéma skvelým spôsobom, ako si vystreliť.

Konkrétne: štandard LTE používa (neoverenú) prúdovú šifru s režimom, ktorý bude extrémne zraniteľný, ak sa počítadlo - a ďalšie vstupy, ako napríklad "nosič" a "smer" - niekedy znova použijú. V modernom jazyku je termín pre tento koncept „útok s opakovaným použitím“, ale potenciálne riziká tu nie sú niečo moderné. Sú slávne a starodávne, pochádzajú z čias glam metalu a dokonca aj diskotéky.

Útok týždňa: hlasové hovory cez LTE (ReVoLTE)
Útoky na jednorazové opätovné použitie v režime CTR existovali aj vtedy, keď sa Poison stal známym

Aby sme boli spravodliví, štandardy LTE hovoria: "Nepoužívajte tieto merače znova." Ale štandardy LTE majú okolo 7000 strán a v každom prípade je to ako prosiť deti, aby sa nehrali so zbraňou. Nevyhnutne budú a budú sa diať hrozné veci. Strieľacou pištoľou je v tomto prípade útok opätovného použitia kľúčového prúdu, pri ktorom dve rôzne dôverné správy XOR rovnaké bajty kľúčového prúdu. Je známe, že toto má veľmi deštruktívny vplyv na dôvernosť komunikácie.

Čo je ReVoLTE?

Útok ReVoLTE dokazuje, že v praxi je tento veľmi zraniteľný dizajn šifrovania zneužitý hardvérom v reálnom svete. Konkrétne autori analyzujú skutočné hovory VoLTE uskutočnené pomocou komerčného zariadenia a ukazujú, že môžu použiť niečo, čo sa nazýva „útok na preinštalovanie kľúčov“. (Veľká zásluha za nájdenie tohto problému patrí Reise a Lu (Raza & Lu), ktorí ako prví upozornili na potenciálnu zraniteľnosť. Výskum ReVoLTE to však mení na praktický útok).

Dovoľte mi, aby som vám stručne ukázal podstatu útoku, hoci by ste sa mali pozrieť a zdrojový dokument.

Dalo by sa predpokladať, že akonáhle LTE vytvorí paketové dátové spojenie, úloha prenosu hlasu cez LTE sa stane len záležitosťou smerovania hlasových paketov cez toto spojenie spolu so zvyškom vašej prevádzky. Inými slovami, VoLTE bude konceptom, ktorý existuje iba v minulosti Úroveň 2 [modely OSI – približne.]. Nie je to celkom pravda.

Linková vrstva LTE v skutočnosti zavádza pojem „nosič“. Nosiče sú samostatné identifikátory relácie, ktoré oddeľujú rôzne typy paketovej prevádzky. Bežný internetový prenos (váš Twitter a Snapchat) prechádza jedným nosičom. Signalizácia SIP pre VoIP prechádza cez ďalšiu a pakety hlasovej prevádzky sa spracúvajú cez tretiu. Nie som veľmi oboznámený s mechanizmami LTE rádia a sieťového smerovania, ale verím, že sa to robí týmto spôsobom, pretože siete LTE chcú presadiť mechanizmy QoS (kvalita služieb), aby sa rôzne paketové toky spracovávali na rôznych úrovniach priority: t.j. tvoj druhotriedne TCP pripojenia k Facebooku môžu mať nižšiu prioritu ako vaše hlasové hovory v reálnom čase.

Vo všeobecnosti to nie je problém, ale dôsledky sú nasledovné. Kľúče pre šifrovanie LTE sa vytvárajú samostatne pri každej inštalácii nového „nosiča“. V podstate by sa to malo opakovať pri každom novom telefonáte. To bude mať za následok, že pre každý hovor sa použije iný šifrovací kľúč, čím sa eliminuje možnosť opätovného použitia rovnakého kľúča na šifrovanie dvoch rôznych sád paketov hlasových hovorov. V skutočnosti štandard LTE hovorí niečo ako „zakaždým, keď si inštalujete nový nosič, aby ste zvládli nový telefónny hovor, mali by ste použiť iný kľúč“. To však neznamená, že sa to skutočne deje.

V skutočnosti v realizácii v reálnom živote budú dva rôzne hovory vyskytujúce sa v tesnej časovej blízkosti používať rovnaký kľúč – napriek skutočnosti, že medzi nimi sú nakonfigurovaní noví nositelia rovnakého mena. Jedinou praktickou zmenou, ktorá nastane medzi týmito hovormi, je vynulovanie počítadla šifrovania. V literatúre sa to niekedy nazýva útok na preinštalovanie kľúčov. Niekto by mohol namietať, že ide v podstate o chybu implementácie, hoci v tomto prípade sa zdá, že riziká do značnej miery vyplývajú zo samotnej normy.

V praxi má tento útok za následok opätovné použitie toku kľúčov, 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 výpočet $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Ešte lepšie je, ak útočník pozná jeden z $inline$M_1$inline$ alebo $inline$M_2$inline$, potom môže okamžite obnoviť ten druhý. To mu dáva silný stimul zistite jeden z dvoch nešifrovaných komponentov.

Tým sa dostávame ku kompletnému a najefektívnejšiemu scenáru útoku. Uvažujme o útočníkovi, ktorý dokáže zachytiť rádiovú prevádzku medzi cieľovým telefónom a mobilnou vežou a ktorý má nejaké to šťastie, že zaznamená dva rôzne hovory, pričom k druhému dôjde hneď po prvom. Teraz si predstavte, že by mohol nejakým spôsobom uhádnuť nezašifrovaný obsah jedného z hovorov. S takými náhodnosť náš útočník dokáže úplne dešifrovať prvé volanie pomocou jednoduchého XOR medzi dvoma sadami paketov.

Samozrejme, šťastie s tým nemá nič spoločné. Keďže telefóny sú navrhnuté tak, aby prijímali hovory, útočník, ktorý začuje prvý hovor, bude môcť začať druhý hovor presne v momente, keď sa prvý hovor skončí. Toto druhé volanie, ak sa znova použije rovnaký šifrovací kľúč s počítadlom vynulovaným, umožní obnovenie nezašifrovaných údajov. Navyše, keďže náš útočník v skutočnosti kontroluje údaje počas druhého hovoru, môže obnoviť obsah prvého hovoru - vďaka mnohým špecificky implementovaným malé veci, hrá na jeho strane.

Tu je obrázok všeobecného plánu útoku prevzatý z pôvodný dokument:

Útok týždňa: hlasové hovory cez LTE (ReVoLTE)
Prehľad útoku z dokument ReVoLTE. Táto schéma predpokladá, že pomocou rovnakého kľúča sa uskutočnia dva rôzne hovory. Ú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.

Takže útok naozaj funguje?

Na jednej strane je to naozaj hlavná otázka pre článok o ReVoLTE. Všetky vyššie uvedené nápady sú skvelé teoreticky, ale zanechávajú veľa otázok. Ako napríklad:

  1. Je možné (pre akademických výskumníkov) skutočne zachytiť pripojenie VoLTE?
  2. Skutočne prekódujú skutočné systémy LTE?
  3. Dokážete skutočne iniciovať druhý hovor dostatočne rýchlo a spoľahlivo, aby telefón a veža znova použili kľúč?
  4. Aj keď systémy prekódujú, môžete skutočne poznať nezašifrovaný obsah druhého hovoru – vzhľadom na to, že veci ako kodeky a transkódovanie môžu úplne zmeniť (bit po bite) obsah tohto druhého hovoru, aj keď máte prístup k „bitom“ „prichádza z vášho útočného telefónu?

Práca ReVoLTE odpovedá na niektoré z týchto otázok kladne. Autori používajú komerčný softvérovo rekonfigurovateľný rádiový stream sniffer tzv Airscope na zachytenie hovoru VoLTE zo strany downlinku. (Myslím si, že len popasovanie sa so softvérom a získanie hrubej predstavy o tom, ako funguje, ubralo niekoľko mesiacov životu chudobných postgraduálnych študentov – čo je typické pre tento druh akademického výskumu).

Výskumníci zistili, že na to, aby opätovné použitie kľúča fungovalo, druhý hovor musel prebehnúť dostatočne rýchlo po skončení prvého, ale nie príliš rýchlo – asi desať sekúnd pre operátorov, s ktorými experimentovali. Našťastie nezáleží na tom, či používateľ v tomto čase hovor prijme – „zvonenie“ tzn. Samotné pripojenie SIP núti operátora znova použiť rovnaký kľúč.

Mnohé z najhorších problémov sa teda točia okolo problému (4) – prijímania bitov nešifrovaného obsahu hovoru iniciovaného útočníkom. Je to preto, že s vaším obsahom sa môže veľa stať, keď putuje z telefónu útočníka do telefónu obete cez mobilnú sieť. Napríklad také špinavé triky, ako je prekódovanie zakódovaného audio streamu, čím sa zvuk ponechá rovnaký, no úplne zmení jeho binárnu reprezentáciu. LTE siete tiež používajú kompresiu hlavičky RTP, ktorá môže výrazne zmeniť veľkú časť paketu RTP.

Nakoniec, pakety odoslané útočníkom by mali byť zhruba v súlade s paketmi odoslanými počas prvého telefonátu. To môže byť problematické, pretože úprava ticha počas telefonického hovoru má za následok kratšie správy (aka komfortný hluk), ktoré nemusia dobre zapadať do pôvodného hovoru.

Sekcia "útok v reálnom svete" Oplatí sa prečítať podrobne. Rieši mnohé z vyššie uvedených problémov – najmä autori zistili, že niektoré kodeky nie sú prekódované a že je možné obnoviť približne 89 % binárnej reprezentácie cieľového volania. To platí pre najmenej dvoch európskych operátorov, ktorí boli testovaní.

Je to prekvapivo vysoká miera úspešnosti a úprimne povedané oveľa vyššia, ako som očakával, keď som začal pracovať na tomto dokumente.

Čo teda môžeme urobiť, aby sme to napravili?

Okamžitá odpoveď na túto otázku je veľmi jednoduchá: keďže podstatou zraniteľnosti je útok na opätovné použitie kľúča (preinštalovanie), jednoducho problém vyriešte. Uistite sa, že pre každý telefonický hovor získate nový kľúč a nikdy nedovoľte, aby počítadlo paketov vynulovalo počítadlo pomocou rovnakého tlačidla. Problém je vyriešený!

Alebo možno nie. To si bude vyžadovať modernizáciu veľkého množstva vybavenia a úprimne povedané, takáto oprava sama o sebe nie je super spoľahlivá. Bolo by pekné, keby štandardy dokázali nájsť bezpečnejší spôsob implementácie svojich režimov šifrovania, ktorý by v predvolenom nastavení nebol katastroficky zraniteľný voči takýmto problémom s opätovným použitím kľúča.

Jednou z možností je použiť režimy šifrovania, v ktorých zneužitie nonce nevedie ku katastrofálnym následkom. To môže byť pre niektorý súčasný hardvér príliš drahé, ale určite je to oblasť, na ktorú by dizajnéri mali v budúcnosti myslieť, najmä keď sa chystajú ovládnuť svet štandardy 5G.

Táto nová štúdia tiež vyvoláva všeobecnú otázku prečo tie isté prekliate útoky sa stále objavujú v jednom štandarde za druhým, z ktorých mnohé používajú veľmi podobné návrhy a protokoly. Keď sa stretnete s problémom preinštalovania rovnakého kľúča v rámci viacerých široko používaných protokolov, ako je WPA2, nemyslíte si, že by mohol byť čas, aby boli vaše špecifikácie a testovacie postupy robustnejšie? Prestaňte s implementátormi noriem zaobchádzať ako s premyslenými partnermi, ktorí sú pozorní voči vašim varovaniam. Zaobchádzajte s nimi ako s (neúmyselnými) protivníkmi, ktorí sa nevyhnutne pokazia.

Alebo môžeme urobiť to, čo spoločnosti ako Facebook a Apple čoraz viac robia: zabezpečiť, aby sa šifrovanie hlasových hovorov dialo na vyššej úrovni sieťového zásobníka OSI, bez spoliehania sa na výrobcov mobilných zariadení. Mohli by sme dokonca presadzovať end-to-end šifrovanie hlasových hovorov, ako to robí WhatsApp so Signal a FaceTime, za predpokladu, že americká vláda jednoducho zastaví podraz nás. Potom by (s výnimkou niektorých metadát) mnohé z týchto problémov jednoducho zmizli. Toto riešenie je obzvlášť dôležité vo svete, kde dokonca ani vlády si nie sú isté, či dôverujú svojim dodávateľom zariadení.

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

Zdroj: hab.com

Pridať komentár