От преводача и TL;DR
TL;DR:
Изглежда, че VoLTE е защитен дори по-зле от първите Wi-Fi клиенти с WEP. Изключително архитектурна грешка, позволяваща малко поXOR’ване на трафика и възстановяване на ключа. Атаката е възможна, ако сте в близост до обаждащия се и той често провежда обаждания.
Благодаря за указанието и TL;DR
Изследователите създадоха приложение, за да проверят дали вашият оператор е уязвим, повече информация . Споделете в коментарите резултатите, в моя регион VoLTE е изключен на Мегафон.
За автора
Матиу Гриин (Matthew Green).
Аз съм криптограф и професор в университета Джон Хопкинс. Разработвам и анализирам криптографски системи, използвани в безжични мрежи, платежни системи и платформи за защита на цифрово съдържание. В изследванията си разглеждам различни начини за използване на криптографията, за да се повиши нивото на конфиденциалност на потребителите.
Отдавна не съм писал пост в категория , и това ме разстройваше. Не защото нямаше атаки, а основно защото нямаше атака на нещо достатъчно широко използвано, за да ме извади от творческия ми кризис.
Но днес се натъкнах на наречена ReVoLTE на протоколите, чийто хак ме радва особено много, а именно, протоколите на мобилните мрежи (гласови обаждания) LTE. Възхищавам се на именно тези протоколи – и на тази нова атака – защото много рядко можем да наблюдаваме хакване на реални протоколи и реализации на мобилни мрежи. Основно защото тези стандарти са разработени в запушени стаи и оформени в 12000-странични документи, които не всеки изследовател може да освоите. Освен това, реализацията на тези атаки кара изследователите да използват сложни радиопротоколи.
По този начин сериозни криптографски уязвимости могат да се разпространят по целия свят и е възможно да бъдат използвани само от правителствата, преди някой изследовател да обърне внимание на тях. Но от време на време се случват изключения, и днешната атака е едно от тях.
Автори : Дейвид Рупрехт (David Rupprecht), Катарина Коулс (Katharina Kohls), Торстен Хольц (Thorsten Holz) и Кристина Пеппер (Christina Pöpper) от Университета Рур в Бохуме и Нюйоркския университет в Абу Даби. Това е прекрасна атака на реинсталирането на ключа в гласовия протокол, който вероятно вече използвате (ако предположим, че принадлежите на по-възрастното поколение, което все още осъществява телефонни обаждания с мобилен телефон).
За начало – кратък исторически преглед.
Какво е LTE и VoLTE?
Основата на съвременните стандарти за мобилни телефони е положена в Европа още през 80-те години от стандарта (Глобална система за мобилна комуникация). GSM беше първият основен стандарт за цифрова мобилна телефония, който въведе редица революционни функции, например, използването на за защита на телефонни обаждания. Ранния GSM беше разработен предимно за гласова връзка, въпреки че срещу заплащане беше възможно .
С увеличаването на значението на предаването на данни в мобилната комуникация, бяха разработени стандартите Long Term Evolution (LTE), за да се рационализира този тип свързаност. LTE се основава на група по-стари стандарти, като GSM, и и е предназначен за увеличаване на скоростта на обмен на данни. В тази област има много маркиране и , но TL;DR е, че LTE е система за предаване на данни, която служи като мост между старите протоколи за пакетна предаване на данни и бъдещите технологии за мобилна предаване на данни .
Разбира се, историята ни показва, че веднъж щом има достатъчно (IP) пропускателна способност, понятия като „глас“ и „данни“ ще започнат да се размиват. Същото важи и за съвременните мобилни протоколи. За да се направи този преход по-гладък, стандартите LTE определят (VoLTE), който представлява IP стандарт за предаване на гласови обаждания директно през передачата на данни в системата LTE, напълно заобикаляйки комутируемата част на мобилната мрежа. Както при стандартните , VoLTE обажданията могат да бъдат терминирани от мобилния оператор и свързани с обикновена телефонна мрежа. Или (което става все по-често срещано явление) те директно от един клиент на мобилен оператор към друг, и дори между различни доставчици.
Както стандартната VoIP, VoLTE е основана на два популярни протокола, базирани на IP: протокол за иницииране на сесия ( – SIP) за установяване на обаждането, и транспортен протокол за реално време (, който трябва да се нарича RTTP, но всъщност се нарича RTP) за обработка на гласовите данни. VoLTE също добавя някои допълнителни оптимизации на пропускливостта, като компресия на заглавките.
Добре, какво общо има това с криптирането?
LTE, както и , разполага със стандартен набор от криптографски протоколи за криптиране на пакетите по време на тяхната предаване по въздуха. Те са основно предназначени за защита на вашите данни, докато те преминават между телефона (наречен "оборудването на потребителя", или UE) и клетъчната кула (или навсякъде, където вашият доставчик реши да завърши връзката). Това се случва, защото мобилните оператори разглеждат външните подслушващи устройства като врагове. Е, разбира се.
(Обаче фактът, че връзките VoLTE могат да се извършват директно между клиенти в различни мрежи на доставчици, означава, че самият протокол VoLTE има някои допълнителни и незадължителни протоколи за криптиране, което може да се случи на по-високи нива на мрежата. Това не е част от настоящата статия, освен факта, че те могат да развалят всичко. Ние ще говорим накратко за тях по-късно).
Исторически криптирането в GSM имаше : лоши , протоколи, при които само телефонът се аутентифицираше на клетъчната кула (това означаваше, че злонамерен човек може да се представи за клетъчна кула, създавайки ) и така нататък. LTE поправи много от очевидните грешки, запазвайки обаче голяма част от предишната структура.
Нека започнем с самото криптиране. Ако предположим, че генерирането на ключа вече е станало - и ние ще говорим за това след малко - то всеки пакет данни се криптира с помощта на потокови методи за криптиране, използвайки някакъв шифър, наречен "EEA" (който на практика може да бъде реализиран с помощта на неща като AES). По същество, тук механизмът за криптиране е , както е показано по-долу:

