Atak tygodnia: połączenia głosowe po LTE (ReVoLTE)

Od tłumacza i TL;DR

  1. TL; DR:

    Wygląda na to, że VoLTE okazało się jeszcze gorzej chronione niż pierwsi klienci Wi-Fi z WEP. Wyłącznie błąd architektoniczny, który pozwala trochę XOR ruchu i przywrócić klucz. Atak jest możliwy, jeśli jesteś blisko rozmówcy, a on często dzwoni.

  2. Dziękuję za wskazówkę i TL;DR Klukonin

  3. Naukowcy stworzyli aplikację, która pozwala określić, czy Twój operator jest podatny na ataki. Przeczytaj więcej tutaj. Podziel się wynikami w komentarzach, VoLTE jest wyłączone w moim regionie na Megafonie.

O autorze

Mateusz Green.

Jestem kryptografem i profesorem na Uniwersytecie Johnsa Hopkinsa. Projektowałem i analizowałem systemy kryptograficzne stosowane w sieciach bezprzewodowych, systemach płatności i platformach bezpieczeństwa treści cyfrowych. W swoich badaniach przyglądam się różnym sposobom wykorzystania kryptografii w celu poprawy prywatności użytkowników.

Minęło trochę czasu, odkąd napisałem format postu „atak tygodnia”i to mnie zdenerwowało. Nie dlatego, że nie było ataków, ale głównie dlatego, że nie było ataku na coś powszechnie używanego na tyle, aby wyrwać mnie z blokady pisarskiej.

Ale dziś natknąłem się ciekawy atak o nazwie ReVoLTE ze względu na protokoły, których hakowanie jest szczególnie ekscytujące, a mianowicie protokoły LTE sieci komórkowych (głosu). Jestem podekscytowany tymi konkretnymi protokołami — i tym nowym atakiem — ponieważ bardzo rzadko zdarza się, aby hakerom zdarzały się przypadki hakowania rzeczywistych protokołów i implementacji sieci komórkowych. Głównie dlatego, że standardy te zostały opracowane w zadymionych pomieszczeniach i udokumentowane w 12000 XNUMX-stronicowych dokumentach, z którymi nie każdy badacz jest w stanie sobie poradzić. Co więcej, realizacja tych ataków zmusza badaczy do stosowania złożonych protokołów radiowych.

W związku z tym poważne luki w zabezpieczeniach kryptograficznych mogą rozprzestrzenić się na całym świecie i być może zostać wykorzystane przez rządy, zanim jakikolwiek badacz zauważy. Ale od czasu do czasu zdarzają się wyjątki i dzisiejszy atak jest jednym z nich.

Autorzy atakiWspółautorzy: David Rupprecht, Katharina Kohls, Thorsten Holz i Christina Pöpper z Ruhr-University Bochum i New York University Abu Dhabi. To świetny atak na ponowną instalację klucza w protokole głosowym, którego prawdopodobnie już używasz (zakładając, że jesteś ze starszego pokolenia, które nadal wykonuje połączenia telefoniczne za pomocą telefonu komórkowego).

Na początek krótka wycieczka historyczna.

Co to jest LTE i VoLTE?

Podstawa naszych nowoczesnych standardów telefonii komórkowej została ustanowiona w Europie w latach 80-tych przez ten standard Globalny system dla urządzeń mobilnych (Globalny system komunikacji mobilnej). GSM był pierwszym znaczącym standardem cyfrowej telefonii komórkowej, który wprowadził szereg rewolucyjnych funkcji, takich jak wykorzystanie szyfrowanie do ochrony rozmów telefonicznych. Wczesny system GSM był przeznaczony głównie do komunikacji głosowej, chociaż mogły być to pieniądze przesyłać inne dane.

Ponieważ transmisja danych zyskała na znaczeniu w komunikacji komórkowej, opracowano standardy Long Term Evolution (LTE), aby usprawnić ten rodzaj komunikacji. LTE opiera się na grupie starszych standardów takich jak GSM, EDGE и HSPA i ma na celu zwiększenie szybkości wymiany danych. Jest dużo brandingu i wprowadzające w błąd poprzez nieprawidłowe oznaczeniaale TL; DR jest taki, że LTE to system transmisji danych, który służy jako pomost między starszymi protokołami danych pakietowych a przyszłymi technologiami danych komórkowych 5G.

