Pag-atake ng linggo: mga voice call sa LTE (ReVoLTE)

Mula sa tagasalin at TL;DR

  1. TL; DR:

    Mukhang mas malala pa ang proteksyon ng VoLTE kaysa sa mga unang Wi-Fi client na may WEP. Isang eksklusibong maling kalkulasyon ng arkitektura na nagbibigay-daan sa iyong i-XOR nang kaunti ang trapiko at ibalik ang susi. Posible ang pag-atake kung malapit ka sa tumatawag at madalas siyang tumatawag.

  2. Salamat sa tip at TL;DR Klukonin

  3. Gumawa ang mga mananaliksik ng app para matukoy kung mahina ang iyong carrier, magbasa pa dito. Ibahagi ang mga resulta sa mga komento, ang VoLTE ay hindi pinagana sa aking rehiyon sa Megafon.

Tungkol sa May-akda

Matthew Green.

Isa akong cryptographer at propesor sa Johns Hopkins University. Nagdisenyo at nagsuri ako ng mga cryptographic system na ginagamit sa mga wireless network, mga sistema ng pagbabayad, at mga platform ng seguridad ng digital na nilalaman. Sa aking pananaliksik, tumitingin ako sa iba't ibang paraan ng paggamit ng cryptography upang mapabuti ang privacy ng user.

Ang tagal na simula nung sumulat ako ng post format "atake ng linggo", at nagalit ito sa akin. Hindi dahil walang mga pag-atake, ngunit higit sa lahat dahil walang pag-atake sa isang bagay na malawakang ginagamit upang maalis ako sa writer's block.

Pero ngayong araw ay naabutan ko kawili-wiling pag-atake tinatawag na ReVoLTE para sa mga protocol na talagang nasasabik ako sa pag-hack, katulad ng mga protocol ng cellular network (voice over) LTE. Nasasabik ako sa mga partikular na protocol na itoβ€”at sa bagong pag-atakeng itoβ€”dahil napakabihirang makakita ng aktwal na mga protocol at pagpapatupad ng cellular network na na-hack. Pangunahin dahil ang mga pamantayang ito ay binuo sa mga silid na puno ng usok at nakadokumento sa 12000-pahinang mga dokumento na hindi kayang hawakan ng bawat mananaliksik. Bukod dito, ang pagpapatupad ng mga pag-atake na ito ay nagpipilit sa mga mananaliksik na gumamit ng mga kumplikadong protocol ng radyo.

Kaya, ang mga malubhang kahinaan sa cryptographic ay maaaring kumalat sa buong mundo, marahil ay pagsasamantalahan lamang ng mga pamahalaan, bago mapansin ng sinumang mananaliksik. Ngunit paminsan-minsan ay may mga pagbubukod, at ang pag-atake ngayon ay isa na rito.

Mga May-akda mga pag-atakeMga Nag-ambag: David Rupprecht, Katharina Kohls, Thorsten Holz at Christina PΓΆpper mula sa Ruhr-University Bochum at New York University Abu Dhabi. Ito ay isang mahusay na pag-atake upang muling i-install ang key sa voice protocol na malamang na ginagamit mo na (ipagpalagay na ikaw ay mula sa isang mas lumang henerasyon na gumagawa pa rin ng mga tawag sa telepono gamit ang isang cell phone).

Upang magsimula sa, isang maikling makasaysayang iskursiyon.

Ano ang LTE at VoLTE?

Ang batayan ng aming modernong mga pamantayan ng cellular telephony ay inilatag sa Europa noong 80s ayon sa pamantayan Global System para sa Mobile (Global System para sa Mobile Communications). Ang GSM ay ang unang pangunahing pamantayan ng digital cellular telephony, na nagpakilala ng ilang mga rebolusyonaryong tampok, tulad ng paggamit pag-encrypt upang protektahan ang mga tawag sa telepono. Ang maagang GSM ay pangunahing idinisenyo para sa mga komunikasyong boses, bagaman maaaring pera magpadala ng iba pang data.