Основен алгоритъм за криптиране на VoLTE пакети (източник: ). EEA – шифър, „COUNT“ – 32-битов брояч, „BEARER“ – уникален идентификатор на сесия, разделящ сесиите на VoLTE и обикновен интернет трафик. „DIRECTION“ указва посоката на трафика – от UE към базовата станция или обратно.
Тъй като самият алгоритъм за криптиране (EEA) може да бъде реализиран с използването на мощен шифър от тип AES, е малко вероятно да има директни атаки срещу самия шифър, както това . Въпреки това, очевидно е, че дори със силен шифър, тази криптиране схема представлява отличен начин да си стреляш в крака.
По-специално: в LTE стандарта се използва (неаутентифициран) потоков шифър с режим, който ще бъде изключително уязвим, ако броячът – и други входови данни, като „bearer“ и „direction“ – някога бъдат повторно използвани. В съвременния език терминът за това понятие е „атака с повторно използване на nonce“, но потенциалните рискове тук не са нещо ново. Те са известни и стари, датиращи от времето на глем метала и дори диско.

Атаките за повторно използване на nonce в CTR режим съществуваха още когато Poison стана известен.
Справедливо е да се каже, че в LTE стандартите пише: „Не използвайте тези броячи повторно, моля“. Но стандартите на LTE заемат около 7000 страници и в крайна сметка, това е все едно да молиш деца да не играят с пистолет. Те неизбежно ще го направят и ужасни неща ще се случат. В този случай, разреждащият пистолет е атака с повторно използване на потока на ключа, при която две различни конфиденциални съобщения се XOR-ят с едни и същи байтове от потока на ключа. Известно е, че това .
Какво е ReVoLTE?
Атаката ReVoLTE показва, че на практика тази много уязвима криптиране конструкция се използва неправилно от реалното оборудване. По-специално, авторите анализират реални VoLTE повиквания, направени с търговско оборудване, и показват, че те могат да използват нещо, наречено „атака с повторно инсталиране на ключа“. (Голяма заслуга за установяването на този проблем принадлежи на (Raza & Lu), които за първи път посочиха потенциална уязвимост. Но проучванията ReVoLTE я трансформират в практическа атака).
Нека ви покажа накратко същността на атаката, въпреки че трябва да погледнете и .
Може да се предположи, че веднага след като LTE установи връзка за пакетна предаване на данни, задачата за предаване на глас през LTE става просто въпрос на маршрутизиране на гласовите пакети през тази връзка заедно с целия останал трафик. С други думи, VoLTE ще бъде концепция, която съществува само над [моделите на OSI – пример ни.] Това не е съвсем така.
Всъщност каналният слой на LTE въвежда понятието 'bearer'. Bearer – това са отделни идентификатори на сесии, които разделят различни видове пакетен трафик. Нормалният интернет трафик (вашият Twitter и Snapchat) преминава през един bearer. Сигнализацията SIP за VoIP преминава през друг, а пакетите с гласови данни се обработват на трети. Не съм много запознат с механизмите на радиоканалите и мрежовото маршрутизиране на LTE, но предполагам, че е направено точно така, защото LTE мрежите искат да осигурят работата на механизмите за QoS (качество на услугите), така че различни потоци пакети да се обработват с различни нива на приоритет: т.е. вашите второстепенни TCP връзки с Facebook може да имат по-нисък приоритет от вашите гласови повиквания в реално време.
Това всъщност не е проблем, но последиците от това са следните. Ключовете за шифроване на LTE се генерират отделно всеки път при установяване на нов 'bearer'. По принцип, това трябва да се случва отново всеки път, когато правите ново телефонно повикване. Това ще доведе до използване на различен ключ за шифроване за всяко повикване, което изключва възможността за повторна употреба на един и същи ключ за шифроване на два различни набора пакети с гласови разговори. Всъщност стандартът LTE казва нещо като 'трябва да използвате различни ключове всеки път, когато установявате нов bearer за обработка на ново телефонно повикване'. Но това не означава, че така се случва на практика.
Всъщност, в реалните приложения, два различни повиквания, които се извършват в непосредствена времева близост, ще използват един и същи ключ - въпреки че между тях се настройват нови (със същото име) bearer. Единствената практическа промяна, която настъпва между тези повиквания, е, че броячът за криптиране се нулира. В литературата това понякога се нарича . Може да се твърди, че всъщност това е грешка в реализацията, макар че в този случай рисковете, както изглежда, в значителна степен произтичат от самия стандарт.
На практика, тази атака води до повторна употреба на ключовия поток, където злоупотребяващият може да получи криптирани пакети $inline$C_1 = M_1 oplus KS$inline$ и $inline$C_2 = M_2 oplus KS$inline$, което позволява да се изчисли $inline$C_1 oplus C_2 = M_1 oplus M_2$inline$. Още по-добре, ако злоупотребяващият знае един от $inline$M_1$inline$ или $inline$M_2$inline$, той може веднага да възстанови другия. Това му дава силен стимул да научи един от двата незакодирани компонента.
Това ни води до пълния и най-ефективен сценарий на атака. Нека разгледаме нападателя, който може да прихване радиотрафика между целевия телефон и мобилната клетка, и на който по един или друг начин "щастлив е" да запише два различни обаждания, където второто се случва точно след първото. Сега си представете, че той по някакъв начин може да познава откритото съдържание на едно от обажданията. При такава щастлива случайност нашият злонамерен може напълно да дешифрира първото повикване, използвайки прост XOR между двата комплекта пакети.
Разбира се, късметът няма нищо общо. Тъй като телефоните са предназначени за приемане на обаждания, злоупотребяващият, който може да подслуша първото обаждане, ще може да инициира и второто обаждане точно в момента, когато приключи първото. Това второ обаждане, в случай на повторно използване на същия ключ за криптиране с нулиран брояч, ще позволи възстановяване на незакодирани данни. Освен това, тъй като нашият злоупотребяващ фактически контролира данните по време на второто повикване, той може да възстанови съдържанието на първото повикване - благодарение на многото специфично реализирани дреболии, играещи на негова страна.
Ето изображение на общия план на атаката, взето от :

