Napad tedna: glasovni klici prek LTE (ReVoLTE)

Od prevajalca in TL;DR

  1. TL; DR:

    Zdi se, da se je VoLTE izkazal za še slabše zaščitenega kot prvi odjemalci Wi-Fi z WEP. Izključno arhitekturna napaka, ki vam omogoča, da malo XOR prometa in obnovite ključ. Napad je možen, če ste blizu klicatelja in ta pogosto kliče.

  2. Hvala za namig in TL;DR Klukonin

  3. Raziskovalci so naredili aplikacijo za ugotavljanje, ali je vaš operater ranljiv, preberite več tukaj. Delite rezultate v komentarjih, VoLTE je v moji regiji na Megafonu onemogočen.

O avtorju

Matthew Green.

Sem kriptograf in profesor na univerzi Johns Hopkins. Oblikoval in analiziral sem kriptografske sisteme, ki se uporabljajo v brezžičnih omrežjih, plačilnih sistemih in platformah za varnost digitalnih vsebin. V svoji raziskavi preučujem različne načine uporabe kriptografije za izboljšanje zasebnosti uporabnikov.

Kar nekaj časa je minilo, odkar sem napisal obliko objave "napad tedna", in to me je razburilo. Ne zato, ker ni bilo napadov, ampak predvsem zato, ker ni bilo napada na nekaj, kar je dovolj razširjeno, da bi me spravilo iz pisateljske blokade.

Ampak danes sem naletel zanimiv napad imenovano ReVoLTE za protokole, nad katerimi sem še posebej navdušen, in sicer protokole LTE za mobilno omrežje (glas preko). Navdušen sem nad temi posebnimi protokoli – in tem novim napadom –, ker je zelo redko videti vdore v dejanske protokole in izvedbe mobilnega omrežja. Predvsem zato, ker so bili ti standardi razviti v zadimljenih prostorih in dokumentirani v dokumentih na 12000 straneh, ki jih ne more obvladati vsak raziskovalec. Poleg tega izvajanje teh napadov prisili raziskovalce k uporabi kompleksnih radijskih protokolov.

Tako bi se resne kriptografske ranljivosti lahko razširile po vsem svetu, morda samo zato, da bi jih izkoristile vlade, preden jih kateri koli raziskovalec opazi. Toda od časa do časa obstajajo izjeme in današnji napad je ena izmed njih.

Avtorji napadiPrispevki: David Rupprecht, Katharina Kohls, Thorsten Holz in Christina Pöpper z Ruhr-University Bochum in New York University Abu Dhabi. To je odličen napad za ponovno namestitev ključa v glasovnem protokolu, ki ga verjetno že uporabljate (ob predpostavki, da ste iz starejše generacije, ki še vedno telefonira z mobilnim telefonom).

Za začetek kratek zgodovinski izlet.

Kaj sta LTE in VoLTE?

Osnova naših sodobnih standardov mobilne telefonije je bila postavljena v Evropi v osemdesetih letih prejšnjega stoletja s standardom Globalni sistem za mobilne naprave (Globalni sistem za mobilne komunikacije). GSM je bil prvi večji standard digitalne mobilne telefonije, ki je uvedel številne revolucionarne funkcije, kot je uporaba šifriranje za zaščito telefonskih klicev. Zgodnji GSM je bil zasnovan predvsem za govorno komunikacijo, čeprav bi denar lahko bil posredovati druge podatke.

Ko je prenos podatkov v mobilnih komunikacijah postal pomembnejši, so bili za racionalizacijo te vrste komunikacije razviti standardi Long Term Evolution (LTE). LTE temelji na skupini starejših standardov, kot je GSM, EDGE и HSPA in je zasnovan za povečanje hitrosti izmenjave podatkov. Obstaja veliko blagovnih znamk in zavajanje z nepravilnimi oznakamitoda TL;DR je, da je LTE sistem za prenos podatkov, ki služi kot most med starejšimi paketnimi podatkovnimi protokoli in prihodnjimi mobilnimi podatkovnimi tehnologijami 5G.