Habang naging mas mahalaga ang paghahatid ng data sa mga cellular na komunikasyon, binuo ang mga pamantayan ng Long Term Evolution (LTE) upang i-streamline ang ganitong uri ng komunikasyon. Ang LTE ay batay sa isang pangkat ng mga mas lumang pamantayan gaya ng GSM, EDGE ΠΈ Hspa at idinisenyo upang pataasin ang bilis ng pagpapalitan ng data. Maraming branding at nanlilinlang sa pamamagitan ng mga maling pagtatalagangunit ang TL;DR ay ang LTE ay isang sistema ng paghahatid ng data na nagsisilbing tulay sa pagitan ng mga mas lumang packet data protocol at mga hinaharap na teknolohiya ng cellular data 5G.

Siyempre, sinasabi sa atin ng kasaysayan na kapag may sapat na (IP) bandwidth na magagamit, ang mga konsepto tulad ng "boses" at "data" ay magsisimulang lumabo. Ang parehong naaangkop sa mga modernong cellular protocol. Upang gawing mas maayos ang paglipat na ito, tinutukoy ang mga pamantayan ng LTE Voice-over-LTE (VoLTE), na isang IP standard para sa pagdadala ng mga voice call nang direkta sa data plane ng isang LTE system, na ganap na lumalampas sa dial-up na bahagi ng cellular network. Tulad ng sa pamantayan Mga tawag sa VoIP,Ang mga tawag sa VoLTE ay maaaring wakasan ng cellular operator at konektado sa regular na network ng telepono. O (tulad ng nagiging mas karaniwan) sila maaaring i-ruta direkta mula sa isang cellular client patungo sa isa pa, at maging sa pagitan ng iba't ibang provider.

Tulad ng karaniwang VoIP, ang VoLTE ay batay sa dalawang sikat na IP-based na protocol: Session Initiation Protocol (Soto Initiation Protocol – SIP) para sa pag-setup ng tawag, at real-time na transport protocol (Real Time Transport Protocol, na dapat na tinatawag na RTTP ngunit talagang tinatawag na RTP) para sa pagproseso ng data ng boses. Nagdaragdag din ang VoLTE ng ilang karagdagang pag-optimize ng bandwidth, gaya ng header compression.

Okay, ano ang kinalaman nito sa pag-encrypt?

LTE, parang GSM, ay may karaniwang hanay ng mga cryptographic na protocol para sa pag-encrypt ng mga packet habang ipinapadala ang mga ito sa himpapawid. Pangunahing idinisenyo ang mga ito upang protektahan ang iyong data habang naglalakbay ito sa pagitan ng telepono (tinatawag na kagamitan ng gumagamit, o UE) at ng cell tower (o saanman magpasya ang iyong provider na wakasan ang koneksyon). Ito ay dahil tinitingnan ng mga cellular provider ang mga external na eavesdropping device bilang mga kaaway. Well, siyempre.

