Fra oversætteren og TL;DR
TL;DR:
Det ser ud til, at VoLTE er endnu mere sårbar end de første Wi-Fi-klienter med WEP. Udelukkende en arkitektonisk fejl, der tillader lidt XOR'ing af trafikken og gendannelse af nøglen. Angrebet er muligt, hvis man befinder sig tæt på den der ringer, og den person ofte foretager opkald.
Tak for tippet og TL;DR
Forskere har lavet en app til at afgøre, om din udbyder er sårbar, læs mere . Del resultaterne i kommentarerne, i mit område er VoLTE deaktiveret på MegaFon.
Om forfatteren
Matthew Green.
Jeg er kryptograf og professor ved Johns Hopkins Universitet. Jeg har udviklet og analyseret kryptografiske systemer brugt i trådløse netværk, betalingssystemer og platformsbeskyttelse af digitalt indhold. I mine undersøgelser ser jeg på forskellige måder at bruge kryptografi til at forbedre brugernes privatliv.
Det er længe siden, jeg har skrevet et indlæg i formatet , og det har frustreret mig. Ikke fordi der ikke har været angreb, men primært fordi der ikke har været angreb på noget, der er omfattende nok til at bringe mig ud af min kreative krise.
Men i dag stødte jeg på ved navn ReVoLTE på protokoller, hvis hack glæder mig særligt, nemlig protokoller i mobilnetværk (voice over) LTE. Jeg er begejstret for netop disse protokoller – og dette nye angreb – fordi det meget sjældent er muligt at observere hack af reelle protokoller og implementeringer i mobilnetværk. Hovedsageligt fordi disse standarder er udviklet i røgfyldte rum og dokumenteret i 12000-siders dokumenter, som ikke alle forskere kan forstå. Desuden tvinger implementeringen af disse angreb forskere til at bruge komplekse radio-protokoller.
Dermed kan alvorlige kryptografiske sårbarheder sprede sig over hele verden, og de kan blive brugt af regeringer, før en eller anden forsker lægger mærke til dem. Men fra tid til anden er der undtagelser, og dagens angreb er en af dem.
Forfattere : David Rupprecht, Katharina Kohls, Thorsten Holz og Christina Pöpper fra Ruhr-Universität Bochum og New York University Abu Dhabi. Dette er et glimrende angreb på geninstallationen af nøglen i det stemmeprotokol, som du sandsynligvis allerede bruger (forudsat at du er fra den ældre generation, der stadig laver telefonopkald med mobiltelefonen).
For at starte – en kort historisk gennemgang.
Hvad er LTE og VoLTE?
Grundlaget for vores moderne mobiltelefoni standarder blev lagt i Europa allerede i 1980’erne med standarden (Globale system for mobil kommunikation). GSM var den første hovedstandard for digital mobiltelefoni, der introducerede en række revolutionerende funktioner, såsom brugen af til at beskytte telefonopkald. Tidlig GSM blev primært udviklet til taleog kommunikation, selvom man mod betaling kunne .
Som vigtigheden af datatransmission i mobilkommunikation voksede, blev standarderne Long Term Evolution (LTE) udviklet for at optimere denne type kommunikation. LTE er baseret på en gruppe ældre standarder, såsom GSM, og og er designet til at øge datahastigheden. I dette område er der meget branding og men TL;DR er, at LTE er et datatransmissionssystem, der fungerer som en bro mellem de gamle protokoller for datatransmission og fremtidige mobil kommunikationsteknologier. .
Historien fortæller os naturligvis, at så snart der er tilstrækkelig (IP) båndbredde, vil begreber som "stemme" og "data" begynde at flyde sammen. Det samme gælder for moderne mobilprotokoller. For at gøre denne overgang mere glidende definerer LTE-standarderne (VoLTE), som er en IP-standard til direkte transmission af stemmeopkald gennem dataoverførselsplanen i LTE-systemet, helt uden at gå gennem den kommuterede del af mobilnetværket. Ligesom traditionelle kan VoLTE-opkald termineres af mobiloperatøren og forbindes til den almindelige telefonnetværk. Eller (hvilket bliver mere og mere almindeligt) kan de direkte fra en mobilkunde til en anden, og endda mellem forskellige udbydere.
Som standard VoIP er VoLTE baseret på to populære IP-baserede protokoller: session initiation protocol ( – SIP) til at etablere opkald, og real-time transport protocol (, som burde kaldes RTTP, men faktisk kaldes RTP) til behandling af voice data. VoLTE tilføjer også nogle ekstra optimeringer af båndbredden, såsom headerkomprimering.
Okay, hvad har dette at gøre med kryptering?
LTE, ligesom , har et standardiseret sæt af kryptografiske protokoller til kryptering af pakker under deres transmission i luften. De er primært designet til at beskytte dine data, mens de bevæger sig mellem telefonen (kendt som "user equipment", eller UE) og mobilmast (eller hvor som helst din udbyder beslutter at terminere forbindelsen). Dette er fordi mobiludbydere betragter eksterne overvågningsenheder som fjender. Selvfølgelig.
(Men det faktum, at VoLTE-forbindelser kan ske direkte mellem kunder i forskellige udbydernet, betyder, at selve VoLTE-protokollen har nogle ekstra og valgfrie krypteringsprotokoller, der kan finde sted på højere netværkslag. Dette er ikke relevant for den nuværende artikel, bortset fra at de kan ødelægge det hele. Vi vil kort omtale dem senere).
Historisk set har krypteringen i GSM haft : dårlige , protokoller hvor kun telefonen blev autentificeret på masten (det betyder, at en angriber kunne udgive sig for at være masten, hvilket resulterede i ) og så videre. LTE rettede mange af de åbenlyse fejl, men bevarede dog størstedelen af den tidligere struktur.
Lad os begynde med selve krypteringen. Hvis vi antager, at nøglen allerede er blevet genereret – og vi vil tale om det om et øjeblik – så krypteres hver datapakke med en stream cipher ved hjælp af en eller anden cipher kaldet "EEA" (som i praksis kan implementeres ved hjælp af ting som AES). Fundamentalt set er krypteringsmekanismen her , som vist nedenfor:

Den primære algoritme til kryptering af VoLTE-pakker (kilde: ). EEA – krypteringsmetode, «COUNT» – 32-bit tæller, «BEARER» – en unik sessionsidentifikator, der adskiller VoLTE-forbindelser fra almindelig internettrafik. «DIRECTION» angiver, hvilken vej trafikken går – fra UE til basestationen eller omvendt.
Da selve krypteringsmetoden (EEA) kan implementeres ved hjælp af en stærk algoritme som AES, er det usandsynligt, at der vil være nogen direkte angreb på selve krypteringen, som det Men det er tydeligt, at selv med en stærk kryptering repræsenterer denne krypteringsordning et godt middel til at skyde sig selv i foden.
Specifikt: I LTE-standarden bruges (uautentificeret) stream-kryptering med en tilstand, som vil være ekstremt sårbar, hvis tælleren – samt andre indgange som «bearer» og «direction» – nogensinde bliver genbrugt. I moderne terminologi kaldes dette koncept for «nonce-genbrugsangreb», men de potentielle risici her er ikke noget nyt. De er kendte og gamle, der går tilbage til glam metal- og endda disco-tider.

Angreb på genbrug af nonce i CTR-tilstand har eksisteret siden Poison blev berømte.
For retfærdighedens skyld siger LTE-standarderne: «Brug venligst ikke disse tællere igen». Men LTE-standarderne fylder omkring 7000 sider, og det er i hvert fald som at bede små børn om ikke at lege med en pistol. De vil uundgåeligt gøre det, og forfærdelige ting vil ske. I dette tilfælde er den udløsende pistol et angreb med genbrug af nøgle-stream, hvor to forskellige fortrolige meddelelser XOR'er med de samme byte fra nøgle-streamen. Det vides, at dette .
Hvad er ReVoLTE?
ReVoLTE-angrebet demonstrerer, at i praksis bliver denne meget sårbare krypteringskonstruktion brugt forkert af det faktiske udstyr. Specifikt analyserer forfatterne faktiske VoLTE-opkald foretaget med kommercielt udstyr og viser, at de kan udnytte noget kaldet «nøgle-geninstallationsangreb». (En stor fortjeneste for at finde dette problem tilkommer (Raza & Lu), som først påpegede den potentielle sårbarhed. Men ReVoLTE-forskningen gør det til et praktisk angreb).
Lad mig kort vise dig essensen af angrebet, selvom du bør se og .
Man kan antage, at når LTE opretter en datatransmissionsforbindelse, bliver opgaven med at transmittere stemme over LTE blot et spørgsmål om at rute stemmepakkerne gennem denne forbindelse sammen med al din øvrige trafik. Med andre ord vil VoLTE være et koncept, der kun eksisterer ovenfor [OSI-modellen – eksemplificeret.]. Det er ikke helt korrekt.
Faktisk introducerer kanalniveauet i LTE konceptet 'bearer'. En bearer er separate sessionsidentifikatorer, der adskiller forskellige typer af pakketransmission. Almindelig internettrafik (din Twitter og Snapchat) går gennem en bearer. SIP-signalisering til VoIP går gennem en anden, mens pakker med stemmetrafik behandles på en tredje. Jeg er ikke særlig godt inde i mekanismerne bag radiokanaler og netværksrouting i LTE, men jeg antager, at det gøres på denne måde, fordi LTE-netværk ønsker at sikre, at QoS (Quality of Service) mekanismer fungerer, således at forskellige pakkestrømme behandles med forskellige prioriteringsniveauer: dvs. dine sekundære TCP-forbindelser med Facebook kan have lavere prioritet end dine realtids stemmeopkald.
Dette er sådan set ikke et problem, men konsekvenserne er som følger. Nøgler til kryptering i LTE genereres separat hver gang, der oprettes en ny 'bearer'. I princippet skal dette ske hver gang, du foretager et nyt telefonopkald. Dette betyder, at der for hvert opkald vil blive brugt en forskellig krypteringsnøgle, hvilket ekskluderer muligheden for at genbruge den samme nøgle til at kryptere to forskellige sæt af stemmeopkaldspakker. Faktisk siger LTE-standarden noget som: 'du skal bruge forskellige nøgler hver gang, du opretter en ny bearer til at håndtere et nyt telefonopkald'. Men det betyder ikke nødvendigvis, at det rent faktisk sker.
I virkeligheden vil to forskellige kald, der finder sted i umiddelbar tid nærhed, bruge den samme nøgle — på trods af at der konfigureres nye (navngivne) bearer imellem dem. Den eneste praktiske ændring, der sker mellem disse kald, er, at krypteringsz tælleren nulstilles. I litteraturen kaldes dette nogle gange . Man kan hævde, at dette i essensen er en implementeringsfejl, selvom risiciene i dette tilfælde synes i vid udstrækning at stamme fra selve standarden.
I praksis fører denne angreb til genbrug af nøglestrømmen, hvor en angriber kan få adgang til de krypterede pakker $inline$C_1 = M_1 oplus KS$inline$ og $inline$C_2 = M_2 oplus KS$inline$, hvilket gør det muligt at beregne $inline$C_1 oplus C_2 = M_1 oplus M_2$inline$. Endnu bedre, hvis angriberen kender ét af $inline$M_1$inline$ eller $inline$M_2$inline$, kan han straks gendanne det andet. Dette giver ham et stærkt incitament til at finde én af de to ukrypterede komponenter.
Dette fører os til det mest komplette og effektive angrebsscenario. Lad os forestille os en angriber, der kan opsnappe radiotrafikken mellem den målrettede telefon og mobiltelefonen, og som på en eller anden snedig måde har "held" med at optage to forskellige opkald, hvor det andet finder sted umiddelbart efter det første. Forestil dig nu, at han på en eller anden måde kan gætte det ukrypterede indhold af et af opkaldene. Ved sådan en lykkelig tilfældighed kan vores angriber fuldstændigt dekryptere det første opkald ved hjælp af simpel XOR mellem to sæt pakker.
Naturligvis har heldet intet med det at gøre. Da telefoner er designet til at modtage opkald, vil en angriber, der kan lytte til det første opkald, kunne starte og andet opkald lige i det øjeblik, det første afsluttes. Dette andet opkald, i tilfælde af genbrug af den samme krypteringsnøgle med tælleren nulstillet, vil muliggøre gendannelse af ukrypterede data. Desuden, da vores angriber faktisk kontrollerer dataene under det andet opkald, kan han gendanne indholdet af det første opkald – takket være en række specifikt implementerede detaljer, der arbejder til hans fordel.
Her er et billede af den overordnede angrebsplan, hentet fra :