Oczywiście historia uczy, że gdy dostępna będzie wystarczająca przepustowość (IP), pojęcia takie jak „głos” i „dane” zaczną się zacierać. To samo dotyczy nowoczesnych protokołów komórkowych. Aby to przejście było płynniejsze, definiują standardy LTE Głos przez LTE (VoLTE), który jest standardem IP umożliwiającym prowadzenie połączeń głosowych bezpośrednio przez płaszczyznę danych systemu LTE, z całkowitym pominięciem części sieci komórkowej, w której wykonywane jest połączenie telefoniczne. Podobnie jak w przypadku standardu Połączenia VoIP,Połączenia VoLTE mogą zostać zakańczane przez operatora komórkowego i podłączane do zwykłej sieci telefonicznej. Lub (co staje się coraz bardziej powszechne) oni można kierować bezpośrednio od jednego klienta komórkowego do drugiego, a nawet między różnymi dostawcami.

Podobnie jak standardowy VoIP, VoLTE opiera się na dwóch popularnych protokołach opartych na protokole IP: Protokół Session Initiation Protocol (Protokół inicjowania sesji – SIP) do konfiguracji połączeń i protokół transportu w czasie rzeczywistym (Protokół transportu w czasie rzeczywistym, który powinien nazywać się RTTP, ale w rzeczywistości nazywa się RTP) do przetwarzania danych głosowych. VoLTE dodaje także kilka dodatkowych optymalizacji przepustowości, takich jak kompresja nagłówka.

OK, co to ma wspólnego z szyfrowaniem?

LTE, tak GSM, posiada standardowy zestaw protokołów kryptograficznych do szyfrowania pakietów przesyłanych drogą bezprzewodową. Ich głównym zadaniem jest ochrona danych przesyłanych między telefonem (zwanym sprzętem użytkownika, UE) a stacją telefonii komórkowej (lub wszędzie tam, gdzie operator zdecyduje się zakończyć połączenie). Dzieje się tak dlatego, że operatorzy komórkowi postrzegają zewnętrzne urządzenia podsłuchowe jako wrogów. Ależ oczywiście.

