Veckans attack: röstsamtal över LTE (ReVoLTE)

Från översättaren och TL;DR

  1. TL; DR:

    Det verkar som att VoLTE visade sig vara ännu sämre skyddade än de första Wi-Fi-klienterna med WEP. En exklusivt arkitektonisk felberäkning som låter dig XOR trafiken lite och återställa nyckeln. En attack är möjlig om du är nära den som ringer och han ringer ofta.

  2. Tack för tipset och TL;DR Klukonin

  3. Forskare har gjort en app för att avgöra om din operatör är sårbar, läs mer här. Dela resultaten i kommentarerna, VoLTE är inaktiverat i min region på Megafon.

Om författaren

Matthew Green.

Jag är kryptograf och professor vid Johns Hopkins University. Jag har designat och analyserat kryptografiska system som används i trådlösa nätverk, betalningssystem och säkerhetsplattformar för digitalt innehåll. I min forskning tittar jag på olika sätt att använda kryptografi för att förbättra användarnas integritet.

Det var ett tag sedan jag skrev ett inläggsformat "veckans attack", och det gjorde mig upprörd. Inte för att det inte förekom attacker, utan mest för att det inte förekom en attack mot något som har använts tillräckligt mycket för att få mig ur författarblocket.

Men idag kom jag över intressant attack kallas ReVoLTE för protokoll som jag är särskilt upphetsad över att hacka, nämligen cellulära nätverk (voice over) LTE-protokoll. Jag är exalterad över just dessa protokoll – och den här nya attacken – eftersom det är mycket sällsynt att se faktiska mobilnätverksprotokoll och implementeringar hackas. Främst för att dessa standarder utvecklades i rökfyllda rum och dokumenterades i 12000 XNUMX sidor långa dokument som inte alla forskare kan hantera. Dessutom tvingar implementeringen av dessa attacker forskare att använda komplexa radioprotokoll.

Således kan allvarliga kryptografiska sårbarheter spridas över hela världen, kanske bara för att utnyttjas av regeringar, innan någon forskare lägger märke till det. Men då och då finns det undantag, och dagens attack är ett av dem.

Författare attackerMedverkande: David Rupprecht, Katharina Kohls, Thorsten Holz och Christina Pöpper från Ruhr-University Bochum och New York University Abu Dhabi. Detta är en bra attack för att installera om nyckeln i röstprotokollet som du förmodligen redan använder (förutsatt att du är från en äldre generation som fortfarande ringer telefonsamtal med en mobiltelefon).

Till att börja med en kort historisk utflykt.

Vad är LTE och VoLTE?

Grunden för våra moderna standarder för mobiltelefoni lades i Europa redan på 80-talet av standarden Globalt system för mobil (Globalt system för mobil kommunikation). GSM var den första stora digitala mobiltelefonistandarden, som introducerade ett antal revolutionerande funktioner, t.ex. kryptering för att skydda telefonsamtal. Tidig GSM designades främst för röstkommunikation, även om pengar kunde vara det överföra andra uppgifter.

När dataöverföring blev viktigare i mobilkommunikation utvecklades LTE-standarder (Long Term Evolution) för att effektivisera denna typ av kommunikation. LTE är baserad på en grupp äldre standarder som GSM, KANT и HSPA och är utformad för att öka hastigheten för datautbyte. Det finns mycket varumärkesbyggande och vilseledande genom felaktiga beteckningarmen TL;DR är att LTE är ett dataöverföringssystem som fungerar som en brygga mellan äldre paketdataprotokoll och framtida cellulär datateknik 5G.

Naturligtvis, historien säger oss att när det finns tillräckligt med (IP) bandbredd tillgänglig kommer begrepp som "röst" och "data" att börja suddas ut. Detsamma gäller moderna cellulära protokoll. För att göra denna övergång smidigare definierar LTE-standarder Voice over LTE (VoLTE), som är en IP-standard för att föra röstsamtal direkt över LTE-dataplanet, som helt förbikopplar den uppringda delen av det mobila nätverket. Som med standard VoIP-samtal,VoLTE-samtal kan avslutas av mobiloperatören och kopplas till det vanliga telefonnätet. Eller (som blir allt vanligare) de kan dirigeras direkt från en mobilklient till en annan, och även mellan olika leverantörer.

Precis som standard VoIP är VoLTE baserad på två populära IP-baserade protokoll: Session Initiation Protocol (Session Initiation Protocol – SIP) för samtalsinställningar och realtidstransportprotokoll (Transportprotokoll i realtid, som borde kallas RTTP men egentligen kallas RTP) för bearbetning av röstdata. VoLTE lägger också till några ytterligare bandbreddsoptimeringar, såsom header-komprimering.

