Napad tjedna: glasovni pozivi preko LTE-a (ReVoLTE)

Od prevoditelja i TL;DR

  1. TL; DR:

    Čini se da se VoLTE pokazao još lošije zaštićen od prvih Wi-Fi klijenata s WEP-om. Isključivo arhitektonska pogrešna procjena koja vam omogućuje da malo izvršite XOR promet i vratite ključ. Napad je moguć ako ste blizu pozivatelja i on često zove.

  2. Hvala na savjetu i TL;DR Klukonin

  3. Istraživači su napravili aplikaciju za utvrđivanje je li vaš operater ranjiv, pročitajte više ovdje. Podijelite rezultate u komentarima, VoLTE je onemogućen u mojoj regiji na Megafonu.

O autoru

Matthew Green.

Ja sam kriptograf i profesor na Sveučilištu Johns Hopkins. Dizajnirao sam i analizirao kriptografske sustave koji se koriste u bežičnim mrežama, sustavima plaćanja i sigurnosnim platformama digitalnog sadržaja. U svom istraživanju promatram različite načine korištenja kriptografije za poboljšanje privatnosti korisnika.

Prošlo je dosta vremena otkako sam napisao format posta "napad tjedna", i to me uzrujalo. Ne zato što nije bilo napada, nego uglavnom zato što nije bilo napada na nešto dovoljno rašireno da me izvuče iz spisateljske blokade.

Ali danas sam naišao zanimljiv napad pod nazivom ReVoLTE za protokole zbog kojih sam posebno uzbuđen zbog hakiranja, naime za LTE protokole mobilne mreže (glas). Uzbuđen sam zbog ovih posebnih protokola—i ovog novog napada—jer je vrlo rijetko vidjeti hakiranje stvarnih protokola i implementacija mobilne mreže. Uglavnom zato što su ti standardi razvijeni u zadimljenim sobama i dokumentirani u dokumentima od 12000 stranica s kojima se ne može nositi svaki istraživač. Štoviše, provedba ovih napada tjera istraživače na korištenje složenih radijskih protokola.

Stoga bi se ozbiljne kriptografske ranjivosti mogle proširiti svijetom, možda samo kako bi ih vlade iskoristile, prije nego što ih bilo koji istraživač primijeti. Ali s vremena na vrijeme postoje iznimke, a današnji napad je jedna od njih.

Autori napadiSuradnici: David Rupprecht, Katharina Kohls, Thorsten Holz i Christina Pöpper sa Ruhr-University Bochum i New York University Abu Dhabi. Ovo je sjajan napad za ponovnu instalaciju ključa u glasovnom protokolu koji vjerojatno već koristite (pod pretpostavkom da ste iz starije generacije koja još uvijek telefonira putem mobilnog telefona).

Za početak, kratki povijesni izlet.

Što su LTE i VoLTE?

Osnova naših modernih standarda mobilne telefonije postavljena je u Europi 80-ih godina standardom Globalni sustav za mobilne uređaje (Globalni sustav mobilnih komunikacija). GSM je bio prvi veliki standard digitalne mobilne telefonije, koji je uveo niz revolucionarnih značajki, kao što je upotreba šifriranje za zaštitu telefonskih poziva. Rani GSM bio je prvenstveno dizajniran za govornu komunikaciju, iako je novac mogao biti prenositi druge podatke.

Kako je prijenos podataka postajao sve važniji u mobilnoj komunikaciji, razvijeni su standardi Long Term Evolution (LTE) kako bi se pojednostavila ova vrsta komunikacije. LTE se temelji na skupini starijih standarda kao što su GSM, EDGE и HSPA a dizajniran je za povećanje brzine razmjene podataka. Mnogo je brendiranja i dovođenje u zabludu netočnim oznakamaali TL;DR je da je LTE sustav prijenosa podataka koji služi kao most između starijih paketnih podatkovnih protokola i budućih mobilnih podatkovnih tehnologija 5G.