Oversigt over angrebet fra . Denne skema forudsætter, at der foregår to forskellige opkald ved hjælp af den samme nøgle. Angriberen kontrollerer en passiv sniffer (øverst til venstre) samt en anden telefon, som han kan bruge til at foretage det andet opkald til offerets telefon.
Fungerer angrebet virkelig?
På den ene side er dette virkelig det centrale spørgsmål for artiklen om ReVoLTE. Teoretisk er alle de ovennævnte idéer fantastiske, men efterlader mange spørgsmål. For eksempel:
- Er det muligt for (akademiske forskere) faktisk at opsnappe et VoLTE-forbindelse?
- Geninstallerer ægte LTE-systemer virkelig nøgler?
- Kan du faktisk starte et andet opkald hurtigt og pålideligt nok til, at telefonen og tårnet genbruger nøglen?
- Selv hvis systemerne geninstallerer nøgler, kan du faktisk se det ukrypterede indhold af det andet opkald – i betragtning af at ting som codec og rekodning kan ændre (bit-for-bit) indholdet af dette andet opkald fuldstændigt, selvom du har adgang til "bittene", der kommer fra din angribende telefon?
Nogle af disse spørgsmål besvares positivt af arbejdet med ReVoLTE. Forfatterne bruger en kommerciel software-rekonfigurerbar radiostrøm-sniffer, der hedder til at opsnappe VoLTE-opkald fra nedadgående linje. (Jeg tror, at det bare at mestre softwaren og have en overordnet forståelse af, hvordan den fungerer, har taget måneder af livet fra de stakkels ph.d.-studerende - hvilket er typisk for sådanne akademiske undersøgelser).
Forskere fandt frem til, at for at genbruge nøglen skal det andet opkald finde sted hurtigt efter det første er afsluttet, men ikke for hurtigt – cirka ti sekunder for de operatører, de eksperimenterede med. Heldigvis betyder det ikke noget, om brugeren svarer på opkaldet i løbet af denne tid – "opkaldet", dvs. selve SIP-forbindelsen får operatøren til at genbruge den samme nøgle.
Dermed drejer mange af de mest grusomme problemer sig om problem (4) – at få bits af det ukrypterede indhold af et opkald, der er initieret af en angriber. Dette sker, fordi der kan ske mange ting med dit indhold, mens det bevæger sig fra angriberens telefon til offerets telefon gennem mobilnetværket. For eksempel kan der opstå snyderier som at omkode den kodede lydstrøm, hvilket efterlader lyden den samme, men fuldstændig ændrer dens binære repræsentation. I LTE-netværk anvendes der også komprimering af RTP-overskrifter, som kan ændre en stor del af RTP-pakken væsentligt.
Endelig skal de pakker, der sendes af angriberen, arrangeres nogenlunde på linje med de pakker, der blev sendt under det første telefonopkald. Dette kan være problematisk, da modificering af stilhed under telefonopkaldet resulterer i kortere meddelelser (den såkaldte komfortstøj), som kan være svært at synkronisere med det oprindelige opkald.
er værd at læse i alle detaljer. Den behandler mange af de ovenfor nævnte problemer – især fandt forfatterne ud af, at nogle codec'er ikke blev omkodet, og at cirka 89% af den binære repræsentation af det målrettede opkald kan gendannes. Dette gælder i det mindste for to europæiske operatører, der blev testet.
Det er et utrolig højt niveau af succes, og ærligt talt meget højere, end jeg havde forventet, da jeg begyndte at arbejde på dette dokument.
Hvad kan vi gøre for at rette op på dette?
Det øjeblikkelige svar på dette spørgsmål er meget simpelt: da essensen af sårbarheden ligger i angrebet på genbrug (geninstallation) af nøgle, skal vi bare rette dette problem. Sørg for, at der for hvert telefonopkald blev opnået en ny nøgle, og lad aldrig pakke tælleren nulstille tælleren tilbage til nul med samme nøgle. Problemet er løst!
Måske ikke. Det vil kræve en opgradering af en stor mængde udstyr, og for at være ærlig, er en sådan løsning ikke super pålidelig i sig selv. Det ville være godt, hvis standarderne kunne finde en sikrere måde at implementere deres krypteringsmetoder på, som ikke er katastrofalt sårbar overfor problemer med genbrugen af nøgler som standard.
En af de mulige løsninger er at anvende Det kan være for dyrt for nogle moderne hardwareløsninger, men det er bestemt en retning, som designere bør overveje i fremtiden, især når man tænker på, at 5G-standarderne snart vil overtage verden.
Denne nye forskning rejser også det generelle spørgsmål om, hvorfor mange af dem bruger meget lignende konstruktioner og protokoller. Når du står overfor problemet med geninstallation af den samme nøgle i flere udbredte protokoller som WPA2, virker det ikke som om, det måske er tid til at gøre dine specifikationer og testprocedurer mere pålidelige? Det er på høje tid at stoppe med at betragte standardimplementatorer som eftertænksomme partnere, der er opmærksomme på dine advarsler. Behandl dem som (uønskede) modstandere, der uundgåeligt vil implementere alt forkert.
Alternativt kan vi gøre, hvad virksomheder som Facebook og Apple i stigende grad gør: sikre, at krypteringen af stemmeopkald sker på et højere niveau i OSI-netværksstakken og ikke stole på mobiludstyrsproducenterne. Vi kan endda fremme end-to-end kryptering af stemmeopkald, som WhatsApp gør med Signal og FaceTime, forudsat at den amerikanske regering stopper med at Så ville mange af disse problemer simpelthen forsvinde (bortset fra nogle metadata). Denne løsning er især relevant i en verden, hvor .
Eller vi kan bare gøre det, vores børn allerede har gjort: tage og stoppe med at svare på de irriterende opkald.
Kilde: habr.com