Преглед на атаката от . Тази схема предполагава, че ще се осъществят два различни повиквания с използването на един и същ ключ. Атакуващият контролира пасивен снифер (в горния ляв ъгъл), както и втори телефон, с който може да осъществи второ повикване на телефона на жертвата.
Наистина ли работи атаката?
От една страна, това е наистина основният въпрос за статията за ReVoLTE. Теоретично всички изброени по-горе идеи са великолепни, но оставят много въпроси. Такива като:
- Възможно ли е (за академичните изследователи) реално да се прихване VoLTE-съединение?
- Наистина ли реалните LTE-системи повторно установяват ключовете?
- Можете ли наистина да инициирате второ повикване достатъчно бързо и надеждно, за да могат телефонът и базовата станция да повторно използват ключа?
- Дори и системите да повторно установяват ключовете, можете ли наистина да разберете нешифрования съдържание на второто повикване – като се има предвид, че неща като кодеци и ре-кодиране могат напълно да променят (по битове) съдържанието на второто повикване, дори и да имате достъп до "битовете", излизащи от вашия атакуващ телефон?
На някои от тези въпроси работата ReVoLTE отговаря положително. Авторите използват търговски програмираем снифер на радиопотока наречен за прихващане на VoLTE повикването от низходящата линия. (Мисля, че простото овладяване на софтуера и приблизителното разбиране на това как работи, отнело месеци от живота на бедните аспиранти – което е типично за подобни академични изследвания).
Изследователите установили, че за повторното използване на ключа второто повикване трябва да се осъществи достатъчно бързо след завършването на първото, но не прекалено – приблизително десет секунди за операторите, с които те са експериментирали. За щастие, няма значение дали потребителят ще отговори на повикването в този период – "повикването", т.е. самата SIP-свързаност принуждава оператора да повторно използва същия ключ.
Следователно, много от най-сериозните проблеми са свързани с проблема (4) – получаването на битове от незашифрено съдържание на обаждане, инициирано от нападателя. Това се случва, защото с вашето съдържание може да се случи много по време на прехода от телефона на нападателя към телефона на жертвата през мобилната мрежа. Например, такива манипулации, като рекодиране на кодирания звуков поток, оставят звука непроменен, но напълно променят двоичното му представяне. В LTE мрежите също се използва компресия на заглавките RTP, която може значително да промени голяма част от RTP пакета.
Накрая, пакетите, изпратени от нападателя, трябва да се подреждат приблизително в линия с пакетите, които са изпратени по време на първото телефонно обаждане. Това може да бъде проблемно, тъй като модификацията на тишината по време на телефонното обаждане води до по-кратки съобщения (т.н. удобен шум), които могат да не се синхронизират добре с оригиналния разговор.
си заслужава да се прочете в детайли. В него се разглеждат много от горепосочените проблеми – по-специално, авторите открили, че някои кодеци не са рекодирани и че около 89% от двоичното представяне на целевото обаждане може да бъде възстановено. Това е валидно поне за двама европейски оператори, които бяха тествани.
Това е удивително висок процент на успех, и, откровено казано, значително по-висок, отколкото очаквах, когато започвах работа по този документ.
Какво можем да предприемем за решение?
Незабавният отговор на този въпрос е изключително прост: тъй като същността на уязвимостта е в атаката на повторно използване (преинсталиране) на ключа, просто решете този проблем. Убедете се, че за всяко телефонно обаждане се получава нов ключ и никога не позволявайте на брояча на пакетите да се нулира с един и същ ключ. Проблемът е решен!
Може би не. Това ще изисква модернизация на голямо количество оборудване и, откровено казано, самото изменение не е особено надеждно. Би било добре, ако стандартите намерят по-сигурен начин за реализиране на своите шифровални режими, който не е по подразбиране катастрофално уязвим на подобни проблеми с повторната употреба на ключове.
Един от възможните варианти е използването на . Това може да е твърде скъпо за някои съвременни хардуерни средства, но със сигурност е посока, която проектантите трябва да обмислят в бъдеще, особено като се има предвид, че стандартите за 5G скоро ще завладеят света.
Това ново изследване също повдига общия въпрос защо , много от които използват много подобни конструкции и протоколи. Когато се сблъсквате с проблема на повторната инсталация на същия ключ в няколко широко разпространени протокола като WPA2, не ви ли се струва, че може би е време да направите вашите спецификации и тестови процедури по-надеждни? Престанете да се отнасяте към реализаторите на стандартите като към вдумчиви партньори, внимателни към вашите предупреждения. Отнасяйте се с тях като с (непреднамерени) противници, които неизменно ще внедрят всичко неправилно.
Или като опция, можем да направим това, което все по-често правят компании като Facebook и Apple: да осигурим, че шифроването на гласовите обаждания става на по-високо ниво на мрежовия стек OSI, без да разчитаме на производителите на мобилно оборудване. Можем дори да насърчаваме end-to-end шифроване на гласовите повиквания, както правят WhatsApp със Signal и FaceTime, при условие че правителството на САЩ просто спре да . Тогава (с изключение на някои метаданни) много от тези проблеми просто биха изчезнали. Това решение е особено актуално в свят, в който .
Или можем просто да правим като нашите деца: да спрем да отговаряме на тези досадни гласови обаждания.
Източник: habr.com