Naravno, povijest nam govori da će se jednom kada bude dostupno dovoljno (IP) pojasne širine, koncepti poput "glasa" i "podataka" početi zamagljivati. Isto vrijedi i za moderne mobilne protokole. Kako bi ovaj prijelaz bio lakši, LTE standardi definiraju Voice-over-LTE (VoLTE), koji je IP standard za prijenos glasovnih poziva izravno preko podatkovne ravnine LTE sustava, u potpunosti zaobilazeći dial-up dio mobilne mreže. Kao i kod standarda VoIP pozivi,VoLTE pozive može prekinuti mobilni operater i spojiti ih na uobičajenu telefonsku mrežu. Ili (što je sve češće) oni može se usmjeriti izravno od jednog mobilnog klijenta do drugog, pa čak i između različitih pružatelja usluga.

Poput standardnog VoIP-a, VoLTE se temelji na dva popularna protokola temeljena na IP-u: Protokol pokretanja sesije (Protokol za pokretanje sjednice – SIP) za uspostavljanje poziva i protokol prijenosa u stvarnom vremenu (Protokol prijenosa u stvarnom vremenu, koji bi se trebao zvati RTTP, ali se zapravo zove RTP) za obradu glasovnih podataka. VoLTE također dodaje neke dodatne optimizacije propusnosti, kao što je kompresija zaglavlja.

U redu, kakve to veze ima s enkripcijom?

LTE, kao GSM, ima standardni skup kriptografskih protokola za šifriranje paketa dok se prenose bežičnim putem. Uglavnom su dizajnirani za zaštitu vaših podataka dok putuju između telefona (koji se naziva korisnička oprema ili UE) i mobilnog tornja (ili gdje god vaš davatelj usluga odluči prekinuti vezu). To je zato što pružatelji mobilnih usluga vanjske uređaje za prisluškivanje vide kao neprijatelje. Pa naravno.