Okej, vad har detta med kryptering att göra?

LTE, liksom GSM, har en standarduppsättning kryptografiska protokoll för att kryptera paket när de sänds över luften. De är huvudsakligen utformade för att skydda din data när den färdas mellan telefonen (kallas användarutrustning, eller UE) och mobiltornet (eller varhelst din leverantör bestämmer sig för att avsluta anslutningen). Detta beror på att mobilleverantörer ser externa avlyssningsenheter som fiender. Jo, naturligtvis.

(Men det faktum att VoLTE-anslutningar kan ske direkt mellan klienter på olika leverantörsnätverk gör att själva VoLTE-protokollet har några extra och valfria krypteringsprotokoll som kan förekomma på högre nätverkslager. Detta är inte relevant för den aktuella artikeln, förutom faktum att de kan förstöra allt (vi ska prata om dem kort härnäst).

Historiskt sett har kryptering i GSM varit många svaga punkter: dåligt chiffer, protokoll där endast telefonen autentiserades till tornet (vilket innebär att en angripare kan utge sig för att vara tornet, vilket genererar "Stingrocka") och så vidare. LTE korrigerade många av de uppenbara felen samtidigt som mycket av samma struktur bibehölls.

Låt oss börja med själva krypteringen. Förutsatt att nyckelskapandet redan har hänt - och vi ska prata om det om en minut - så krypteras varje datapaket med strömkryptering med något som kallas "EEA" (som i praktiken kan implementeras med hjälp av saker som AES ). I huvudsak är krypteringsmekanismen här CTRsom nedan:

Veckans attack: röstsamtal över LTE (ReVoLTE)
Den huvudsakliga krypteringsalgoritmen för VoLTE-paket (källa: ReVoLTE). EEA är ett chiffer, "COUNT" är en 32-bitarsräknare, "BEARER" är en unik sessionsidentifierare som skiljer VoLTE-anslutningar från vanlig internettrafik. "RIKTNING" indikerar i vilken riktning trafiken flyter - från UE till tornet eller vice versa.

Eftersom själva krypteringsalgoritmen (EEA) kan implementeras med hjälp av ett starkt chiffer som AES, är det osannolikt att det kommer att bli någon direkt attack på själva chiffret så här hände under GSM:s dagar. Det är dock klart att även med ett starkt chiffer är detta krypteringsschema ett utmärkt sätt att skjuta sig själv i foten.

I synnerhet: LTE-standarden använder ett (oautenticerat) strömchiffer med ett läge som kommer att vara extremt sårbart om räknaren - och andra ingångar som "bärare" och "riktning" - någonsin återanvänds. I modernt språkbruk är termen för detta koncept "icke återanvändningsattack", men de potentiella riskerna här är inte något modernt. De är berömda och uråldriga, med anor från glammetallens dagar och till och med disco.

Veckans attack: röstsamtal över LTE (ReVoLTE)
Attacker mot icke-återanvändning i CTR-läge fanns även när Poison blev känt

För att vara rättvis säger LTE-standarderna, "Vänligen återanvänd inte dessa mätare." Men LTE-standarder är cirka 7000 XNUMX sidor långa, och i alla fall är det som att tigga barn att inte leka med en pistol. De kommer oundvikligen att göra det, och hemska saker kommer att hända. Avfyrningspistolen i det här fallet är en återanvändningsattack med nyckelström, där två olika konfidentiella meddelanden XELLER samma nyckelströmbytes. Det är känt att detta har en mycket destruktiv effekt på kommunikationssekretessen.

Vad är ReVoLTE?

ReVoLTE-attacken visar att denna mycket sårbara krypteringsdesign i praktiken missbrukas av verklig hårdvara. Specifikt analyserar författarna verkliga VoLTE-samtal som görs med kommersiell utrustning och visar att de kan använda något som kallas en "nyckelåterinstallationsattack". (Mycket ära för att hitta detta problem går till Reise och Lu (Raza & Lu), som var de första att påpeka den potentiella sårbarheten. Men ReVoLTE-forskning gör det till en praktisk attack).

Låt mig visa dig kortfattat kärnan i attacken, även om du borde titta och källdokument.

Man kan anta att när LTE väl etablerar en paketdataanslutning blir uppgiften att rösta över LTE bara en fråga om att dirigera röstpaket över den anslutningen tillsammans med all övrig trafik. Med andra ord kommer VoLTE att vara ett koncept som bara existerar över Nivå 2 [OSI-modeller – cirka.]. Detta är inte helt sant.

Faktum är att LTE-länkskiktet introducerar begreppet "bärare". Bärare är separata sessionsidentifierare som separerar olika typer av pakettrafik. Vanlig internettrafik (din Twitter och Snapchat) går genom en bärare. SIP-signalering för VoIP går genom en annan, och rösttrafikpaket bearbetas genom en tredje. Jag är inte så kunnig om LTE-radio och nätverksdirigeringsmekanismer, men jag tror att det görs på detta sätt eftersom LTE-nätverk vill upprätthålla QoS-mekanismer (kvalitet på tjänsten) så att olika paketströmmar bearbetas på olika prioritetsnivåer: d.v.s. din andra klassens TCP-anslutningar till Facebook kan ha lägre prioritet än dina röstsamtal i realtid.

Detta är i allmänhet inget problem, men konsekvenserna är följande. Nycklar för LTE-kryptering skapas separat varje gång en ny "bärare" installeras. I princip bör detta hända igen varje gång du ringer ett nytt telefonsamtal. Detta kommer att resultera i att en annan krypteringsnyckel används för varje samtal, vilket eliminerar möjligheten att återanvända samma nyckel för att kryptera två olika uppsättningar röstsamtalspaket. Faktum är att LTE-standarden säger något i stil med "du bör använda en annan nyckel varje gång du installerar en ny bärare för att hantera ett nytt telefonsamtal." Men det betyder inte att detta faktiskt händer.

Faktum är att i verkliga implementeringar kommer två olika samtal som sker i nära temporal närhet att använda samma nyckel - trots att nya bärare med samma namn konfigureras mellan dem. Den enda praktiska förändringen som sker mellan dessa samtal är att krypteringsräknaren återställs till noll. I litteraturen kallas detta ibland attack om nyckelominstallation. Man skulle kunna hävda att detta i huvudsak är ett implementeringsfel, även om riskerna i det här fallet till stor del verkar bero på själva standarden.

I praktiken resulterar denna attack i återanvändning av nyckelström, där angriparen kan erhålla de krypterade paketen $inline$C_1 = M_1 oplus KS$inline$ och $inline$C_2 = M_2 oplus KS$inline$, vilket möjliggör beräkning av $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Ännu bättre, om angriparen känner till en av $inline$M_1$inline$ eller $inline$M_2$inline$, då kan han omedelbart återställa den andra. Detta ger honom ett starkt incitament ta reda på en av de två okrypterade komponenterna.

Detta för oss till det kompletta och mest effektiva attackscenariot. Tänk på en angripare som kan avlyssna radiotrafik mellan en måltelefon och ett mobiltorn, och som på något sätt har turen att spela in två olika samtal, där det andra inträffar direkt efter det första. Föreställ dig nu att han på något sätt kunde gissa det okrypterade innehållet i ett av samtalen. Med en sådan ödets lyckokast vår angripare kan helt dekryptera det första samtalet med en enkel XOR mellan de två uppsättningarna av paket.

Tur har förstås ingenting med saken att göra. Eftersom telefoner är designade för att ta emot samtal, kommer en angripare som kan höra det första samtalet att kunna initiera ett andra samtal i exakt samma ögonblick som det första avslutas. Detta andra samtal, om samma krypteringsnyckel används igen med räknaren återställd till noll, kommer att tillåta att okrypterade data kan återställas. Dessutom, eftersom vår angripare faktiskt kontrollerar data under det andra samtalet, kan han återställa innehållet i det första samtalet - tack vare många specifikt implementerade små saker, spelar på hans sida.

Här är en bild av den allmänna attackplanen hämtad från orginal dokument:

Veckans attack: röstsamtal över LTE (ReVoLTE)
Attacköversikt från ReVoLTE-dokument. Detta schema förutsätter att två olika samtal görs med samma knapp. Angriparen kontrollerar den passiva sniffern (överst till vänster), samt en andra telefon, med vilken han kan ringa ett andra samtal till offrets telefon.

Så fungerar attacken verkligen?

Å ena sidan är detta verkligen huvudfrågan för artikeln om ReVoLTE. Alla ovanstående idéer är bra i teorin, men de lämnar många frågor. Till exempel:

  1. Är det möjligt (för akademiska forskare) att faktiskt avlyssna en VoLTE-anslutning?
  2. Nyckels verkligen LTE-system om?
  3. Kan du verkligen initiera ett andra samtal tillräckligt snabbt och tillförlitligt för att telefonen och tornet ska kunna återanvända nyckeln?
  4. Även om systemet omnyckel, kan du faktiskt veta det okrypterade innehållet i det andra samtalet - med tanke på att saker som codecs och omkodning helt kan ändra (bit-för-bit) innehållet i det andra samtalet, även om du har tillgång till "bitarna "Kommer du från din attacktelefon?

ReVoLTEs arbete svarar jakande på några av dessa frågor. Författarna använder en kommersiell mjukvaru-omkonfigurerbar radioströmsniffer som kallas Airscope för att avlyssna ett VoLTE-samtal från nedlänkssidan. (Jag tror att bara det att ta tag i programvaran och få en ungefärlig uppfattning om hur det fungerar tog månader av de stackars doktorandernas liv - vilket är typiskt för den här typen av akademisk forskning).

Forskarna fann att för att återanvändning av nycklar skulle fungera måste det andra samtalet ske tillräckligt snabbt efter att det första avslutades, men inte för snabbt - ungefär tio sekunder för operatörerna de experimenterade med. Lyckligtvis spelar det ingen roll om användaren svarar på samtalet inom denna tid - "ringen" dvs. Själva SIP-anslutningen tvingar operatören att återanvända samma nyckel.

Sålunda kretsar många av de uslaste problemen kring problem (4) - att ta emot bitar av det okrypterade innehållet i ett samtal som initierats av en angripare. Detta beror på att mycket kan hända med ditt innehåll när det färdas från angriparens telefon till offrets telefon över mobilnätet. Till exempel sådana smutsiga knep som att koda om en kodad ljudström, vilket lämnar ljudet detsamma, men helt ändrar sin binära representation. LTE-nätverk använder också RTP-header-komprimering, vilket avsevärt kan förändra mycket av RTP-paketet.

Slutligen bör paketen som skickas av angriparen vara ungefär i linje med paketen som skickades under det första telefonsamtalet. Detta kan vara problematiskt eftersom att ändra tystnaden under ett telefonsamtal resulterar i kortare meddelanden (aka komfortbrus) som kanske inte passar bra med det ursprungliga samtalet.

Avsnittet "attack i verkligheten" Det är värt att läsa i detalj. Den tar upp många av ovanstående problem - i synnerhet fann författarna att vissa codecs inte är omkodade och att ungefär 89 % av målanropets binära representation kan återställas. Detta gäller för minst två europeiska operatörer som testades.

Detta är en förvånansvärt hög framgångsfrekvens, och ärligt talat mycket högre än jag förväntade mig när jag började arbeta med det här dokumentet.

Så vad kan vi göra för att fixa det?

Det omedelbara svaret på denna fråga är mycket enkelt: eftersom kärnan i sårbarheten är en attack med nyckelåteranvändning (ominstallation), åtgärda helt enkelt problemet. Se till att en ny nyckel erhålls för varje telefonsamtal och låt aldrig paketräknaren återställa räknaren till noll med samma knapp. Problemet löst!

Eller kanske inte. Detta kommer att kräva uppgradering av mycket utrustning, och ärligt talat är en sådan fix i sig inte supertillförlitlig. Det skulle vara trevligt om standarder kunde hitta ett säkrare sätt att implementera sina krypteringslägen som inte som standard är katastrofalt sårbara för sådana nyckelåteranvändningsproblem.

Ett möjligt alternativ är att använda krypteringslägen där missbruk av nonce inte leder till katastrofala konsekvenser. Detta kan vara för dyrt för viss nuvarande hårdvara, men det är verkligen ett område som designers bör tänka på i framtiden, särskilt som 5G-standarder är på väg att ta över världen.

Denna nya studie väcker också den allmänna frågan om varför samma jäkla attacker dyker hela tiden upp i den ena standarden efter den andra, av vilka många använder mycket liknande design och protokoll. När du står inför problemet med att installera om samma nyckel över flera allmänt använda protokoll som WPA2, tror du inte att det kan vara dags att göra dina specifikationer och testprocedurer mer robusta? Sluta behandla standardimplementatorer som omtänksamma partners som är uppmärksamma på dina varningar. Behandla dem som (oavsiktliga) motståndare som oundvikligen kommer att få saker fel.

Eller, alternativt, kan vi göra det som företag som Facebook och Apple gör alltmer: få röstsamtalskryptering att ske på en högre nivå av OSI-nätverksstacken, utan att förlita sig på tillverkare av mobilutrustning. Vi skulle till och med kunna driva på för end-to-end-kryptering av röstsamtal, som WhatsApp gör med Signal och FaceTime, förutsatt att den amerikanska regeringen bara slutar snubbla upp oss. Då (med undantag för vissa metadata) skulle många av dessa problem helt enkelt försvinna. Denna lösning är särskilt relevant i en värld där även regeringar är inte säkra på om de litar på sina utrustningsleverantörer.

Eller så kan vi helt enkelt göra vad våra barn redan har gjort: sluta svara på de där irriterande röstsamtal.

Källa: will.com

Lägg en kommentar