Wybrane zastosowania systemów mobilnych Bezpieczeństwo połączeń w sieciach GSM i UMTS Andrzej Chybicki
Użytkownicy telefonii komórkowej w Polsce GSM: kiedyś dobro luksusowe – dziś konieczność
W skali UE
Schemat systemu GSM karta SIM – karta elektroniczna, która pełni funkcję modułu identyfikacji abonenta. MS – aparat telefoniczny, stanowiący środowisko, w którym pracuje karta SIM i swoisty interfejs użytkownika, przy pomocy którego korzysta on z usług sieci. BTS – bazowa stacja nadawcza, która emituje i odbiera sygnał od użytkowników znajdujących się w danej komórce systemu. BSC – stacja kontrolująca pracę podległych jej BTSów, odpowiadająca za komunikację pomiędzy BTSami i resztą sieci, sterowanie mocą sygnału itp. BSC i podległe jej BTSy są określane mianem BSS. MSC – cyfrowa centrala telefoniczna, stanowiąca główny element systemu i nadzorująca jego pracę. HLR – rejestr abonentów macierzystych – zawiera dane wszystkich abonentów przypisanych do obsługiwanego przez HLR obszaru (obecnie najczęściej jest to obszar działania jednego MSC, ale może też obejmować swoim działaniem kilka central). VLR – rejestr abonentów wizytujących – baza danych znajdująca się przy każdej MSC, zawierająca dane wszystkich abonentów wizytujących obecnie daną MSC. EIR – rejestr urządzeń abonenckich, w którym zawarte są informacje i numery seryjne wszystkich wykorzystywanych w systemie aparatów telefonicznych. Rejestr ten ściśle współpracuje z międzynarodowym rejestrem znajdującym się w Dublinie, w Irlandii (tzw. CEIR – Central EIR). AuC – centrum potwierdzenia identyfikacji – kluczowe miejsce w architekturze bezpieczeństwa systemu, które jest odpowiedzialne za autoryzację klienta oraz za generowanie kluczy potrzebnych do szyfrowania danych. W celu zapewnienia poufności danych abonentów najczęściej stosowane jest jedno AuC dla całej sieci ogólnokrajowej. OMC – centrum eksploatacji i utrzymania sieci – centrum pozwalające na zdalne monitorowanie i zarządzanie siecią. Póki dostęp do niego mają jedynie osoby upoważnione (zadbanie o to leży w gestii operatora i nie jest przewidziane w żadnych normach związanych z GSM, a zatem kwestia ta nie będzie rozpatrywana w niniejszej pracy) nie wpływa ono na bezpieczeństwo sieci. Posiada ono bezpośrednie połączenia z wszystkimi MSC i BSC (nie zostały one zaznaczone na rysunku, żeby zachować jego przejrzystość).
Podstawowe usługi bezpieczeństwa w standardzie GSM Anonimowość Uwierzytelnianie Poufność Integralność
Podstawa bezpieczeństwa systemu Od strony sieci – AuC Od strony abonenta – SIM Oba posiadają 128 bitowy klucz Ki, przypisany do karty SIM Ki jest przypisany do numeru IMSI w sieci GSM i znany w AuC
IMSI IMSI (ang. International Mobile Subscriber Identity) - unikalny numer przypisany do każdej karty SIM w sieci GSM lub UMTS, jednoznacznie ją identyfikujący[1]. Numer zapisany jest na karcie SIM oraz w rejestrze HLR. W systemach GSM oraz UMTS, każdemu abonentowi jest przydzielony indywidualny, niepowtarzalny numer identyfikacyjny IMSI służący do identyfikacji tego abonenta na drodze radiowej. IMSI składa się z trzech części: kodu kraju stacji ruchomej MCC (ang. Mobile Country Code), obejmującego trzy cyfry (np. Francja: 208, Niemcy: 262, Polska: 260); MCC identyfikuje jednoznacznie macierzysty kraj abonenta ruchomego, kodu sieci MNC (ang. Mobile Network Code), zawierającego dwie lub trzy cyfry identyfikujące sieć; MNC identyfikuje macierzystą sieć danego abonenta ruchomego, numeru identyfikacyjnego abonenta ruchomego MSIN (ang. Mobile Subscriber Identification Number), identyfikującego go w danej sieci komórkowej. IMSI są tworzone tylko z cyfr (od 0 do 9). Ogólna liczba cyfr w IMSI nie może przekraczać 15 cyfr. Przydziały krajowych numerów identyfikacyjnych abonentów ruchomych są dokonywane w uzgodnieniu z administracją łączności danego kraju.
Ki Ki nie jest przesyłany poprzez sieć GSM Nie można go odczytać (przynajmniej teoretycznie) Kodowany za pomocą algorytmu COMP128-1 Posiadanie kodu IMSI oraz Ki pozwala stworzyć duplikat karty SIM Ki jest kamieniem węgielnym bezpieczeństwa w GSM
Rejestr EIR(Equipment Identity Register) oraz CEIR Lista biała Lista szara (monitorowana) Lista czarna (aparaty kradzione, uszkodzone, urzadzenia szpiegujące) Rejestr EIR zawiera numery IMEI telefonów komórkowych. Jego funkcjonowanie jest w gestii operatora sieci komórkowej.
Usługi bezpieczeństwa - anonimowość Anonimowość w systemie GSM jest związana z ukrywaniem numeru IMSI (monitorowanie miejsca pobytu, połączeń danego abonenta) Podczas komunikacji ze stacją bazową używany jest numer TMSI
Procedura nadawania TMSI Pierwsze logowanie do systemu TMSI przesłane przez abonenta nie zgadza się w wpisem w VLR (błąd komunikacji, atak itp...) Zmiana położenia abonenta (inny numer LAI) Logowanie do systemu W dwóch pierwszych przypadkach numer IMSI jest przesyłany w formie niezakodowanej! (przed rozpoczęciem kodowania) – najłatwiejsza forma „hackowania” systemu GSM
Protokół przydzielania nowego numeru TMSI VLR – rejestr abonentów wizytujących – baza danych znajdująca się przy każdej MSC, zawierająca dane wszystkich abonentów wizytujących obecnie daną MSC. Obsza LAI (Location Area Identity) – obszar przywołań w ramach jednego VLR, pokrywający z reguły BSC, ale jeden VLR może mieć wiele LAI
Protokoł przydzielania nowego TMSI (2) W procedurze przydzielenia nowego numeru TMSI biorą udział oba rejestry VLR, pomiędzy którymi przesyłane są informacje związane z danym abonentem, m. in. numer IMSI (krok 3). Gdyby na skutek jakiegoś błędu numer TMSI nie był znany sieci, to wysłałaby ona zapytanie o numer IMSI, który pozwoli zidentyfikować abonenta bezpośrednio w rejestrze HLR. Po poprawnym zidentyfikowaniu abonenta ustawiane jest połączenie szyfrowane i sieć przesyła do karty SIM nowy numer TMSI (krok 6). Wysyłana jest również informacja o nowej lokalizacja abonenta do macierzystego rejestru HLR (krok nr 7). Kolejność kroków nr 6 i 7 nie ma znaczenia i nie została sprecyzowana w specyfikacji systemu GSM [20].
Zależności pomiędzy kluczami Numer TMSI, zapisany w VLR, jest indeksem umożliwiającym odszukanie danego abonenta w sieci TMSi nie jest znany ani w HLR ani w AuC Komunikacja VLR – AuC odbywa się przy pomocy numeru IMSI
Atak na usługę anonimowości Idea ataku opiera się na zasadzie że stacja mobilna (telefon) nie uwierzytelnia sieci Ataki typu man-in-the-middle, polegające na podstawianiu fałszywej stacji bazowej Są możliwe dzięki temu że numer IMSI może być przesyłany drogą radiową bez kodowania (mówiliśmy o tym wcześniej)
Atak na usługę anonimowości (2) Znając numer IMSI możemy podsłuchiwać numer TMSI (wymaga to złamania algorytmu kodowania i jest to możliwe) Znając numer TMSI możemy praktycznie podsłuchiwać wszystko Zależność anonimowości od poufności
SILNE UWIERZYTLENIANIE Uwierzytelnianie Uwierzytelnianie w sieci: Ogólna zasada: :challenge and response” Decyzja uwierzytelniania jest podejmowana w MSC Uwierzytelnianie w aparacie: Autoryzacja za pomocą kodu PIN (niewymagana przez standard) SILNE UWIERZYTLENIANIE
Uwierzytelnianie A3 i A8 działają wewnątrz karty Proces uwierzytelnienia polega na tym, że sieć (a konkretnie AuC) generuje liczbę losową RAND (128 bitową) (1), którą następnie wysyła do abonenta chcącego zalogować się do sieci (2). Na tej liczbie działa algorytm A3 (operacje przeprowadzane są wewnątrz karty SIM), który wykorzystuje również tajny klucz Ki (3). 32-bitowa liczba SRES, która jest generowana przez algorytm A3, jest odsyłana przez stację mobilną z powrotem do sieci (4). Na podstawie przedstawionego numeru TMSI sieć mogła również skorzystać z klucza Ki (który dla każdego abonenta jest zapisany w AuC) i wygenerować swoją liczbę SRES (5). Jeśli obie te wartości zgadzają się (6), to znaczy że proces uwierzytelnienia został przeprowadzony pomyślnie i użytkownik otrzymuje dostęp do sieci (jest w niej autoryzowany). Generowany jest wtedy również klucz szyfrujący Kc (7) oraz uruchamiane jest szyfrowanie w kanale radiowym (8). W przypadku różnych wartości SRES, karta SIM nie może uzyskać dostępu do sieci, a abonent zostaje poinformowany o posiadaniu niewłaściwej karty SIM (przeważnie jest to komunikat wyświetlany na ekranie aparatu). Zależnie od operatora sieć może podjąć jeszcze jedną próbę autoryzacji na podstawie numeru IMSI (w tym wypadku jest on przesyłany niezaszyfrowanym kanałem). A3 i A8 działają wewnątrz karty A3/A8 to w zasadzie jeden algorytm RAND – liczba pseudolosowa <500ms Decyzję o uwierzytlenianiu podejmuje rejrestr VLR
Algorytm A3/A8 Istnieją cztery wersje algorytmu COMP128: COMP128-1 – pierwsza wersja, która zawiera kilka błędów (korzysta ze słabej kryptograficznie kompresji „motyla” oraz generuje klucz Kc o efektywnej długości 54 bitów – 10 ostatnich bitów klucza ma zawsze wartość ‘0’ [13]). COMP128-2 – druga wersja, opublikowana niedługo po przeprowadzeniu pierwszego udanego ataku na algorytm COMP128-1. Likwiduje niektóre błędy w pierwszej wersji algorytmu, ale dalej efektywna długość klucza to 54 bity. COMP128-3 – trzecia wersja, która generuje klucz Kc o efektywnej długości 64 bitów. Zwiększyło to bezpieczeństwo algorytmu szyfrującego około 1000 krotnie (do poziomu przewidzianego w specyfikacji GSM). COMP128-4 – czwarta wersja algorytmu, która jest oparta na algorytmie 3GPP (Kasumi), takim samym jaki jest stosowany w systemie UMTS. Jedyna wersja, która nie została jeszcze prawdopodobnie złamana. Niewielu jednak operatorów zdecydowało się na jej wprowadzenie, ze względu na znaczne zmiany i spore koszty takiej transformacji.
COMP128-1 Wejście: 128 bit( 16Bajtów) klucz Ki 128 bit RAND Wyjście: 32-bit SRES 64 bit Kc Algorytm rundowy – permutacje i przestawienia
1. Wczytanie wartości RAND do bufora roboczego (o rozmiarze 32 batów) na pozycje ostatnich 16 bajtów. 2. Uruchomienie ośmiu rund, z których każda (poza ostatnią, jak już wspomniałem) składa się z następujących kroków: 2.1 Wczytanie klucza Ki na miejsce pierwszych 16 bajtów bufora roboczego. 2.2 Podstawienia wykonywane z wykorzystaniem pięciu bloków podstawieniowych o malejącej wielkości. Podstawienia te są wykonywane zgodnie ze strukturą motyla (rys. nr 1.7), która, jak się później okazało, stanowi największą słabość algorytmu. Wykorzystanie bloków podstawieniowych o malejącej wielkości pozwala na końcu tego kroku na uzyskanie czterech bitów zerowych na początku każdego bajtu (ponieważ w ostatniej tablicy podstawieniowej są wartości z zakresu 0-15, które można zapisać przy pomocy czterech bitów).
2.3. Przepisanie bajtów do pomocniczej tablicy bitowej o rozmiarze 128 (pomijane są cztery bity zerowe z każdego bajta – rys. nr 1.8). 2.4. Permutacja (w ostatniej rundzie tego kroku nie ma) pomocniczej tablicy bitowej, a następnie zainicjowanie na nowo bufora roboczego. Bity z otrzymanej tablicy są wykorzystywane do stworzenia bajtów (np. bity znajdujące się na pozycjach 1-8 tworzą bajt; jedynie „starszeństwo” bitów jest ustalane odwrotnie, tzn. najstarszy jest w tym wypadku bit nr 8) i zapisania tak otrzymanych bajtów na 16 ostatnich pozycji bufora roboczego. 3. Po ostatniej rundzie w pomocniczej tablicy bitowej znajduje się 128 bitów (krok 2.4 nie jest wykonywany w ostatniej rundzie), z których 32 pierwsze stanowią SRES, a 54 ostatnie (bity numer 75-128) stanowią klucz Kc. Ponieważ algorytm A5 wymaga 64 bitowego klucza, na miejsce brakujących 10 bitów dopisywane są bity zerowe (w wersjach COMP128-1 i COMP128-2).
Ataki na uwierzytelnianie Ataki na algorytmy uwierzytelniające abonenta w sieci GSM są najniebezpieczniejsze, ponieważ poznanie przez napastnika klucza Ki jednego z abonentów daje mu taki sam dostęp do usług jak pełnoprawnemu abonentowi. Co więcej, po sklonowaniu karty SIM, sieć nie będzie w stanie odróżnić uczciwego abonenta (prawdziwej karty SIM) od oszusta (podrobionej karty SIM). Wobec udanego ataku na uwierzytelnienie wszelkie inne zabezpieczenia i usługi nie mają znaczenia. Złamanie algorytmu COMP128 Najczęściej stosowany jest algorytm w wersji 128-1 brak rozdzielenia praktycznego A3 i A8 (integracja obu nie jest konieczna, ponieważ liczba SRES jest potrzebna wcześniej niż Kc) Bezpieczeństwo opiera się na tajności algorytmów tzw. security through obscurity Większośc ataków polega na poznaniu kodu Ki -> sklonowanie karty SIM, podsłuchiwanie rozmów, podszywanie się pod abonenta i inne...
Historia ataków
Poufność Kodowaniu informacji przesyłanych w sieci Algorytmy strumieniowe z rodziny A5/x: A5/0 – najsłabsza „wersja” algorytmu, polegająca na transmisji wszystkich danych tekstem otwartym (bez szyfrowania); A5/2 – słabsza wersja algorytmu, zbudowana przy użyciu czterech rejestrów typu LFSR; A5/1 – silniejsza wersja algorytmu, zbudowana przy użyciu trzech rejestrów typu LFSR; A5/3 – najsilniejsza wersja algorytmu; zbudowana jest na bazie algorytmu Kasumi ([1, 31]), co upodabnia ją do zabezpieczeń stosowanych w systemie UMTS (patrz punkt 2.4.3). Obecnie stosowanie A5/2 i A5/1 Szyfrują wszystkie dane (po uwierzytelnieniu) zarówno rozmowy, SMS jak i informacje sieciowe
Algorytm A5 64-bitowy klucz Kc (zmieniany przy każdym procesie uwierzytelniania) 22-bitowy numer ramki Numer ramki umożliwia synchronizację w komunikacji pomiędzy urządzeniem mobilnym a stacją bazową Dane po 114-bitów (due to radio spec.) Użycie numeru ramki pozwala na wygenerowanie zmienny kodów szyfrujących przez 3,5 godziny Mała złożoność obliczeniowa
Algorytmy A5/1 i A5/2 Zbudowane przy użyciu rejestrów przesuwnych LFSR Algorytm A5/1 – R1,R2,R3 – samotaktowane Algorytm A5/2 – R4 służy do takowania, R4 jest taktowany za każdym razem
A5/2 – Inicjowanie (1) R1=R2=R3=R4=0; 64 cykle: R1[0] = R1[0] XOR Kc[i]. R2[0] = R2[0] XOR Kc[i]. R3[0] = R3[0] XOR Kc[i]. R4[0] = R4[0] XOR Kc[i].
A5/2 – inicjowanie (2) 22 cykle: (f[i] – i-ty bit numeru ramki) R1[0] = R1[0] + f[i]. R2[0] = R2[0] + f[i]. R3[0] = R3[0] + f[i]. R4[0] = R4[0] + f[i]. R1[15]=R2[16]=R3[18]=R4[10]=1.
Algorytm A5/2 327 taktów wewn. Algroytmu Pierwsze 99 bitów jest odruzacnych 228 dzielone na dwie grupy po 114 bitów Szyforwanie danych polega na xorowaniu 114-bitowych blokow do szyfrowania i deszyfowania danych ramki
Algorytm A5/1 Nie posiada rejestru R4 Nie wymusza wartości żadnych bitów Taktowanie bezpośrednio z rejestrów R1,R2,R3 Związki między rejestrami są bardziej skomplikowane Trudniejszy w krytpoanalizie
Algorytm A5/1
Ataki na usługę poufności (1) Napastnik pośredniczy przy wymianie informacji uwierzytelniających między stacją bazową a stacją mobilną. Otrzymuje on polecenie rozpoczęcia szyfrowania przy wykorzystaniu algorytmu A5/1 (patrz rys. nr 1.12, krok 1), ale do abonenta wysyła polecenie rozpoczęcia szyfrowania algorytmem A5/2 (krok 2). Następnie przechwytuje wiadomości szyfrowane słabszym algorytmem (krok 3) i odnajduje klucz Kc (krok 4). Teraz napastnik może już bez problemu uczestniczyć w wymianie informacji (odgrywa niejako dwie role: stacja mobilna odbiera go jako sieć i szyfruje algorytmem A5/2, natomiast stacja bazowa odbiera go jako stacje mobilną i szyfruje algorytmem A5/1).
Ataki na usługę poufności (1a) Atak ten jest możliwy dzięki temu, że zarówno A5/1 jak i A5/2 (jak również GEA1 i GEA2 o czym w punkcie 1.4) stosują ten sam klucz szyfrujący Kc. Jest to duże zaniedbanie ze strony projektantów systemu. Co więcej atak ten jest niemożliwy do wykrycia przez żadną ze stron, ponieważ po wysłaniu żądania szyfrowania algorytmem A5/1 sieć czeka 12 sekund ([19]) na odpowiedź stacji mobilnej, a napastnikowi odkrycie klucza Kc zajmuje około sekundy (o czym w dalszej części podpunktu). A zatem opóźnienie wprowadzane przez napastnika jest niezauważalne.
Ataki na usługę poufności (2) Ten atak bazuje na fakcie, że w trakcie procedury uwierzytelniania aparat telefoniczny wysyła do sieci tzw. „class-mark”, w którym zawarta jest informacja o posiadanych algorytmach szyfrowania. Niestety wiadomość ta jest przesyłana tekstem jawnym. Napastnik zatem, wykorzystując fałszywą stację bazową, może podmienić bity tej informacji w taki sposób, aby sieć myślała, że ma do wyboru jedynie wersję A5/0 i A5/2 (lub nawet jedynie A5/0, czyli połączenie bez szyfrowania). Jest to możliwe, ponieważ w systemie GSM nie przewidziano żadnych mechanizmów kontroli integralności danych. Mając do wyboru A5/0 i A5/2 sieć wybierze oczywiście algorytm A5/2, który napastnik może błyskawicznie złamać.
Ataki na usługę poufności (3) Ostatni atak bazuje na fakcie, że w praktyce proces uwierzytelniania jest przeprowadzany dość rzadko, a zatem klucz Kc jest równie rzadko zmieniany. Wystarczy zatem, że napastnik na chwile nawiąże łączność z telefonem komórkowym ofiary i, imitując stację bazową, wyśle żądanie rozpoczęcia szyfrowania algorytmem A5/2. Po uzyskaniu niewielkiej ilości danych napastnik rozłącza się i znajduje klucz Kc. Może on teraz podsłuchiwać transmisję pomiędzy abonentem i stacją bazową niezależnie od zastosowanego algorytmu aż do momentu kolejnego uwierzytelnienia. Jeśli abonent nie przemieszcza się i nie wyłącza komórki, to okres ten może być bardzo długi.
Zaniedbania w bezpieczeństwie Brak autoryzacji stacji bazowej Zastosowanie kodowania nadmiarowego (łatwiejsze w kryptoanalizie)
Wybrane ataki A5/1 lepszy od 15/2, ale złamanie słabszego umożliwia złamanie drugiego Brak monitorowania stacji BTS (np. czasu odpowiedzi) Podsłuchy wewnątrz sieci!! (komunikacja BTS-BSC jest często droga radiową ) Lokalne bazy danych operatora (SMS oczekujące, wiadomości głosowe itp.)
Integralność Brak sprawdzania integralności danych Zmiany numeru docelowego Zmiana zawartości SMS,
GPRS i EDGE Zamiast algorytmów A5/1, A5/2 i A5/3 stduje się bliżniaczo podobne algroytmy GEA1, GEA2, i GEA 3 Ich kody są utajnione (na razie nikt ich nie opublikował) Mała odpornośc na ataki man-in-the-middle
Bezpieczeństwo GSM - podsumowanie Brak uwierzytelniania stacji bazowej Zastosowanie słabych kryptograficznie algorytmów (tajność) Brak kontroli integralności danych Stosowanie tych samych kluczy do wszystkich algorytmów szyfrujących