(Međutim, činjenica da se VoLTE veze mogu pojaviti izravno između klijenata na mrežama različitih pružatelja usluga znači da sam VoLTE protokol ima neke dodatne i izborne protokole šifriranja koji se mogu pojaviti na višim mrežnim slojevima. Ovo nije relevantno za trenutni članak, osim činjenice da mogu sve pokvariti (o njima ćemo ukratko sljedeće).

Povijesno gledano, šifriranje u GSM-u je mnoge slabe točke: loše šifre, protokoli u kojima je samo telefon autentificiran tornju (što znači da bi napadač mogao oponašati toranj, generirajući "Stingray") i tako dalje. LTE je ispravio mnoge očite pogreške, a zadržao veći dio iste strukture.

Počnimo sa samom enkripcijom. Pod pretpostavkom da se kreiranje ključa već dogodilo - a o tome ćemo za minutu - tada je svaki paket podataka šifriran pomoću enkripcije toka pomoću nečega što se zove "EEA" (što se u praksi može implementirati korištenjem stvari kao što je AES). U biti, mehanizam šifriranja je ovdje CTRkao ispod:

Napad tjedna: glasovni pozivi preko LTE-a (ReVoLTE)
Glavni algoritam šifriranja za VoLTE pakete (izvor: ReVoLTE). EEA je šifra, "COUNT" je 32-bitni brojač, "BEARER" je jedinstveni identifikator sesije koji odvaja VoLTE veze od uobičajenog internetskog prometa. "SMJER" označava u kojem smjeru teče promet - od NG prema tornju ili obrnuto.

Budući da se sam algoritam šifriranja (EEA) može implementirati pomoću jake šifre kao što je AES, malo je vjerojatno da će doći do izravnog napada na samu šifru kao što je ovaj dogodilo u danima GSM-a. Međutim, jasno je da je čak i uz jaku šifru ova shema šifriranja izvrstan način da sami sebi pucate u nogu.

Konkretno: LTE standard koristi (neautentificiranu) šifru toka s načinom koji će biti izuzetno ranjiv ako se brojač - i drugi ulazi kao što su "nosilac" i "smjer" - ikada ponovno koriste. U modernom jeziku, izraz za ovaj koncept je "napad bez ponovne upotrebe", ali potencijalni rizici ovdje nisu nešto moderno. Poznati su i stari, datiraju iz dana glam metala, pa čak i diska.

Napad tjedna: glasovni pozivi preko LTE-a (ReVoLTE)
Napadi na jednokratnu ponovnu upotrebu u CTR načinu rada postojali su čak i kad je Poison postao poznat

Da budemo pošteni, LTE standardi kažu: "Nemojte ponovno koristiti ove mjerače." Ali LTE standardi imaju oko 7000 stranica, au svakom slučaju to je kao da molite djecu da se ne igraju s puškom. Neizbježno hoće, i dogodit će se strašne stvari. Ispaljivač u ovom slučaju je napad ponovne upotrebe toka ključeva, u kojem dvije različite povjerljive poruke XOR isti bajt toka ključa. Poznato je da ovaj ima vrlo destruktivan učinak na povjerljivost komunikacije.

Što je ReVoLTE?

Napad ReVoLTE pokazuje da u praksi ovaj vrlo ranjivi dizajn enkripcije zlorabi stvarni hardver. Točnije, autori analiziraju stvarne VoLTE pozive napravljene korištenjem komercijalne opreme i pokazuju da mogu koristiti nešto što se zove "napad ponovnom instalacijom ključa". (Velike zasluge za pronalaženje ovog problema pripadaju Reise i Lu (Raza & Lu), koji su prvi ukazali na potencijalnu ranjivost. Ali istraživanje ReVoLTE-a pretvara ga u praktičan napad).

Dopustite mi da vam ukratko pokažem bit napada, iako biste trebali pogledati i izvorni dokument.

Moglo bi se pretpostaviti da kada LTE uspostavi paketnu podatkovnu vezu, zadatak prijenosa glasa preko LTE-a postaje samo stvar usmjeravanja glasovnih paketa preko te veze zajedno sa svim ostalim vašim prometom. Drugim riječima, VoLTE će biti koncept koji postoji samo preko Razina 2 [OSI modeli – cca.]. Ovo nije posve točno.

Zapravo, LTE sloj veze uvodi koncept "nositelja". Nositelji su zasebni identifikatori sesije koji odvajaju različite vrste paketnog prometa. Redovni internet promet (vaš Twitter i Snapchat) ide preko jednog nositelja. SIP signalizacija za VoIP ide kroz drugu, a paketi glasovnog prometa obrađuju se kroz treću. Nisam baš upućen u LTE radio i mehanizme mrežnog usmjeravanja, ali vjerujem da se to radi na ovaj način jer LTE mreže žele nametnuti mehanizme QoS (kvaliteta usluge) tako da se različiti tokovi paketa obrađuju na različitim razinama prioriteta: tj. tvoje drugorazredni TCP veze s Facebookom mogu imati niži prioritet od vaših glasovnih poziva u stvarnom vremenu.

To općenito nije problem, ali posljedice su sljedeće. Ključevi za LTE enkripciju kreiraju se zasebno svaki put kada se instalira novi "nosač". Uglavnom, ovo bi se trebalo ponoviti svaki put kada napravite novi telefonski poziv. To će rezultirati korištenjem drugog ključa za šifriranje za svaki poziv, čime se eliminira mogućnost ponovne upotrebe istog ključa za šifriranje dvaju različitih skupova paketa glasovnih poziva. Doista, LTE standard kaže nešto poput "trebali biste koristiti drugačiji ključ svaki put kada instalirate novi nositelj za upravljanje novim telefonskim pozivom." Ali to ne znači da se to stvarno događa.

Zapravo, u implementacijama u stvarnom životu, dva različita poziva koja se javljaju u neposrednoj vremenskoj blizini koristit će isti ključ - unatoč činjenici da su novi nositelji istog imena konfigurirani između njih. Jedina praktična promjena koja se događa između ovih poziva je da se brojač šifriranja vraća na nulu. U literaturi se to ponekad naziva napad ponovne instalacije ključa. Moglo bi se tvrditi da je ovo u biti pogreška u implementaciji, iako se u ovom slučaju čini da rizici uvelike proizlaze iz samog standarda.

U praksi, ovaj napad rezultira ponovnom upotrebom toka ključa, gdje napadač može dobiti šifrirane pakete $inline$C_1 = M_1 oplus KS$inline$ i $inline$C_2 = M_2 oplus KS$inline$, omogućujući izračun $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Još bolje, ako napadač zna jednu od $inline$M_1$inline$ ili $inline$M_2$inline$, tada može odmah povratiti drugu. To mu daje snažan poticaj saznajte jednu od dvije nešifrirane komponente.

Ovo nas dovodi do potpunog i najučinkovitijeg scenarija napada. Razmotrite napadača koji može presresti radio promet između ciljanog telefona i mobilnog tornja i koji nekako ima dovoljno sreće da snimi dva različita poziva, pri čemu se drugi javlja odmah nakon prvog. Sada zamislite da bi nekako mogao pogoditi nešifrirani sadržaj jednog od poziva. S takvim dogodjaj sretnog slučajnog otkrivanja naš napadač može u potpunosti dešifrirati prvi poziv koristeći jednostavan XOR između dva skupa paketa.

Naravno, sreća nema nikakve veze s tim. Budući da su telefoni dizajnirani za primanje poziva, napadač koji može čuti prvi poziv moći će pokrenuti drugi poziv u točnom trenutku kada prvi završi. Ovaj drugi poziv, ako se ponovno koristi isti ključ šifriranja s vraćanjem brojača na nulu, omogućit će oporavak nešifriranih podataka. Štoviše, budući da naš napadač zapravo kontrolira podatke tijekom drugog poziva, on može povratiti sadržaj prvog poziva - zahvaljujući mnogim posebno implementiranim male stvari, igrajući na njegovoj strani.

Ovdje je slika općeg plana napada preuzeta iz izvorni dokument:

Napad tjedna: glasovni pozivi preko LTE-a (ReVoLTE)
Pregled napada od ReVoLTE dokument. Ova shema pretpostavlja da se dva različita poziva obavljaju pomoću istog ključa. Napadač kontrolira pasivni sniffer (gore lijevo), kao i drugi telefon, s kojim može uputiti drugi poziv na telefon žrtve.

Dakle, djeluje li napad stvarno?

S jedne strane, ovo je zapravo glavno pitanje za članak o ReVoLTE-u. Sve gore navedene ideje su sjajne u teoriji, ali ostavljaju mnogo pitanja. kao što su:

  1. Je li moguće (za akademske istraživače) stvarno presresti VoLTE vezu?
  2. Da li pravi LTE sustavi zapravo mijenjaju ključ?
  3. Možete li zapravo pokrenuti drugi poziv brzo i dovoljno pouzdano da telefon i toranj mogu ponovno upotrijebiti ključ?
  4. Čak i ako sustavi ponovno uključe, možete li doista znati nekriptirani sadržaj drugog poziva - s obzirom da stvari poput kodeka i transkodiranja mogu potpuno promijeniti (bit po bit) sadržaj tog drugog poziva, čak i ako imate pristup "bitovima" " dolazi s vašeg napadačkog telefona?

Rad ReVoLTE-a daje potvrdan odgovor na neka od ovih pitanja. Autori koriste komercijalni softverski rekonfigurabilni radio stream sniffer tzv Zrakoplov za presretanje VoLTE poziva sa silazne strane. (Mislim da je samo upoznavanje sa softverom i stjecanje grube ideje o tome kako funkcionira oduzimalo mjesece života jadnih diplomiranih studenata - što je tipično za ovu vrstu akademskog istraživanja).

Istraživači su otkrili da se drugi poziv mora dogoditi dovoljno brzo nakon završetka prvog, ali ne prebrzo - oko deset sekundi za operatere s kojima su eksperimentirali, kako bi ponovna upotreba ključa funkcionirala. Srećom, nije svejedno hoće li korisnik odgovoriti na poziv unutar ovog vremena – “zvoni” tj. Sama SIP veza prisiljava operatera da ponovno koristi isti ključ.

Stoga se mnogi od najlošnijih problema vrte oko problema (4) - primanja bitova nešifriranog sadržaja poziva koji je pokrenuo napadač. To je zato što se mnogo toga može dogoditi vašem sadržaju dok putuje s napadačevog telefona na žrtvin preko mobilne mreže. Na primjer, takvi prljavi trikovi kao što je ponovno kodiranje kodiranog audio streama, koji ostavlja zvuk istim, ali potpuno mijenja njegov binarni prikaz. LTE mreže također koriste RTP kompresiju zaglavlja, što može značajno promijeniti veći dio RTP paketa.

Konačno, paketi koje šalje napadač trebali bi biti otprilike u skladu s paketima poslanim tijekom prvog telefonskog poziva. To može biti problematično jer modificiranje tišine tijekom telefonskog poziva rezultira kraćim porukama (poznatim i kao ugodna buka) koje se možda neće dobro uklopiti s izvornim pozivom.

Odjeljak "napad u stvarnom svijetu" Vrijedi ga detaljno pročitati. Rješava mnoge od gore navedenih problema - posebno, autori su otkrili da neki kodeci nisu rekodirani i da se približno 89% binarne reprezentacije ciljnog poziva može povratiti. To vrijedi za najmanje dva europska operatera koji su testirani.

Ovo je iznenađujuće visoka stopa uspjeha, i iskreno mnogo veća nego što sam očekivao kada sam počeo raditi na ovom dokumentu.

Dakle, što možemo učiniti da to popravimo?

Neposredni odgovor na ovo pitanje je vrlo jednostavan: budući da je bit ranjivosti napad ponovne upotrebe (ponovne instalacije) ključa, jednostavno riješite problem. Pobrinite se da dobijete novi ključ za svaki telefonski poziv i nikad ne dopustite brojaču paketa da ponovno postavi brojač na nulu koristeći isti ključ. Problem riješen!

Ili možda nije. To će zahtijevati nadogradnju puno opreme, a, iskreno govoreći, takav popravak sam po sebi nije super pouzdan. Bilo bi lijepo kada bi standardi mogli pronaći sigurniji način za implementaciju svojih načina šifriranja koji prema zadanim postavkama nije katastrofalno ranjiv na takve probleme ponovne upotrebe ključa.

Jedna od mogućih opcija je korištenje načini šifriranja u kojima zlouporaba nonce ne dovodi do katastrofalnih posljedica. Ovo je možda preskupo za neki trenutni hardver, ali to je svakako područje o kojem bi dizajneri trebali razmišljati u budućnosti, pogotovo jer će 5G standardi uskoro preuzeti svijet.

Ova nova studija također postavlja opće pitanje zašto isti prokleti napadi neprestano se pojavljuju u jednom standardu za drugim, od kojih mnogi koriste vrlo slične dizajne i protokole. Kada se suočite s problemom ponovnog instaliranja istog ključa preko više široko korištenih protokola poput WPA2, ne mislite li da je možda vrijeme da svoje specifikacije i postupke testiranja učinite robusnijima? Prestanite tretirati implementatore standarda kao promišljene partnere koji obraćaju pažnju na vaša upozorenja. Tretirajte ih kao (nenamjerne) protivnike koji će neizbježno napraviti krivo.

Ili, alternativno, možemo učiniti ono što tvrtke poput Facebooka i Applea sve više rade: omogućiti enkripciju glasovnih poziva na višoj razini skupa OSI mreže, bez oslanjanja na proizvođače mobilne opreme. Mogli bismo čak potaknuti end-to-end enkripciju glasovnih poziva, kao što WhatsApp radi sa Signalom i FaceTimeom, pod pretpostavkom da američka vlada jednostavno prestane saplesti nas. Tada bi (s izuzetkom nekih metapodataka) mnogi od tih problema jednostavno nestali. Ovo je rješenje posebno relevantno u svijetu u kojem čak ni vlade nisu sigurne vjeruju li svojim dobavljačima opreme.

Ili jednostavno možemo učiniti ono što su naša djeca već učinila: prestati odgovarati na te dosadne glasovne pozive.

Izvor: www.habr.com

Dodajte komentar