(Jednak fakt, że połączenia VoLTE mogą odbywać się bezpośrednio pomiędzy klientami w sieciach różnych dostawców, oznacza, że ​​sam protokół VoLTE ma pewne dodatkowe i opcjonalne protokoły szyfrowania, które mogą występować w wyższych warstwach sieci. Nie ma to znaczenia dla bieżącego artykułu, z wyjątkiem faktu, że mogą wszystko zrujnować (porozmawiamy o nich krótko później).

Historycznie rzecz biorąc, szyfrowanie w GSM było wiele słabych punktów: zły szyfry, protokoły, w których tylko telefon był uwierzytelniany w wieży (co oznacza, że ​​osoba atakująca może podszyć się pod wieżę, generując "Płaszczka") i tak dalej. LTE poprawiło wiele oczywistych błędów, zachowując większość tej samej struktury.

Zacznijmy od samego szyfrowania. Zakładając, że utworzenie klucza już miało miejsce – o tym za chwilę – wówczas każdy pakiet danych jest szyfrowany przy użyciu szyfrowania strumieniowego przy użyciu czegoś, co nazywa się „EEA” (co w praktyce można zaimplementować przy użyciu takich rzeczy jak AES). Zasadniczo mechanizm szyfrowania jest tutaj CTRjak poniżej:

Atak tygodnia: połączenia głosowe po LTE (ReVoLTE)
Główny algorytm szyfrowania pakietów VoLTE (źródło: ReVoLTE). EEA to szyfr, „COUNT” to 32-bitowy licznik, „BEARER” to unikalny identyfikator sesji oddzielający połączenia VoLTE od zwykłego ruchu internetowego. „KIERUNEK” wskazuje, w jakim kierunku płynie ruch – z UE do wieży lub odwrotnie.

Ponieważ sam algorytm szyfrowania (EEA) można zaimplementować przy użyciu silnego szyfru, takiego jak AES, jest mało prawdopodobne, że nastąpi jakikolwiek bezpośredni atak na sam szyfr w ten sposób wydarzyło się w czasach GSM. Jednak jasne jest, że nawet przy silnym szyfrze ten schemat szyfrowania to świetny sposób, aby strzelić sobie w stopę.

W szczególności: standard LTE wykorzystuje (nieuwierzytelniony) szyfr strumieniowy w trybie, który będzie wyjątkowo podatny na ataki, jeśli licznik – i inne dane wejściowe, takie jak „nośnik” i „kierunek” – zostaną kiedykolwiek ponownie użyte. We współczesnym języku terminem określającym tę koncepcję jest „atak polegający na ponownym użyciu”, ale potencjalne ryzyko w tym przypadku nie jest czymś nowoczesnym. Są sławni i starożytni, a ich początki sięgają czasów glam metalu, a nawet disco.

Atak tygodnia: połączenia głosowe po LTE (ReVoLTE)
Ataki polegające na jednorazowym ponownym użyciu w trybie CTR istniały nawet wtedy, gdy trucizna stała się znana

Aby być uczciwym, standardy LTE mówią: „Proszę nie używać ponownie tych liczników”. Ale standardy LTE obejmują około 7000 XNUMX stron, a w każdym razie to tak, jakby błagać dzieci, aby nie bawiły się bronią. Nieuchronnie tak się stanie i wydarzą się straszne rzeczy. W tym przypadku bronią jest atak polegający na ponownym użyciu strumienia klucza, w którym dwie różne poufne wiadomości XORują te same bajty strumienia klucza. Wiadomo, że to ma bardzo destrukcyjny wpływ na poufność komunikacji.

Co to jest ReVoLTE?

Atak ReVoLTE pokazuje, że w praktyce ten bardzo wrażliwy projekt szyfrowania jest niewłaściwie wykorzystywany przez rzeczywisty sprzęt. W szczególności autorzy analizują rzeczywiste połączenia VoLTE wykonywane przy użyciu komercyjnego sprzętu i pokazują, że mogą zastosować tak zwany „atak polegający na ponownej instalacji klucza”. (Wiele zasługi za znalezienie tego problemu należy się Reise’a i Lu (Raza i Lu), którzy jako pierwsi zwrócili uwagę na potencjalną lukę. Ale badania ReVoLTE zamieniają to w praktyczny atak).

Pozwól, że pokażę ci pokrótce istotę ataku, chociaż powinieneś spojrzeć i dokument źródłowy.

Można założyć, że gdy LTE nawiąże połączenie pakietowe, zadanie przesyłania głosu przez LTE sprowadza się jedynie do kierowania pakietów głosowych przez to połączenie wraz z całą resztą ruchu. Innymi słowy, VoLTE będzie koncepcją, która istnieje tylko nad 2 poziom [Modele OSI – około.] Nie jest to do końca prawdą.

W rzeczywistości warstwa łącza LTE wprowadza pojęcie „nośnika”. Nośniki to oddzielne identyfikatory sesji, które oddzielają różne typy ruchu pakietowego. Regularny ruch internetowy (Twój Twitter i Snapchat) przechodzi przez jednego nośnika. Sygnalizacja SIP dla VoIP przechodzi przez inny, a pakiety ruchu głosowego są przetwarzane przez trzeci. Nie mam zbyt dużej wiedzy na temat radia LTE i mechanizmów routingu sieciowego, ale uważam, że robi się to w ten sposób, ponieważ sieci LTE chcą wymuszać mechanizmy QoS (jakość usług), aby różne strumienie pakietów były przetwarzane z różnymi poziomami priorytetów: tj. twój drugorzędne Połączenia TCP z Facebookiem mogą mieć niższy priorytet niż połączenia głosowe w czasie rzeczywistym.

Zwykle nie stanowi to problemu, ale konsekwencje są następujące. Klucze do szyfrowania LTE tworzone są oddzielnie przy każdej instalacji nowego „nośnika”. Zasadniczo powinno się to powtarzać za każdym razem, gdy wykonujesz nowe połączenie telefoniczne. Spowoduje to użycie innego klucza szyfrowania dla każdego połączenia, eliminując możliwość ponownego użycia tego samego klucza do szyfrowania dwóch różnych zestawów pakietów połączeń głosowych. Rzeczywiście, standard LTE mówi coś w stylu: „za każdym razem, gdy instalujesz nowy nośnik, powinieneś używać innego klucza, aby obsłużyć nowe połączenie telefoniczne”. Ale to nie znaczy, że tak się faktycznie dzieje.

W rzeczywistości w rzeczywistych implementacjach dwa różne wywołania występujące w bliskiej odległości czasowej będą używać tego samego klucza - pomimo faktu, że między nimi konfigurowane są nowe nośniki o tej samej nazwie. Jedyną praktyczną zmianą zachodzącą pomiędzy tymi wywołaniami jest wyzerowanie licznika szyfrowania. W literaturze nazywa się to czasem atak polegający na ponownej instalacji klucza. Można argumentować, że jest to zasadniczo błąd wdrożeniowy, chociaż w tym przypadku ryzyko wydaje się w dużej mierze wynikać z samego standardu.

W praktyce atak ten skutkuje ponownym wykorzystaniem strumienia klucza, w którym atakujący może uzyskać zaszyfrowane pakiety $inline$C_1 = M_1 oplus KS$inline$ i $inline$C_2 = M_2 oplus KS$inline$, umożliwiając obliczenie $inline$ C_1 oplus C_2 = M_1 oplus M_2$inline$. Co więcej, jeśli atakujący zna jeden z $inline$M_1$inline$ lub $inline$M_2$inline$, może natychmiast odzyskać drugi. To daje mu silną motywację znajdź jeden z dwóch niezaszyfrowanych komponentów.

To prowadzi nas do kompletnego i najskuteczniejszego scenariusza ataku. Weźmy pod uwagę osobę atakującą, która może przechwycić ruch radiowy pomiędzy telefonem docelowym a wieżą komórkową i któremu w jakiś sposób udaje się nagrać dwie różne rozmowy, przy czym druga rozmowa następuje bezpośrednio po pierwszej. Teraz wyobraź sobie, że mógłby w jakiś sposób odgadnąć niezaszyfrowaną treść jednego z połączeń. Z takimi przypadek nasz atakujący może w pełni odszyfrować pierwsze połączenie za pomocą prostego XOR między dwoma zestawami pakietów.

Oczywiście szczęście nie ma z tym nic wspólnego. Ponieważ telefony są zaprojektowane do odbierania połączeń, osoba atakująca, która podsłucha pierwszą rozmowę, będzie mogła nawiązać drugą rozmowę dokładnie w momencie zakończenia pierwszej. To drugie wywołanie, jeśli zostanie ponownie użyty ten sam klucz szyfrowania i licznik zostanie wyzerowany, umożliwi odzyskanie niezaszyfrowanych danych. Co więcej, ponieważ nasz atakujący faktycznie kontroluje dane podczas drugiego połączenia, może odzyskać zawartość pierwszego połączenia - dzięki wielu specjalnie zaimplementowanym małe rzeczy, grając na jego stronie.

Oto obraz ogólnego planu ataku zaczerpnięty z orginalny dokument:

Atak tygodnia: połączenia głosowe po LTE (ReVoLTE)
Przegląd ataków z Dokument ReVoLTE. Schemat ten zakłada, że ​​przy użyciu tego samego klawisza wykonywane są dwa różne wywołania. Atakujący kontroluje pasywny sniffer (w lewym górnym rogu) oraz drugi telefon, za pomocą którego może wykonać drugie połączenie z telefonem ofiary.

Czy zatem atak naprawdę działa?

Z jednej strony to właściwie główne pytanie artykułu o ReVoLTE. Wszystkie powyższe pomysły są świetne w teorii, jednak pozostawiają wiele pytań. Jak na przykład:

  1. Czy możliwe jest (dla badaczy akademickich) faktyczne przechwycenie połączenia VoLTE?
  2. Czy prawdziwe systemy LTE rzeczywiście wymagają ponownego uruchomienia?
  3. Czy rzeczywiście możesz nawiązać drugie połączenie szybko i niezawodnie, aby telefon i wieża mogły ponownie użyć klucza?
  4. Nawet jeśli system uruchomi się ponownie, czy w rzeczywistości będziesz mógł znać niezaszyfrowaną zawartość drugiego połączenia - biorąc pod uwagę, że kodeki i transkodowanie mogą całkowicie zmienić (bit po bicie) zawartość tego drugiego połączenia, nawet jeśli masz dostęp do „bitów " dochodzące z twojego telefonu bojowego?

Prace ReVoLTE odpowiadają na niektóre z tych pytań twierdząco. Autorzy używają komercyjnego, konfigurowalnego programowo sniffera strumieni radiowych o nazwie Airskop do przechwytywania połączenia VoLTE od strony łącza pobierającego. (Myślę, że samo zapoznanie się z oprogramowaniem i ogólne pojęcie o tym, jak ono działa, zabrało biednym doktorantom miesiące życia – co jest typowe dla tego rodzaju badań akademickich).

Naukowcy odkryli, że aby ponowne użycie klucza zadziałało, drugie połączenie musiało nastąpić wystarczająco szybko po zakończeniu pierwszego, ale niezbyt szybko – około dziesięciu sekund w przypadku operatorów, z którymi eksperymentowali. Na szczęście nie ma znaczenia, czy użytkownik w tym czasie odbierze połączenie – „dzwonek”, czyli tzw. Samo połączenie SIP wymusza na operatorze ponowne użycie tego samego klucza.

Zatem wiele najgorszych problemów dotyczy problemu (4) - odbierania fragmentów niezaszyfrowanej treści połączenia zainicjowanego przez atakującego. Dzieje się tak, ponieważ wiele może się wydarzyć z treścią przesyłaną z telefonu atakującego do telefonu ofiary za pośrednictwem sieci komórkowej. Na przykład takie brudne sztuczki, jak ponowne kodowanie zakodowanego strumienia audio, co pozostawia dźwięk taki sam, ale całkowicie zmienia jego reprezentację binarną. Sieci LTE korzystają również z kompresji nagłówka RTP, co może znacznie zmienić znaczną część pakietu RTP.

Wreszcie pakiety wysłane przez atakującego powinny być mniej więcej takie same jak pakiety wysłane podczas pierwszej rozmowy telefonicznej. Może to być problematyczne, ponieważ modyfikacja ciszy podczas rozmowy telefonicznej skutkuje krótszymi wiadomościami (tzw. szumem komfortowym), które mogą nie pasować do pierwotnej rozmowy.

Sekcja „Atak w prawdziwym świecie” Warto przeczytać szczegółowo. Rozwiązuje wiele z powyższych problemów - w szczególności autorzy odkryli, że niektóre kodeki nie są ponownie kodowane i że można odzyskać około 89% binarnej reprezentacji wywołania docelowego. Dotyczy to co najmniej dwóch europejskich operatorów, którzy zostali przetestowani.

Jest to zaskakująco wysoki wskaźnik sukcesu i szczerze mówiąc znacznie wyższy, niż się spodziewałem, rozpoczynając pracę nad tym dokumentem.

Co więc możemy zrobić, aby to naprawić?

Natychmiastowa odpowiedź na to pytanie jest bardzo prosta: ponieważ istotą luki jest atak polegający na ponownym użyciu (ponownej instalacji) klucza, po prostu napraw problem. Upewnij się, że dla każdego połączenia telefonicznego uzyskano nowy klucz i nigdy nie pozwalaj, aby licznik pakietów wyzerował licznik z powrotem do zera przy użyciu tego samego klucza. Problem rozwiązany!

Albo może nie. Będzie to wymagało modernizacji dużej ilości sprzętu i, szczerze mówiąc, taka poprawka sama w sobie nie jest super niezawodna. Byłoby miło, gdyby standardy mogły znaleźć bezpieczniejszy sposób implementacji trybów szyfrowania, który domyślnie nie jest katastrofalnie podatny na problemy z ponownym użyciem klucza.

Jedną z możliwych opcji jest użycie tryby szyfrowania, w których niewłaściwe użycie wartości jednorazowej nie prowadzi do katastrofalnych konsekwencji. Może to być zbyt drogie w przypadku niektórych obecnych urządzeń, ale z pewnością jest to obszar, o którym projektanci powinni pomyśleć w przyszłości, zwłaszcza że standardy 5G mają wkrótce opanować świat.

To nowe badanie stawia również ogólne pytanie, dlaczego te same cholerne ataki pojawiają się w jednym standardzie za drugim, z których wiele wykorzystuje bardzo podobne projekty i protokoły. Kiedy stajesz przed problemem ponownej instalacji tego samego klucza w wielu powszechnie używanych protokołach, takich jak WPA2, czy nie sądzisz, że nadszedł czas, aby ulepszyć specyfikacje i procedury testowe? Przestań traktować osoby wdrażające standardy jak rozważnych partnerów, którzy zwracają uwagę na Twoje ostrzeżenia. Traktuj ich jak (niezamierzonych) przeciwników, którzy nieuchronnie popełnią błąd.

Alternatywnie możemy zrobić to, co coraz częściej robią firmy takie jak Facebook i Apple: sprawić, by szyfrowanie połączeń głosowych odbywało się na wyższym poziomie stosu sieciowego OSI, bez polegania na producentach sprzętu komórkowego. Moglibyśmy nawet nalegać na kompleksowe szyfrowanie połączeń głosowych, tak jak robi to WhatsApp z Signal i FaceTime, zakładając, że rząd USA po prostu przestanie podbij nas. Wtedy (z wyjątkiem niektórych metadanych) wiele z tych problemów po prostu zniknie. To rozwiązanie jest szczególnie istotne w świecie, w którym nawet rządy nie są pewne, czy ufają swoim dostawcom sprzętu.

Albo możemy po prostu zrobić to, co już zrobiły nasze dzieci: przestać odbierać te irytujące połączenia głosowe.

Źródło: www.habr.com

Dodaj komentarz