Bezpieczeństwo GSM
Algorytmy szyfrowania A5, autentyfikacja SIM, generowanie klucza Kc i słabości bezpieczeństwa.
Potrzeba Zaufania: Dlaczego Bezpieczeństwo jest Kluczowe w Komunikacji Mobilnej
W początkach telefonii komórkowej, analogowe sieci 1G były jak Dziki Zachód komunikacji. Rozmowy były przesyłane jako proste fale radiowe, co czyniło je niezwykle podatnymi na zagrożenia. Każdy z prostym skanerem radiowym mógł podsłuchiwać prywatne rozmowy, a oszuści mogli łatwo "klonować" tożsamość telefonu, aby dzwonić na czyjś rachunek. Ten brak bezpieczeństwa był fundamentalną wadą, która czyniła komunikację mobilną niegodną zaufania dla czegokolwiek poza swobodnymi rozmowami.
Projektanci GSM rozumieli, że aby nowy standard cyfrowy odniósł sukces i stał się prawdziwie globalnym systemem, musi budować zaufanie użytkowników. Oznaczało to potraktowanie bezpieczeństwa nie jako dodatek, ale jako fundamentalną zasadę architektury. Mechanizmy bezpieczeństwa wbudowane w GSM były rewolucyjne jak na swoje czasy i zostały zaprojektowane w celu osiągnięcia trzech głównych celów:
- Uwierzytelnianie: Aby udowodnić, że użytkownik jest legalnym abonentem i ma prawo dostępu do sieci. Zapobiega to nieautoryzowanemu użyciu i klonowaniu telefonów.
- Poufność: Aby zapewnić, że rozmowy i dane przesyłane drogą radiową pozostaną prywatne i nie będą mogły być podsłuchiwane przez osoby nieupoważnione.
- Anonimowość: Aby chronić tożsamość użytkownika, uniemożliwiając łatwe śledzenie go poprzez monitorowanie transmisji radiowych.
Rdzeń Bezpieczeństwa GSM: Trzy Filary
Cała struktura bezpieczeństwa GSM opiera się na współdziałaniu trzech kluczowych elementów: tajnego klucza przechowywanego na karcie SIM, serii algorytmów kryptograficznych oraz procedury typu "wyzwanie-odpowiedź".
- Tajny Klucz Abonenta (): Jest to 128-bitowy tajny numer unikalny dla każdego abonenta. Jedna kopia jest bezpiecznie przechowywana na abonenta, a druga kopia w silnie chronionej bazie danych po stronie sieci, zwanej Centrum Uwierzytelniania (AUC). Klucz ten jest fundamentem całego bezpieczeństwa i zaprojektowano go tak, aby nigdy nie był przesyłany przez sieć radiową.
- Algorytmy Kryptograficzne (A3, A8, A5): GSM wykorzystuje zestaw algorytmów do zadań bezpieczeństwa. Algorytmy te są jak matematyczne przepisy.
- : Algorytm uwierzytelniania.
- : Algorytm generowania klucza szyfrującego sesji.
- : Właściwy algorytm szyfrujący, używany do kodowania danych.
- Mechanizm Wyzwanie-Odpowiedź: Zamiast wysyłać hasło przez sieć, co mogłoby zostać przechwycone, GSM używa sprytnej metody "wyzwanie-odpowiedź". Sieć wysyła telefonowi losowe, nieprzewidywalne "wyzwanie", a telefon musi dostarczyć poprawną "odpowiedź". Tylko ktoś posiadający tajny klucz, , jest w stanie obliczyć poprawną odpowiedź na to wyzwanie.
Analiza 1: Uwierzytelnianie - "Czy jesteś legalnym abonentem?"
Proces uwierzytelniania to pierwszy punkt kontroli bezpieczeństwa, który telefon musi przejść, zanim uzyska pozwolenie na wykonywanie lub odbieranie połączeń. Jego celem jest weryfikacja, czy karta SIM jest autentyczna i należy do płacącego abonenta.
Procedura przebiega następująco:
- Wyzwanie: Centrum Uwierzytelniania (AUC) sieci generuje 128-bitową liczbę losową zwaną . Ta liczba RAND jest wysyłana drogą radiową do Stacji Ruchomej (MS).
- Równoległe Obliczenia: W momencie, gdy RAND jest wysyłany do telefonu, rozpoczyna się dwutorowe obliczenie:
- Po stronie telefonu (SIM): Karta SIM odbiera RAND z sieci. Pobiera ten RAND i swój własny tajny, bezpiecznie przechowywany klucz abonenta, , i wprowadza je oba do algorytmu uwierzytelniającego, . Algorytm przetwarza te dwa wejścia i generuje 32-bitowy wynik zwany Podpisaną Odpowiedzią, czyli .
- Po stronie sieci (AUC): Równocześnie, w silnie zabezpieczonym AUC, sieć wykonuje dokładnie te same obliczenia. Pobiera ten sam RAND, który właśnie wysłała, i kopię abonenta, którą ma zapisaną w swojej bazie danych. Wprowadza je do własnej implementacji algorytmu , również generując 32-bitową wartość SRES.
- Odpowiedź: Stacja Ruchoma odsyła swoje obliczone SRES z powrotem do sieci.
- Weryfikacja: Centrala Komutacyjna (MSC) ma teraz dwie wartości SRES: tę, którą otrzymała od telefonu, oraz tę obliczoną wewnętrznie przez jej AUC. Porównuje je.
- Jeśli obie wartości SRES idealnie się zgadzają, uwierzytelnianie kończy się sukcesem. Sieć jest teraz pewna, że użytkownik jest legalny, ponieważ tylko autentyczna karta SIM z prawidłowym mogła wygenerować poprawną odpowiedź na losowe wyzwanie.
- Jeśli wartości SRES się nie zgadzają, uwierzytelnianie kończy się niepowodzeniem, a sieć odmawia użytkownikowi dostępu, zapobiegając oszustwom.
Analiza 2: Poufność - Generowanie i Użycie Klucza Szyfrującego
Gdy tożsamość użytkownika zostanie zweryfikowana, następnym krokiem jest zabezpieczenie samej rozmowy. GSM chroni poufność głosu i danych poprzez szyfrowanie łącza radiowego między telefonem a stacją bazową. Zapobiega to podsłuchiwaniu za pomocą skanera. Kluczem do tego procesu jest stworzenie tymczasowego, jednorazowego klucza szyfrującego dla każdej sesji.
Piękno systemu GSM leży w jego wydajności. Nie potrzebuje on oddzielnego procesu "wyzwanie-odpowiedź" do stworzenia klucza szyfrującego. Zamiast tego ponownie wykorzystuje te same dane wejściowe z etapu uwierzytelniania. Podczas równoległych obliczeń w procesie uwierzytelniania, karta SIM i AUC sieci wykonują drugie obliczenie:
Oba biorą ten sam 128-bitowy i ten sam 128-bitowy tajny klucz i wprowadzają je do innego algorytmu, . Wynikiem działania A8 jest 64-bitowy klucz tymczasowy znany jako . Ponieważ zarówno SIM, jak i AUC rozpoczęły z tymi samymi danymi wejściowymi ( i ), oba niezależnie generują dokładnie ten sam klucz . Klucz nigdy nie jest przesyłany drogą radiową. Sieć po prostu wysyła do telefonu polecenie "Rozpocznij Tryb Szyfrowania", a od tego momentu obie strony wiedzą, że mają używać klucza , który właśnie wygenerowały.
Mając ustanowiony wspólny tajny klucz (), zarówno telefon, jak i stacja bazowa mogą teraz szyfrować swoją komunikację. Używają do tego algorytmu szyfrującego zwanego . GSM ma kilka wersji tego algorytmu:
- : Oryginalna, stosunkowo silna wersja używana w Europie i innych częściach świata.
- : Celowo osłabiona wersja opracowana na eksport do regionów, gdzie rządy miały obawy co do silnego szyfrowania.
- : Znacznie silniejszy algorytm opracowany później w celu wzmocnienia bezpieczeństwa, używany w sieciach 3G, a czasem jako ulepszenie dla GSM.
- : To określenie na sytuację, gdy szyfrowanie nie jest w ogóle używane.
Algorytm to rodzaj . Szyfr strumieniowy działa jak cyfrowa maszyna kodująca.
- Algorytm pobiera 64-bitowy Klucz Szyfrujący () oraz 22-bitowy numer ramki TDMA (który ciągle się zmienia) jako dane wejściowe.
- Używa tych danych do generowania bardzo długiego, pozornie losowego strumienia bitów zwanego strumieniem klucza. Ponieważ zarówno telefon, jak i stacja BTS mają ten sam klucz i znają ten sam numer ramki, oba generują dokładnie ten sam strumień klucza w tym samym czasie.
- Aby zaszyfrować, dane do wysłania (np. scyfryzowana mowa) są łączone ze strumieniem klucza za pomocą operacji bitowej XOR.
- Aby odszyfrować, odebrane zaszyfrowane dane są łączone z tym samym strumieniem klucza za pomocą tej samej operacji XOR. Magia XOR polega na tym, że zastosowanie jej dwukrotnie z tym samym kluczem zwraca oryginalne dane.
Analiza 3: Anonimowość - Ukrywanie się w Tłumie
Ostatnim elementem układanki bezpieczeństwa jest ochrona anonimowości użytkownika. Ciągłe rozgłaszanie stałej tożsamości użytkownika (IMSI) przez sieć radiową sprawiłoby, że śledzenie ruchów i aktywności użytkownika byłoby trywialne. Aby temu zapobiec, GSM używa tymczasowych identyfikatorów.
Kiedy telefon rejestruje się w nowym obszarze położenia, VLR przydziela mu . TMSI to tymczasowy pseudonim, który ma znaczenie tylko w bieżącym obszarze położenia. Od tego momentu, we wszystkich rutynowych komunikatach, takich jak inicjowanie połączenia czy odpowiadanie na przywołanie, telefon używa TMSI do identyfikacji w sieci, a nie stałego IMSI. TMSI jest okresowo zmieniany przez sieć, co bardzo utrudnia zewnętrznemu obserwatorowi powiązanie transmisji radiowych z konkretną osobą przez dłuższy czas. Prawdziwy IMSI jest używany tylko wtedy, gdy jest to absolutnie konieczne, na przykład podczas pierwszej rejestracji w VLR lub po błędzie sieci, gdy TMSI mógł zostać utracony.
Mocne i Słabe Strony Bezpieczeństwa GSM
Bezpieczeństwo w GSM było monumentalnym osiągnięciem jak na swoje czasy i zapewniało poziom ochrony znacznie przewyższający wszystko, co było wcześniej. Jednak w miarę postępu technologii i coraz bardziej zaawansowanej analizy bezpieczeństwa zidentyfikowano kilka słabości.
- Skutecznie zapobiegało przypadkowemu podsłuchiwaniu i masowemu klonowaniu telefonów.
- Użycie karty SIM do oddzielenia tożsamości użytkownika od sprzętu było wielką innowacją.
- Mechanizm wyzwanie-odpowiedź oznaczał, że najważniejszy tajny klucz () nigdy nie był ujawniany w interfejsie radiowym.
- Jednokierunkowe uwierzytelnianie: Sieć uwierzytelnia telefon, ale telefon nie uwierzytelnia sieci. Jest to krytyczna wada, która umożliwia ataki z użyciem . Fałszywa stacja bazowa może zmusić telefon do połączenia się z nią, a następnie potencjalnie zmusić go do wyłączenia szyfrowania lub przeprowadzenia ataku typu man-in-the-middle.
- Słaba kryptografia: Wykazano, że algorytm , choć silny w latach 90., jest możliwy do złamania przy wystarczającej mocy obliczeniowej. Algorytm był celowo osłabiony i jest trywialny do złamania. Oznacza to, że przy odpowiednim sprzęcie zdeterminowany napastnik może potencjalnie odszyfrować rozmowy GSM.
- Szyfrowanie nie jest typu koniec-z-końcem: Jest to często mylnie rozumiany punkt. Szyfrowanie GSM chroni tylko najsłabszą część ścieżki komunikacyjnej: łącze radiowe między telefonem a stacją bazową. Gdy sygnał dotrze do BTS, jest deszyfrowany i przesyłany "jawnie" (bez szyfrowania) przez sieć szkieletową operatora i szerszą publiczną sieć telefoniczną. Oznacza to, że może być przechwycony w wielu punktach wewnątrz sieci przewodowej.
- Ograniczona anonimowość: Chociaż użycie TMSI jest znacznym ulepszeniem, stały IMSI może być wciąż zażądany przez sieć w pewnych okolicznościach, na krótko ujawniając stałą tożsamość użytkownika.