Cele bezpieczeństwa GSM i ograniczenia analogowych sieci 1G
W początkach telefonii komórkowej analogowe sieci 1G przesyłały rozmowy jako niezaszyfrowane sygnały radiowe. Prosty skaner mógł odebrać prywatną rozmowę, a oszust mógł sklonować tożsamość telefonu i obciążyć cudzy rachunek. Brak ochrony był jedną z podstawowych słabości tych systemów, ponieważ nie zapewniały poufności rozmów ani wiarygodnej identyfikacji abonenta.
Projektanci GSM przyjęli, że cyfrowy standard przeznaczony do wdrożeń międzynarodowych musi budować zaufanie użytkowników. Bezpieczeństwo stało się częścią architektury, a mechanizmy GSM miały realizować trzy główne cele:
- 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 Mechanizmy
Cała struktura bezpieczeństwa GSM opiera się na współdziałaniu trzech mechanizmów: tajnego klucza przechowywanego na karcie SIM, rodziny 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 podstawą uwierzytelniania i szyfrowania, a jego projekt zakłada, że nigdy nie będzie przesyłany przez sieć radiową.
- Rodziny algorytmów kryptograficznych (A3, A8, A5): GSM wykorzystuje funkcje kryptograficzne o odrębnych rolach. Konkretne implementacje A3, A8 i A5 zależą od uzgodnionej wersji oraz konfiguracji operatora.
- : funkcja uwierzytelniania abonenta.
- : funkcja generowania sesyjnego klucza szyfrującego.
- : rodzina algorytmów szyfrujących dane i sygnalizację radiową.
- Mechanizm Wyzwanie-Odpowiedź: Zamiast wysyłać hasło przez sieć, co mogłoby zostać przechwycone, GSM stosuje procedurę "wyzwanie-odpowiedź". Sieć wysyła telefonowi losowe, nieprzewidywalne "wyzwanie", a telefon musi dostarczyć poprawną "odpowiedź". Tylko urządzenie posiadające tajny klucz, , jest w stanie obliczyć poprawną odpowiedź na to wyzwanie.
Analiza 1: Uwierzytelnianie - "Czy jesteś legalnym abonentem?"
Proces uwierzytelniania to pierwsza kontrola bezpieczeństwa, którą 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 uprawnionego abonenta.
Procedura przebiega następująco:
- Wyzwanie: Centrum Uwierzytelniania (AuC) przygotowuje wektor uwierzytelniania zawierający 128-bitową liczbę losową zwaną , oczekiwaną odpowiedź SRES i klucz . VLR lub MSC wybiera RAND z tego wektora i wysyła go drogą radiową do Stacji Ruchomej (MS).
- Obliczenie po obu stronach: Telefon oblicza odpowiedź na otrzymany RAND, a sieć korzysta z wartości wyznaczonej wcześniej przez AuC:
- 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 i VLR/MSC): AuC oblicza oczekiwany SRES z użyciem tego i klucza , a następnie przekazuje parę RAND/SRES oraz klucz do VLR lub MSC. VLR/MSC przechowuje oczekiwany SRES do porównania z odpowiedzią MS.
- Odpowiedź: Stacja Ruchoma odsyła swoje obliczone SRES z powrotem do sieci.
- Weryfikacja: VLR lub Centrala Komutacyjna (MSC) ma teraz dwie wartości SRES: tę, którą otrzymała od telefonu, oraz tę otrzymaną wcześniej z AuC. Porównuje je.
- Jeśli obie wartości SRES idealnie się zgadzają, uwierzytelnianie kończy się sukcesem. Sieć akceptuje odpowiedź jako zgodną z abonentem, 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 utworzenie tymczasowego klucza szyfrującego dla sesji.
System GSM wykorzystuje wspólne dane wejściowe w obu funkcjach. Do utworzenia klucza szyfrującego nie jest potrzebny oddzielny proces "wyzwanie-odpowiedź". Podczas procedury uwierzytelniania karta SIM wyznacza lokalnie, a AuC oblicza odpowiadającą wartość dla wektora przekazywanego do VLR lub MSC:
Oba biorą ten sam 128-bitowy i ten sam 128-bitowy tajny klucz i wprowadzają je do algorytmu . Wynikiem działania A8 jest 64-bitowy klucz tymczasowy znany jako . Karta SIM wyznacza go lokalnie, a AuC umieszcza odpowiadającą wartość w wektorze przekazywanym do VLR lub MSC. Klucz nigdy nie jest przesyłany drogą radiową. Sieć wysyła do telefonu polecenie "Rozpocznij Tryb Szyfrowania", a obie strony używają uzgodnionego klucza .
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:
- : Oryginalny, historycznie względnie silny wariant używany w Europie i innych częściach świata.
- : Historycznie osłabiony wariant opracowany na eksport do regionów, gdzie rządy miały obawy co do silnego szyfrowania. Późniejsza kryptanaliza wykazała jego bardzo mały margines bezpieczeństwa.
- : Późniejszy, znacznie silniejszy wariant dla GSM i ECSD, używany także jako ulepszenie ochrony w sieciach GSM.
- : To określenie na sytuację, gdy szyfrowanie nie jest w ogóle używane.
Algorytm to rodzaj . Szyfr strumieniowy przetwarza dane przy użyciu strumienia klucza.
- 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ą operacji XOR. Ponowne użycie XOR z tym samym strumieniem zwraca oryginalne dane.
Analiza 3: Anonimowość - Tymczasowe Identyfikatory i Ich Ograniczenia
Trzecim mechanizmem bezpieczeństwa jest ograniczenie ujawniania tożsamości użytkownika. Ciągłe rozgłaszanie stałej tożsamości użytkownika (IMSI) przez sieć radiową ułatwiłoby śledzenie jego ruchów i aktywności. GSM ogranicza to ryzyko przez użycie 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 i zachowuje stały IMSI poza tymi komunikatami. 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 pozostaje identyfikatorem awaryjnym, używanym na przykład podczas pierwszej rejestracji w VLR lub po utracie kontekstu TMSI, dlatego mechanizm nie zapewnia pełnej anonimowości.
Mocne i Słabe Strony Bezpieczeństwa GSM
W swoim okresie GSM zapewniało poziom ochrony znacznie przewyższający wcześniejsze analogowe systemy komórkowe. Postęp technologii i coraz bardziej zaawansowana analiza bezpieczeństwa ujawniły jednak 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, lecz 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: Algorytm , względnie silny w klasycznym zestawie GSM lat 90., jest możliwy do złamania przy wystarczającej mocy obliczeniowej. Algorytm został historycznie osłabiony i stał się podatny na praktyczną kryptanalizę. 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, czyli łą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.