Seveda nam zgodovina pove, da ko bo na voljo dovolj (IP) pasovne širine, se bodo koncepti, kot sta "glas" in "podatki", začeli zamegljevati. Enako velja za sodobne celične protokole. Da bi bil ta prehod lažji, določajo standardi LTE Voice-over-LTE (VoLTE), ki je standard IP za prenos glasovnih klicev neposredno prek podatkovne ravnine sistema LTE, pri čemer v celoti zaobide klicni del mobilnega omrežja. Kot pri standardu VoIP klici,Klice VoLTE lahko prekine mobilni operater in jih poveže z navadnim telefonskim omrežjem. Ali pa (kot je vse pogosteje) oni mogoče usmeriti neposredno od enega mobilnega odjemalca do drugega in celo med različnimi ponudniki.

Tako kot standardni VoIP tudi VoLTE temelji na dveh priljubljenih protokolih, ki temeljita na IP: Protokol za začetek seje (Protokol za začetek seje – SIP) za vzpostavitev klica in protokol prenosa v realnem času (Protokol za prenos v realnem času, ki bi se moral imenovati RTTP, vendar se dejansko imenuje RTP) za obdelavo glasovnih podatkov. VoLTE dodaja tudi nekaj dodatnih optimizacij pasovne širine, kot je stiskanje glave.

V redu, kaj ima to opraviti s šifriranjem?

LTE, npr GSM, ima standardni nabor kriptografskih protokolov za šifriranje paketov, ko se prenašajo po zraku. Zasnovani so predvsem za zaščito vaših podatkov med potovanjem med telefonom (imenovano uporabniška oprema ali UE) in celičnim stolpom (ali kjer koli se vaš ponudnik odloči prekiniti povezavo). To je zato, ker mobilni ponudniki na zunanje prisluškovalne naprave gledajo kot na sovražnike. No, seveda.