(Gayunpaman, ang katotohanan na ang mga koneksyon ng VoLTE ay maaaring direktang mangyari sa pagitan ng mga kliyente sa iba't ibang network ng provider ay nangangahulugan na ang VoLTE protocol mismo ay may ilang karagdagang at opsyonal na mga protocol ng pag-encrypt na maaaring mangyari sa mas mataas na mga layer ng network. Ito ay hindi nauugnay sa kasalukuyang artikulo, maliban sa katotohanan na maaari nilang sirain ang lahat (sa susunod na pag-uusapan natin ang tungkol sa kanila).

Sa kasaysayan, ang pag-encrypt sa GSM ay naging maraming mga kahinaan: masama mga cipher, mga protocol kung saan ang telepono lang ang napatotohanan sa tower (ibig sabihin, maaaring gayahin ng isang attacker ang tore, na bumubuo ng "Stingray") at iba pa. Itinuwid ng LTE ang marami sa mga halatang bug habang pinapanatili ang halos parehong istraktura.

Magsimula tayo sa mismong pag-encrypt. Ipagpalagay na nangyari na ang pangunahing paglikha - at pag-uusapan natin iyon sa isang minuto - pagkatapos ay ang bawat packet ng data ay naka-encrypt gamit ang stream encryption gamit ang isang bagay na tinatawag na "EEA" (na sa pagsasanay ay maaaring ipatupad gamit ang mga bagay tulad ng AES ). Mahalaga, ang mekanismo ng pag-encrypt dito ay CTRtulad ng nasa ibaba:

Pag-atake ng linggo: mga voice call sa LTE (ReVoLTE)
Ang pangunahing algorithm ng pag-encrypt para sa mga VoLTE packet (pinagmulan: ReVoLTE). Ang EEA ay isang cipher, ang "COUNT" ay isang 32-bit na counter, ang "BEARER" ay isang natatanging session identifier na naghihiwalay sa mga koneksyon ng VoLTE mula sa regular na trapiko sa Internet. Isinasaad ng "DIRECTION" kung saang direksyon dumadaloy ang trapiko - mula sa UE hanggang sa tower o vice versa.

Dahil ang encryption algorithm mismo (EEA) ay maaaring ipatupad gamit ang isang malakas na cipher tulad ng AES, ito ay malamang na hindi magkakaroon ng anumang direktang pag-atake sa cipher mismo tulad nito. nangyari sa panahon ng GSM. Gayunpaman, ito ay malinaw na kahit na may isang malakas na cipher, ang encryption scheme na ito ay isang mahusay na paraan upang kunan ng larawan ang iyong sarili sa paa.

Sa partikular: ang pamantayan ng LTE ay gumagamit ng isang (hindi napatotohanan) stream cipher na may mode na magiging lubhang mahina kung ang counter - at iba pang mga input tulad ng "bearer" at "direksyon" - ay muling gagamitin. Sa modernong pagsasalita, ang termino para sa konseptong ito ay "hindi na muling gamitin ang pag-atake," ngunit ang mga potensyal na panganib dito ay hindi isang bagay na moderno. Ang mga ito ay sikat at sinaunang, mula pa noong panahon ng glam metal at maging ng disco.

Pag-atake ng linggo: mga voice call sa LTE (ReVoLTE)
Umiral ang mga pag-atake sa hindi muling paggamit sa CTR mode kahit noong nakilala ang Poison

Upang maging patas, ang mga pamantayan ng LTE ay nagsasabi, "Pakiusap huwag gamitin muli ang mga metrong ito." Ngunit ang mga pamantayan ng LTE ay humigit-kumulang 7000 mga pahina ang haba, at sa anumang kaso, ito ay tulad ng pagmamakaawa sa mga bata na huwag maglaro ng baril. Ang mga ito ay hindi maiiwasan, at ang mga kakila-kilabot na bagay ay mangyayari. Ang pagpapaputok ng baril sa kasong ito ay isang pag-atake sa muling paggamit ng keystream, kung saan ang dalawang magkaibang kumpidensyal na mensahe ay XOR ang parehong keystream byte. Ito ay kilala na ito ay may napakamapanirang epekto sa pagiging kompidensiyal ng mga komunikasyon.

Ano ang ReVoLTE?

Ang pag-atake ng ReVoLTE ay nagpapakita na, sa pagsasagawa, ang napaka-mahina na disenyo ng pag-encrypt na ito ay maling ginagamit ng real-world na hardware. Sa partikular, sinusuri ng mga may-akda ang mga totoong tawag sa VoLTE na ginawa gamit ang komersyal na kagamitan at ipinapakita na maaari silang gumamit ng tinatawag na "key reinstallation attack." (Maraming kredito para sa paghahanap ng problemang ito ay napupunta sa Sina Reise at Lu (Raza & Lu), na unang nagturo ng potensyal na kahinaan. Ngunit ginagawa ito ng pananaliksik ng ReVoLTE sa isang praktikal na pag-atake).

Hayaan akong ipakita sa iyo sa madaling sabi ang kakanyahan ng pag-atake, bagaman dapat mong tingnan at pinagmumulan ng dokumento.

Maaaring ipagpalagay ng isang tao na sa sandaling magtatag ang LTE ng isang koneksyon sa packet data, ang gawain ng voice over LTE ay magiging isang bagay lamang ng pagruruta ng mga voice packet sa koneksyong iyon kasama ng lahat ng natitira sa iyong trapiko. Sa madaling salita, ang VoLTE ay magiging isang konsepto na umiiral lamang ika-2 antas [Mga modelo ng OSI - tinatayang]. Ito ay hindi ganap na totoo.

Sa katunayan, ipinakilala ng LTE link layer ang konsepto ng "bearer". Ang mga maydala ay hiwalay na mga identifier ng session na naghihiwalay sa iba't ibang uri ng packet traffic. Ang regular na trapiko sa internet (ang iyong Twitter at Snapchat) ay dumadaan sa isang tagadala. Ang SIP signaling para sa VoIP ay dumadaan sa isa pa, at ang mga voice traffic packet ay pinoproseso sa pamamagitan ng isang pangatlo. Hindi ako masyadong marunong tungkol sa LTE radio at network routing mechanisms, pero naniniwala ako na ginagawa ito sa ganitong paraan dahil gusto ng mga LTE network na ipatupad ang mga mekanismo ng QoS (quality of service) para maproseso ang iba't ibang packet stream sa magkakaibang antas ng priyoridad: i.e. inyo pangalawang-rate Ang mga koneksyon sa TCP sa Facebook ay maaaring may mas mababang priyoridad kaysa sa iyong mga real-time na voice call.

Ito ay karaniwang hindi isang problema, ngunit ang mga kahihinatnan ay ang mga sumusunod. Ang mga susi para sa pag-encrypt ng LTE ay hiwalay na nilikha sa tuwing may naka-install na bagong "bearer". Karaniwan, dapat itong mangyari muli sa tuwing tatawag ka sa telepono. Magreresulta ito sa ibang encryption key na gagamitin para sa bawat tawag, na inaalis ang posibilidad ng muling paggamit ng parehong key para i-encrypt ang dalawang magkaibang hanay ng mga voice call packet. Sa katunayan, ang pamantayan ng LTE ay nagsasabi ng isang bagay tulad ng "dapat kang gumamit ng ibang key sa tuwing mag-i-install ka ng bagong tagadala upang mahawakan ang isang bagong tawag sa telepono." Ngunit hindi ito nangangahulugan na ito ay talagang nangyayari.

Sa katunayan, sa totoong buhay na mga pagpapatupad, dalawang magkaibang tawag na magaganap sa malapit na temporal na kalapitan ay gagamit ng parehong key - sa kabila ng katotohanang ang mga bagong maydala ng parehong pangalan ay na-configure sa pagitan nila. Ang tanging praktikal na pagbabago na nangyayari sa pagitan ng mga tawag na ito ay ang encryption counter ay na-reset sa zero. Sa panitikan kung minsan ay tinatawag itong atake sa muling pag-install ng key. Ang isa ay maaaring magtaltalan na ito ay mahalagang isang error sa pagpapatupad, bagaman sa kasong ito ang mga panganib ay tila higit na nagmumula sa pamantayan mismo.

Sa pagsasagawa, ang pag-atakeng ito ay nagreresulta sa muling paggamit ng pangunahing stream, kung saan makukuha ng attacker ang mga naka-encrypt na packet na $inline$C_1 = M_1 oplus KS$inline$ at $inline$C_2 = M_2 oplus KS$inline$, na nagbibigay-daan sa pagkalkula ng $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Mas mabuti pa, kung kilala ng attacker ang isa sa $inline$M_1$inline$ o $inline$M_2$inline$, maaari niyang mabawi kaagad ang isa. Nagbibigay ito sa kanya ng isang malakas na insentibo alamin ang isa sa dalawang hindi naka-encrypt na bahagi.

Dinadala tayo nito sa kumpleto at pinakamabisang senaryo ng pag-atake. Isaalang-alang ang isang umaatake na maaaring humarang sa trapiko ng radyo sa pagitan ng isang target na telepono at isang cell tower, at na kahit papaano ay sapat na mapalad na makapagtala ng dalawang magkaibang mga tawag, na ang pangalawa ay nangyayari kaagad pagkatapos ng una. Ngayon isipin na maaari niyang hulaan ang hindi naka-encrypt na nilalaman ng isa sa mga tawag. Sa ganyan serendipity ganap na mai-decrypt ng aming attacker ang unang tawag gamit ang isang simpleng XOR sa pagitan ng dalawang hanay ng mga packet.

Siyempre, walang kinalaman ang suwerte. Dahil ang mga telepono ay idinisenyo upang makatanggap ng mga tawag, ang isang umaatake na makakarinig sa unang tawag ay makakapagsimula ng pangalawang tawag sa eksaktong sandali na natapos ang unang tawag. Ang pangalawang tawag na ito, kung gagamitin muli ang parehong encryption key na may counter reset sa zero, ay magbibigay-daan sa hindi naka-encrypt na data na mabawi. Bukod dito, dahil talagang kinokontrol ng aming attacker ang data sa panahon ng pangalawang tawag, mababawi niya ang mga nilalaman ng unang tawag - salamat sa maraming partikular na ipinatupad maliliit na bagay, naglalaro sa kanyang tagiliran.

Narito ang isang larawan ng pangkalahatang plano ng pag-atake na kinuha mula sa orihinal na dokumento:

Pag-atake ng linggo: mga voice call sa LTE (ReVoLTE)
Pangkalahatang-ideya ng pag-atake mula sa ReVoLTE na dokumento. Ipinapalagay ng scheme na ito na dalawang magkaibang tawag ang ginawa gamit ang parehong key. Kinokontrol ng attacker ang passive sniffer (kaliwa sa itaas), pati na rin ang pangalawang telepono, kung saan maaari siyang tumawag sa telepono ng biktima.

Kaya gumagana ba talaga ang pag-atake?

Sa isang banda, ito talaga ang pangunahing tanong para sa artikulo tungkol sa ReVoLTE. Ang lahat ng mga ideya sa itaas ay mahusay sa teorya, ngunit nag-iiwan sila ng maraming katanungan. Gaya ng:

  1. Posible ba (para sa mga akademikong mananaliksik) na aktwal na humarang ng koneksyon sa VoLTE?
  2. Nagre-rekey ba talaga ang mga totoong LTE system?
  3. Maaari mo ba talagang simulan ang pangalawang tawag nang mabilis at sapat na maaasahan para magamit muli ng telepono at tower ang susi?
  4. Kahit na rekey ang mga system, maaari mo bang talagang malaman ang hindi naka-encrypt na nilalaman ng pangalawang tawag - dahil ang mga bagay tulad ng mga codec at transcoding ay maaaring ganap na baguhin ang (bit-by-bit) na nilalaman ng pangalawang tawag na iyon, kahit na mayroon kang access sa "bits "Galing sa iyong attack phone?

Sinasagot ng trabaho ng ReVoLTE ang ilan sa mga tanong na ito nang sang-ayon. Gumagamit ang mga may-akda ng komersyal na software-reconfigurable radio stream sniffer na tinatawag Airscope para ma-intercept ang isang tawag sa VoLTE mula sa downlink side. (Sa palagay ko, ang pagkuha lang sa software at pagkuha ng magaspang na ideya kung paano ito gumagana ay tumagal ng ilang buwan sa buhay ng mahihirap na nagtapos na mga mag-aaral - na karaniwan para sa ganitong uri ng akademikong pananaliksik).

Nalaman ng mga mananaliksik na para gumana ang susi, ang pangalawang tawag ay kailangang mangyari nang mabilis pagkatapos ng una, ngunit hindi masyadong mabilisβ€”mga sampung segundo para sa mga operator na kanilang pinag-eksperimento. Sa kabutihang palad, hindi mahalaga kung sasagutin ng user ang tawag sa loob ng panahong ito - ang "ring" ibig sabihin. Ang koneksyon ng SIP mismo ay pinipilit ang operator na muling gamitin ang parehong key.

Kaya, marami sa mga pinakamasayang problema ay umiikot sa problema (4) - pagtanggap ng mga piraso ng hindi naka-encrypt na nilalaman ng isang tawag na pinasimulan ng isang umaatake. Ito ay dahil maraming maaaring mangyari sa iyong nilalaman habang naglalakbay ito mula sa telepono ng umaatake patungo sa telepono ng biktima sa pamamagitan ng cellular network. Halimbawa, ang mga maruruming trick gaya ng muling pag-encode ng isang naka-encode na audio stream, na nag-iiwan sa tunog na pareho, ngunit ganap na nagbabago sa binary na representasyon nito. Gumagamit din ang mga LTE network ng RTP header compression, na maaaring makabuluhang baguhin ang karamihan sa RTP packet.

Sa wakas, ang mga packet na ipinadala ng attacker ay dapat na halos naaayon sa mga packet na ipinadala sa unang tawag sa telepono. Maaari itong maging problema dahil ang pagbabago sa katahimikan sa panahon ng isang tawag sa telepono ay nagreresulta sa mga mas maiikling mensahe (aka comfort noise) na maaaring hindi akma sa orihinal na tawag.

Seksyon "tunay na pag-atake sa mundo" Ito ay nagkakahalaga ng pagbabasa nang detalyado. Tinutugunan nito ang marami sa mga isyu sa itaas - lalo na, nalaman ng mga may-akda na ang ilang mga codec ay hindi na-recode, at ang humigit-kumulang 89% ng binary na representasyon ng target na tawag ay maaaring mabawi. Ito ay totoo para sa hindi bababa sa dalawang European operator na nasubok.

Ito ay isang nakakagulat na mataas na rate ng tagumpay, at sa totoo lang ay mas mataas kaysa sa inaasahan ko noong nagsimula akong magtrabaho sa dokumentong ito.

Kaya ano ang maaari nating gawin upang ayusin ito?

Ang agarang sagot sa tanong na ito ay napaka-simple: dahil ang kakanyahan ng kahinaan ay isang pangunahing pag-atake sa muling paggamit (muling pag-install), ayusin lamang ang problema. Siguraduhin na ang isang bagong key ay nakuha para sa bawat tawag sa telepono, at hindi kailanman payagan ang packet counter na i-reset ang counter pabalik sa zero gamit ang parehong key. Nalutas ang problema!

O pwedeng hindi. Mangangailangan ito ng pag-upgrade ng maraming kagamitan, at, sa totoo lang, ang naturang pag-aayos sa sarili nito ay hindi sobrang maaasahan. Magiging maganda kung ang mga pamantayan ay makakahanap ng isang mas ligtas na paraan upang ipatupad ang kanilang mga mode ng pag-encrypt na sa pamamagitan ng default ay hindi maaaring masugatan sa mga pangunahing problema sa muling paggamit.

Ang isang posibleng pagpipilian ay ang paggamit mga mode ng pag-encrypt kung saan ang maling paggamit ng nonce ay hindi humahantong sa mga sakuna na kahihinatnan. Ito ay maaaring masyadong mahal para sa ilang kasalukuyang hardware, ngunit ito ay tiyak na isang lugar na dapat pag-isipan ng mga taga-disenyo sa hinaharap, lalo na't ang mga pamantayan ng 5G ay malapit nang sakupin ang mundo.

Itinataas din ng bagong pag-aaral na ito ang pangkalahatang tanong kung bakit ang parehong sumpain na pag-atake ay patuloy na lumalabas sa sunud-sunod na pamantayan, marami sa mga ito ay gumagamit ng halos kaparehong mga disenyo at protocol. Kapag nahaharap ka sa problema ng muling pag-install ng parehong key sa maraming malawakang ginagamit na mga protocol tulad ng WPA2, hindi mo ba naiisip na maaaring oras na para gawing mas matatag ang iyong mga detalye at mga pamamaraan sa pagsubok? Itigil ang pagtrato sa mga nagpapatupad ng mga pamantayan bilang maalalahanin na mga kasosyo na matulungin sa iyong mga babala. Tratuhin sila bilang (hindi sinasadya) na mga kalaban na hindi maiiwasang magkamali.

O, bilang kahalili, maaari naming gawin kung ano ang ginagawa ng mga kumpanya tulad ng Facebook at Apple: gawin ang pag-encrypt ng voice call sa mas mataas na antas ng stack ng OSI network, nang hindi umaasa sa mga tagagawa ng cellular equipment. Maaari pa nga nating itulak ang end-to-end na pag-encrypt ng mga voice call, tulad ng ginagawa ng WhatsApp sa Signal at FaceTime, sa pag-aakalang hihinto lang ang gobyerno ng US. trip kita. Pagkatapos (maliban sa ilang metadata) marami sa mga problemang ito ay mawawala na lang. Ang solusyon na ito ay partikular na may kaugnayan sa isang mundo kung saan kahit ang mga gobyerno ay hindi sigurado kung pinagkakatiwalaan nila ang kanilang mga supplier ng kagamitan.

O kaya naman ay magagawa na lang natin ang nagawa na ng ating mga anak: ihinto ang pagsagot sa mga nakakainis na voice call na iyon.

Pinagmulan: www.habr.com

Magdagdag ng komento