(Vendar pa dejstvo, da se povezave VoLTE lahko pojavijo neposredno med odjemalci v omrežjih različnih ponudnikov, pomeni, da ima sam protokol VoLTE nekaj dodatnih in izbirnih šifrirnih protokolov, ki se lahko pojavijo na višjih omrežnih ravneh. To ni pomembno za trenutni članek, razen dejstva, da lahko pokvarijo vse (o njih bomo na kratko spregovorili v nadaljevanju).

V preteklosti je bilo šifriranje v GSM veliko šibkih točk: slab šifre, protokoli, pri katerih je bil samo telefon overjen na stolpu (kar pomeni, da bi se napadalec lahko lažno predstavljal kot stolp in ustvaril "Morski bič") in tako naprej. LTE je popravil veliko očitnih napak, hkrati pa ohranil večino enake strukture.

Začnimo s samim šifriranjem. Ob predpostavki, da je do ustvarjanja ključa že prišlo - in o tem bomo govorili čez minuto - je vsak paket podatkov šifriran s šifriranjem toka z uporabo nečesa, kar se imenuje "EEA" (kar je v praksi mogoče implementirati z uporabo stvari, kot je AES). V bistvu je mehanizem šifriranja tukaj CTRkot je prikazano spodaj:

Napad tedna: glasovni klici prek LTE (ReVoLTE)
Glavni algoritem šifriranja za pakete VoLTE (vir: ReVoLTE). EEA je šifra, »COUNT« je 32-bitni števec, »BEARER« je edinstven identifikator seje, ki ločuje povezave VoLTE od običajnega internetnega prometa. »SMER« označuje, v katero smer poteka promet - od UE do stolpa ali obratno.

Ker je sam šifrirni algoritem (EEA) mogoče implementirati z močno šifro, kot je AES, je malo verjetno, da bo prišlo do neposrednega napada na samo šifro, kot je ta zgodilo v času GSM. Vendar pa je jasno, da je tudi z močno šifro ta shema šifriranja odličen način, da se ustreliš v nogo.

Zlasti: standard LTE uporablja (nepreverjeno) tokovno šifro z načinom, ki bo izjemno ranljiv, če se števec – in drugi vhodi, kot sta "nosilec" in "smer" - kdaj ponovno uporabijo. V sodobnem jeziku je izraz za ta koncept "napad brez ponovne uporabe", vendar potencialna tveganja tukaj niso nekaj sodobnega. So slavni in starodavni, iz časov glam metala in celo diska.

Napad tedna: glasovni klici prek LTE (ReVoLTE)
Napadi na enkratno ponovno uporabo v načinu CTR so obstajali, tudi ko je Poison postal znan

Če smo pošteni, standardi LTE pravijo: "Prosim, ne uporabljajte znova teh števcev." Toda standardi LTE so dolgi približno 7000 strani in v vsakem primeru je to tako, kot da bi otroke prosili, naj se ne igrajo s pištolo. Neizogibno se bodo in zgodile se bodo grozne stvari. Izstrelitev v tem primeru je napad s ponovno uporabo toka ključev, pri katerem dve različni zaupni sporočili zamenjata XOR iste bajte toka ključev. Znano je, da ta zelo destruktivno vpliva na zaupnost komunikacije.

Kaj je ReVoLTE?

Napad ReVoLTE dokazuje, da strojna oprema v resničnem svetu v praksi zlorablja to zelo ranljivo zasnovo šifriranja. Natančneje, avtorji analizirajo resnične klice VoLTE, opravljene s komercialno opremo, in pokažejo, da lahko uporabijo nekaj, kar se imenuje "napad ponovne namestitve ključa". (Velika zasluga za odkritje te težave gre Reise in Lu (Raza & Lu), ki sta prva opozorila na potencialno ranljivost. Toda raziskave ReVoLTE to spremenijo v praktičen napad).

Naj vam na kratko pokažem bistvo napada, čeprav bi morali videti in izvorni dokument.

Lahko bi domnevali, da ko LTE vzpostavi paketno podatkovno povezavo, postane naloga govora prek LTE le usmerjanje glasovnih paketov prek te povezave skupaj z vsem ostalim vašim prometom. Z drugimi besedami, VoLTE bo koncept, ki obstaja samo nad Stopnja 2 [Modeli OSI – pribl.]. To ne drži povsem.

Pravzaprav povezovalna plast LTE uvaja koncept "nosilca". Nosilci so ločeni identifikatorji sej, ki ločujejo različne vrste paketnega prometa. Redni internetni promet (vaš Twitter in Snapchat) poteka preko enega nosilca. Signalizacija SIP za VoIP gre prek drugega, paketi glasovnega prometa pa se obdelujejo prek tretjega. Nisem dobro obveščen o radiu LTE in mehanizmih omrežnega usmerjanja, vendar verjamem, da je to storjeno na ta način, ker želijo omrežja LTE uveljaviti mehanizme QoS (kakovost storitve), tako da se različni tokovi paketov obdelujejo na različnih stopnjah prioritete: tj. tvoje drugorazredni Povezave TCP s Facebookom imajo lahko nižjo prednost kot vaši glasovni klici v realnem času.

To na splošno ni problem, vendar so posledice naslednje. Ključi za šifriranje LTE se ustvarijo posebej vsakič, ko je nameščen nov »nosilec«. V bistvu bi se moralo to ponoviti vsakič, ko opravite nov telefonski klic. Posledica tega bo, da bo za vsak klic uporabljen drug šifrirni ključ, s čimer bo odpravljena možnost ponovne uporabe istega ključa za šifriranje dveh različnih nizov paketov glasovnih klicev. Standard LTE dejansko pravi nekaj takega, kot "bi morali uporabiti drug ključ vsakič, ko namestite nov nosilec za obravnavo novega telefonskega klica." Vendar to ne pomeni, da se to dejansko zgodi.

Dejansko bosta v implementacijah v resničnem življenju dva različna klica, ki se pojavita v neposredni časovni bližini, uporabljala isti ključ – kljub dejstvu, da so med njima konfigurirani novi nosilci z istim imenom. Edina praktična sprememba, ki se zgodi med temi klici, je, da se števec šifriranja ponastavi na nič. V literaturi se to včasih imenuje napad s ponovno namestitvijo ključa. Lahko bi trdili, da je to v bistvu napaka pri implementaciji, čeprav se zdi, da v tem primeru tveganja v veliki meri izvirajo iz samega standarda.

V praksi ta napad povzroči ponovno uporabo ključnega toka, kjer lahko napadalec pridobi šifrirane pakete $inline$C_1 = M_1 oplus KS$inline$ in $inline$C_2 = M_2 oplus KS$inline$, kar omogoča izračun $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Še bolje je, če napadalec pozna enega od $inline$M_1$inline$ ali $inline$M_2$inline$, potem lahko takoj obnovi drugega. To mu daje močno spodbudo poiščite eno od dveh nešifriranih komponent.

To nas pripelje do popolnega in najučinkovitejšega scenarija napada. Razmislite o napadalcu, ki lahko prestreže radijski promet med ciljnim telefonom in bazno postajo ter se mu nekako posreči, da posname dva različna klica, pri čemer se drugi zgodi takoj za prvim. Zdaj pa si predstavljajte, da bi lahko nekako uganil nešifrirano vsebino enega od klicev. S takimi serendipity naš napadalec lahko v celoti dešifrira prvi klic s preprostim XOR med dvema nizoma paketov.

Sreča seveda nima nič s tem. Ker so telefoni zasnovani za sprejemanje klicev, bo napadalec, ki lahko presliši prvi klic, sprožil drugi klic točno v trenutku, ko se prvi konča. Ta drugi klic, če se ponovno uporabi isti šifrirni ključ s ponastavitvijo števca na nič, bo omogočil obnovitev nešifriranih podatkov. Še več, ker naš napadalec dejansko nadzoruje podatke med drugim klicem, lahko povrne vsebino prvega klica - zahvaljujoč številnim posebej implementiranim majhne stvari, ki igra na njegovi strani.

Tukaj je slika splošnega načrta napada, vzetega iz originalni dokument:

Napad tedna: glasovni klici prek LTE (ReVoLTE)
Pregled napada od Dokument ReVoLTE. Ta shema predvideva, da sta dva različna klica opravljena z istim ključem. Napadalec nadzoruje pasivni sniffer (zgoraj levo) in drugi telefon, s katerim lahko izvede drugi klic na telefon žrtve.

Torej napad res deluje?

Po eni strani je to res glavno vprašanje za članek o ReVoLTE. Vse zgornje ideje so v teoriji odlične, vendar puščajo veliko vprašanj. Kot naprimer:

  1. Ali je mogoče (za akademske raziskovalce) dejansko prestreči povezavo VoLTE?
  2. Ali se resnični sistemi LTE dejansko znova zaklenejo?
  3. Ali lahko dejansko začnete drugi klic hitro in dovolj zanesljivo, da telefon in stolp znova uporabita ključ?
  4. Ali lahko dejansko poznate nešifrirano vsebino drugega klica, tudi če sistemi znova vnesejo ključ - glede na to, da lahko stvari, kot so kodeki in transkodiranje, popolnoma spremenijo vsebino (bit za bitom) tega drugega klica, tudi če imate dostop do "bitov " prihaja iz vašega napadalnega telefona?

Delo ReVoLTE odgovarja na nekatera od teh vprašanj pritrdilno. Avtorji uporabljajo komercialno programsko nastavljivo vohanje radijskega toka, imenovano Zračni daljnogled za prestrezanje klica VoLTE s strani navzdolnje povezave. (Mislim, da je revnim podiplomskim študentom vzelo mesece življenja že to, da so se spopadli s programsko opremo in dobili grobo predstavo o tem, kako deluje – kar je značilno za tovrstne akademske raziskave).

Raziskovalci so ugotovili, da se je moral drugi klic zgoditi dovolj hitro po koncu prvega, da bi ponovna uporaba ključa delovala, vendar ne prehitro – približno deset sekund za operaterje, s katerimi so eksperimentirali. Na srečo ni vseeno, ali uporabnik v tem času sprejme klic – »zvonjenje« tj. Sama povezava SIP prisili operaterja, da ponovno uporabi isti ključ.

Tako se veliko najhujših težav vrti okoli težave (4) – prejemanja bitov nešifrirane vsebine klica, ki ga sproži napadalec. To je zato, ker se lahko vaši vsebini marsikaj zgodi, ko potuje od napadalčevega do žrtvinega telefona prek mobilnega omrežja. Na primer, takšni umazani triki, kot je ponovno kodiranje kodiranega zvočnega toka, ki pusti zvok enak, vendar popolnoma spremeni njegovo binarno predstavitev. Omrežja LTE uporabljajo tudi stiskanje glave RTP, ki lahko bistveno spremeni velik del paketa RTP.

Nazadnje, paketi, ki jih pošlje napadalec, bi morali biti približno enaki paketom, poslanim med prvim telefonskim klicem. To je lahko problematično, ker spreminjanje tišine med telefonskim klicem povzroči krajša sporočila (imenovana tudi udobni šum), ki morda ne ustrezajo prvotnemu klicu.

Oddelek "napad iz resničnega sveta" Vredno je prebrati podrobno. Obravnava veliko zgornjih težav - predvsem so avtorji ugotovili, da nekateri kodeki niso ponovno kodirani in da je približno 89 % binarne predstavitve ciljnega klica mogoče obnoviti. To velja za najmanj dva evropska operaterja, ki sta bila testirana.

To je presenetljivo visoka stopnja uspešnosti in odkrito veliko višja, kot sem pričakoval, ko sem začel delati na tem dokumentu.

Torej, kaj lahko storimo, da to popravimo?

Takojšen odgovor na to vprašanje je zelo preprost: ker je bistvo ranljivosti napad s ponovno uporabo (ponovno namestitvijo) ključa, preprosto odpravite težavo. Prepričajte se, da je za vsak telefonski klic pridobljen nov ključ in nikoli ne dovolite, da števec paketov ponastavi števec nazaj na nič z uporabo istega ključa. Problem rešen!

Ali pa morda ne. To bo zahtevalo nadgradnjo veliko opreme in, odkrito povedano, tak popravek sam po sebi ni super zanesljiv. Lepo bi bilo, če bi standardi lahko našli bolj varen način za implementacijo svojih načinov šifriranja, ki privzeto ni katastrofalno ranljiv za takšne težave s ponovno uporabo ključev.

Ena od možnih možnosti je uporaba načini šifriranja, pri katerih zloraba nonce ne povzroči katastrofalnih posledic. To je morda predrago za neko sedanjo strojno opremo, vendar je vsekakor področje, o katerem bi oblikovalci morali razmišljati v prihodnosti, zlasti ker bodo standardi 5G kmalu prevzeli svet.

Ta nova študija postavlja tudi splošno vprašanje, zakaj isti prekleti napadi se kar naprej pojavljajo v enem standardu za drugim, od katerih mnogi uporabljajo zelo podobne zasnove in protokole. Ko se soočite s težavo ponovne namestitve istega ključa v več široko uporabljanih protokolih, kot je WPA2, se vam ne zdi morda čas, da naredite svoje specifikacije in postopke testiranja robustnejše? Nehajte izvajalce standardov obravnavati kot premišljene partnerje, ki so pozorni na vaša opozorila. Obravnavajte jih kot (nenamerne) nasprotnike, ki bodo neizogibno naredili stvari narobe.

Ali pa lahko storimo to, kar vse pogosteje počnejo podjetja, kot sta Facebook in Apple: omogočimo šifriranje glasovnih klicev na višji ravni omrežnega sklada OSI, ne da bi se zanašali na proizvajalce mobilne opreme. Lahko bi si celo prizadevali za šifriranje glasovnih klicev od konca do konca, kot to počne WhatsApp s Signalom in FaceTime, ob predpostavki, da ameriška vlada preprosto neha poteptaj nas. Potem bi (z izjemo nekaterih metapodatkov) veliko teh težav preprosto izginilo. Ta rešitev je še posebej pomembna v svetu, kjer tudi vlade niso prepričane, ali zaupajo svojim dobaviteljem opreme.

Lahko pa preprosto naredimo to, kar so že storili naši otroci: prenehamo odgovarjati na te nadležne glasovne klice.

Vir: www.habr.com

Dodaj komentar