Pełen artykuł
Transkrypt
Pełen artykuł
Politechnika Gdańska Wydział Elektroniki, Telekomunikacji i Informatyki Mechanizmy ochrony informacji w systemie komórkowym UMTS Sebastian Rogawski [email protected] Wprowadzenie Telefonia komórkowa, niegdyś symbol dostatku, z dnia na dzień staje się coraz bardziej powszechna, a jej funkcjonalność coraz bardziej użyteczna. Jej rozwój wiąże się przede wszystkim ze wzrostem jakości oferowanych usług wychodzących naprzeciw oczekiwaniom klienta i zarazem spadkiem ich cen. Pojawiły się także nowe usługi, a niektóre z nich doczekały się nawet szczególnego zainteresowania, co przyczyniło się do jeszcze gwałtowniejszego postępu w tej dziedzinie. Na początku telefony komórkowe wykorzystywane były tylko do prowadzenia rozmów, jednak ta sytuacja dość szybko uległa zmianie, bo już w systemach 2G, kiedy to analogowe przesyłanie głosu zostało wyparte przez dane w postaci cyfrowej. Wówczas pojawiły się nowe możliwości, a wraz z nimi nowe usługi. Wraz z początkiem systemów wykorzystujących powietrze jako środek transmisji, pojawiły się pierwsze ataki, wykorzystujące propagacyjną właściwość fal radiowych. W celu zapewnienia poufności użytkowników twórcy systemów radiokomunikacyjnych stanęli przed koniecznością zaprojektowania mechanizmów ochrony informacji przesyłanej wewnątrz systemu. Za cele główne uznano wówczas zapewnienie uwierzytelnienia, poufności informacji i poufności lokalizacji użytkownika, co spełniało podstawowe wymagania ochrony informacji. W wyniku rozwoju nauki dzisiejsze rozwiązania dotyczą także problemów integralności danych i uwierzytelnienia sieci. Z faktu powszechności telefonii komórkowej w życiu codziennym jej użytkownik powinien być świadomy potencjalnych prób podsłuchu i podszywania się. Może on więc zadać sobie pytanie: jak bezpieczna jest jego informacja, przesyłana przez taki system? Celem niniejszej publikacji jest omówienie zastosowanego systemu zabezpieczeń i użytych mechanizmów ochrony informacji, a w rezultacie próba odpowiedzenia na to ważne pytanie. Spis treści: 1. Zabezpieczenia bezpieczeństwa systemów komórkowych................................................................................02 2. Architektura systemu komórkowego UMTS ....................................................................................................03 3. Klasyfikacja zabezpieczeń systemu komórkowego UMTS...............................................................................06 4. Mechanizmy ochrony dostępu do sieci..............................................................................................................07 4.1 Uwierzytelnienie i ustanowienie kluczy............................................................................................ 08 4.2 Negocjacje algorytmów szyfrowania i kontroli integralności........................................................... 13 4.3 Proces kontroli integralności............................................................................................................ 15 4.4 Proces szyfrowania...........................................................................................................................17 4.5 Szyfr KASUMI................................................................................................................................. 19 5. Bibliografia....................................................................................................................................................... 20 Gdańsk 2004 1. ZABEZPIECZENIA BEZPIECZEŃSTWA SYSTEMÓW KOMÓRKOWYCH Pierwsze systemy radiokomunikacji komórkowej powstały w latach osiemdziesiątych ubiegłego wieku. Charakteryzowały się małą pojemnością, niską jakością transmisji analogowej i brakiem środków bezpieczeństwa przesyłanych przez nie danych. Mimo to operatorzy systemów komórkowych pierwszej generacji uznali ich wprowadzenie na rynek za sukces komercyjny. Wynikała to przede wszystkim z pierwotnych niewygórowanych oczekiwań użytkowników, których zadowalała dostępność do usług w trakcie przemieszczania i przełączanie połączeń na granicy między komórkami. Na początku lat dziewięćdziesiątych XX wieku wprowadzono do użytku systemy komórkowe drugiej generacji z całkowicie cyfrową transmisją, co okazało się później prawdziwym przełomem w dziedzinie telekomunikacji. Charakteryzowały się one znacznie wyższą jakością usług rozmównych, kilkoma rodzajami usług transmisji danych o znacznie większych przepływnościach niż w systemach pierwszej generacji oraz większą efektywnością widmową, czy lepszą przepływnością danych. Oprócz tego pojawiło się zabezpieczenie danych przesyłanych drogą radiową przed dostępem do nich nieautoryzowanych użytkowników. Przesyłane dane były szyfrowane, tożsamość użytkownika była weryfikowana w procesie uwierzytelniania, a lokalizacja użytkownika nie była możliwa. Ponadto terminal użytkownika w przypadku zgubienia lub kradzieży mógł być zablokowany. Nie wyeliminowało to jednak wielu zagrożeń takich jak brak zabezpieczeń przed podszywaniem się, brak kryptograficznej ochrony danych przesyłanych w sieci szkieletowej, brak zapewnienia integralności przesyłanych danych i innych. Stało się to wyzwaniem dla twórców trzeciej generacji systemów komórkowych. Stworzyli oni listę możliwych zagrożeń, których obecnie można być świadomym. Na liście tej można wyróżnić podstawowe grupy zagrożeń, takie jak: · Nieautoryzowany dostęp do danych przesyłanych przez sieć, który obejmuje: przechwycenie przez intruza przesyłanych danych (eavesdropping) zarówno użytkownika jak i danych sterujących; wykorzystanie podstawionych przez intruza urządzeń systemu, w celu zdobycia poufnych danych użytkownika, podszywanie się za użytkownika autoryzowanego w celu korzystania z usług systemu lub poufnych danych systemowych (masquerading); analizę przesyłanych sygnałów od/do użytkownika w celu określenia jego położenia; przeszukiwanie pamięci, w której dane są przechowywane (browsing); poszukiwanie możliwych wycieków informacji (leakage); obserwowanie przez intruza reakcji systemu na wysyłane zapytania lub wybrane sygnały. · Naruszenie integralności przesyłanych danych (violation of integrity): manipulacja danymi (Manipulation of messages), która może dotyczyć ruchu generowanego przez użytkownika oraz danych sygnalizacyjnych i sterujących przez wstawianie, modyfikację lub kasowanie odpowiedzi przez intruza; · Naruszenie lub nieprawidłowe użycie usług sieciowych (doprowadzanie do odrzucania żądań obsługi lub do ograniczeń w realizacji usług): wywoływanie zaburzenia pracy w sieci przez zakłócanie odbioru (Intervention); powodowanie przeciążeń sieci (Resource exhaustion); korzystanie z usług niezgodnie z przeznaczeniem (Misuse of privileges); nadużycie usług (Abuse of services). Gdańsk 2004 2 · Wypieranie się, odrzucanie (Repudiation) – możliwość wyparcia się korzystania z usług, odbioru informacji itp. · Nieautoryzowany dostęp do usług (Unauthorised access to services): podawanie się za autoryzowanego użytkownika lub fragment sieci; zmiana praw dostępu do usług przez co użytkownicy jak i jednostki sieciowe nie mogą prawidłowo przeprowadzić autoryzacji. Wszystkie te zagrożenia zostały rozpatrywane z poziomu trzech głównych możliwych aktywnych ataków na system: ataki na terminale i moduły USIM; ataki na interfejs radiowy; ataki na elementy sieci szkieletowej. 2. ARCHITEKTURA SYSTEMU KOMÓRKOWEGO UMTS Wielkość obszaru działania sieci komórkowej jest zależna od pokrycia radiowego powierzchni obsługiwanej przez sieć. Zrealizowane jest to najczęściej poprzez przyporządkowanie dużemu zaludnieniu małych obszarów, obsługiwanych przez inne stacje bazowe. W systemie UMTS możemy wyróżnić cztery poziomy pokrycia powierzchni tj. pikokomórki – kilkadziesiąt metrów; mikrokomórki – kilkaset metrów; makrokomórki – kilkadziesiąt kilometrów; zasięg globalny (sektor satelitarny). Rys. 1 Pokrycie radiowe Natomiast ze względu na bezpieczeństwo sieci komórkowych wyróżnić można trzy podstawowe obszary, wykorzystujące mechanizmy ochrony informacji tj. zabezpieczenia stacji ruchomej; zabezpieczenia radiowej sieci dostępowej; zabezpieczenia sieci szkieletowej. Gdańsk 2004 3 Rys. 2 Architektura systemu UMTS w wersji R99. Stacja ruchoma UE (User equipment) ma dostęp do usług świadczonych przez sieć za pomocą radiowej sieci dostępowej (radio access network). Celem takiej sieci jest jak największe pokrycie radiowe, tak aby oferowane usługi były dostępne wszędzie tam, gdzie są potrzebne. Sieć radiowa zajmuje się także zarządzaniem przydziału zasobów do stacji ruchomych. Główną rolę w architekturze sieci komórkowej obejmuje sieć szkieletowa ( CN – core network), która z punktu widzenia bezpieczeństwa zajmuje się zarządzaniem zabezpieczeń. W sieci szkieletowej wyróżnić można dwie domeny tj. domenę komutacji łączy oraz domenę komutacji pakietów. Każda z nich posiada wiele sieci obsługujących (SN – serving network), które mają logiczny podział na sieci macierzyste (HN – home network) oraz sieci wizytowe (VN –visited network). Sieć macierzysta to sieć operatora, u którego właściciel stacji ruchomej wykupił abonament. W tej sieci przechowywane są dane abonenta m.in. takie, które są wykorzystywane w procedurach zabezpieczających. Sieć wizytowa to sieć obsługująca, należąca do innego operatora, na której terenie użytkownik przebywa w danym momencie. Stacja ruchoma składa się z dwóch funkcjonalnych elementów, są to: Terminal - ME (mobile equipment); Moduł USIM (User Services Identity Module). Moduł USIM zajmuje się przechowywaniem danych systemowych i użytkownika oraz realizacją niektórych procedur systemowych. Dostęp do niego zabezpieczony jest za pomocą numeru PIN (Personal Identification Number). Gdańsk 2004 4 Dane przechowywane w module USIM to np. identyfikatory abonenta, wartości jego kluczy, kody algorytmów służących do obliczania i weryfikacji kluczy, które są wykorzystywane w procedurach uwierzytelniania, szyfrowania i kontroli integralności danych. Funkcje sieci radiowej są realizowane przez dwa urządzenia tj. stację bazową BS (Base Station) oraz sterownik sieci radiowej RNC (Radio Network Controler), połączone interfejsem Iub. Stacja bazowa zajmuje się obsługą stacji ruchomych oraz pomiarami parametrów, natomiast sterownik odpowiada za transmisje w łączu radiowym oraz z punktu widzenia bezpieczeństwa za szyfrowanie danych. BS Iub RNC BS IuCS IuPS Sieć szkieletowa Iur BS RNC BS Rys. 3 Struktura sieci radiowej UTRAN Gdańsk 2004 5 3. KLASYFIKACJA ZABEZPIECZEŃ SYSTEMU KOMÓRKOWEGO UMTS Wraz ze wzrostem możliwości systemów komórkowych trzeciej generacji wzrosła także liczba potencjalnych zagrożeń. Powstały np. nieznane wcześniej w systemach radiokomunikacji komórkowej problemy bezpieczeństwa danych, przesyłanych przez aplikacje. Z tego też powodu stało się konieczne zdefiniowanie ogólnego schematu zabezpieczeń, który uwzględniałby rozwiązanie wszystkich znanych problemów. W odpowiedzi na to nakreślona została trójpoziomowa architektura bezpieczeństwa, a zabezpieczenia w niej zdefiniowane podzielone zostały na cztery podstawowe grupy funkcyjne. Dla każdej z nich określono odpowiednie atrybuty bezpieczeństwa, które to określają ich charakter. Na rys. 4 przedstawione zostały następujące grupy zabezpieczeń: I - zabezpieczenia dostępu do sieci; II - zabezpieczenia domeny sieci; III - zabezpieczenia domeny użytkownika; IV- zabezpieczenia domeny aplikacji. Grupa zabezpieczeń dostępu do sieci jest zbiorem mechanizmów, których celem jest zrealizowanie bezpiecznego dostępu autoryzowanego użytkownika do usług systemu 3G oraz szczególna ochrona danych, przesyłanych przez łącza radiowe. W ich skład wchodzą rozwiązania znane już z systemów komórkowych 2G takie jak: wykorzystanie numerów tymczasowych do identyfikacji użytkownika, autoryzację stacji ruchomych, szyfrowanie danych w łączu radiowym i odpytywanie terminali, jak również nieznane do tej pory rozwiązania, takie jak: autoryzacja sieci czy integralność danych. Grupa ta zapewniać ma przede wszystkim poufność tożsamości, jak i lokalizacji użytkownika, możliwość obustronnej autoryzacji użytkownika i sieci oraz poufność i integralność przesyłanych danych. Zabezpieczenia domeny sieci są natomiast zespołem rozwiązań skupiających się przede wszystkim na ochronie danych przesyłanych lub przechowywanych w sieci szkieletowej. Domena użytkownika z kolei obejmuje szeroko rozumiane zabezpieczenia stacji ruchomej, czyli bezpieczny dostęp abonenta do karty USIM oraz właściwe przypisanie karty USIM do konkretnego terminala. Gdańsk 2004 6 Zabezpieczenia domeny aplikacji odpowiadają natomiast za właściwą ochronę danych przesyłanych między aplikacjami w USIM i w sieci. W systemie UMTS przewidziane jest również informowanie użytkownika o poziomie bezpieczeństwa usług, z jakich aktualnie korzysta, np. do terminala przesyłane są informacje dotyczące algorytmu szyfrowania danych lub poziomu bezpieczeństwa. Ponadto istnieją możliwości konfiguracji zabezpieczeń, np. użytkownik może zadecydować, czy zezwala na niechronione połączenie przychodzące lub wychodzące, czy też wybrać algorytm do szyfrowania danych. 4. M ECHANIZMY OCHRONY DOSTĘPU DO SIECI Ochrona dostępu do sieci zrealizowana jest przy wykorzystaniu podstawowych modułów architektury. Po stronie abonenta jest to stacja ruchoma, w skład której wchodzi terminal oraz moduł USIM, po stronie sieci: centrum identyfikacji (AuC), rejestr (HLR), centrala sieciowa (SGSN), centrala sieciowa (MSC) wraz z rejestrem stacji wizytowych (VLR), sterownik sieciowy (RNC) oraz stacja bazowa(BS). Rys. 5 Rozmieszczenie mechanizmów ochrony informacji w sieci UMTS. Na Rys.5 można zobaczyć zakresy działania poszczególnych mechanizmów ochrony. Uwierzytelnienie i proces ustanowienia klucza sesyjnego realizowany jest pomiędzy kartą USIM oraz centralą sieci odpowiednio z komutacją łączy (MSC/VLR) i z komutacją pakietów (3G-SGSN). Do sprawdzenia tożsamości użytkownika wymagane są dane uwierzytelniające wytworzone w Centrum Uwierzytelniającym (AuC), a następnie przesłane do rejestru HLR. Skąd też są pobierane przez centralę najbliższą aktualnej pozycji abonenta i zapisane w rejestrze abonentów odwiedzających (VLR). W wyjątkowej sytuacji, kiedy bieżąca centrala obejmuje rejestr domowy abonenta (HLR), czyli w taki w którym się zarejestrował, dane te nie muszą być przesyłane. Mechanizmy szyfrowania i kontroli integralności realizowane są pomiędzy terminalem, a sterownikiem (RNC), pod który „podlega” najbliższa abonentowi stacja bazowa (BS). Tymczasowe identyfikatory użytkowników, stanowiące lokalne odpowiedniki niepowtarzalnych numerów abonentów na całym świecie, wykorzystywane są we wszystkich procedurach działających pomiędzy stacją ruchomą a centralą sieciową. Gdańsk 2004 7 4.1 UWIERZYTELNIENIE I USTANOWIENIE KLUCZY Mechanizm wzajemnego uwierzytelniania wykorzystuje wiedzę o tajnym kluczu K, który jest przechowywany tylko w Centrum Uwierzytelniającym (AuC) w sieci macierzystej danego abonenta oraz w jego karcie USIM umiejscowionej w stacji ruchomej (MS). W procesie autentykacji wykorzystywane są także numery sekwencyjne odpowiednio dla sieci macierzystej SQNHE i dla stacji ruchomej SQNMS. Po realizacji procesu uwierzytelnienia rozpoczyna się mechanizm ustanawiania kluczy CK i IK, umożliwiających odpowiednio szyfrowanie i kontrolę integralności danych. Rys. 6 Dystrybucja wektorów uwierzytelniających Zanim rozpocznie się proces uwierzytelniania wymagana jest dystrybucja wektorów uwierzytelniających, chyba że takowe zostały pobrane wcześniej i ich ilość umożliwia realizacje kolejnych procedur uwierzytelniających. Zarówno ilość generowanych wektorów w sieci macierzystej (w GSM ok. 5) jak i minimalna ilość nie wymuszająca jeszcze generacji nowych wektorów (w GSM ok. 2) są zależne od operatora. Proces obejmujący dystrybucje wektorów uwierzytelniających rozpoczyna się w centrali radiokomunikacyjnej (MSC/VLR;SGSN). Generowane jest wówczas żądanie danych uwierzytelniających skierowane do środowiska macierzystego danej stacji ruchomej. W odpowiedzi na to środowisko macierzyste wysyła dostępne zestawy danych (wektory AV (1..n)) oraz żąda od centrum AuC generacji nowych wektorów. Gdańsk 2004 8 Rys. 7 Proces generacji wektora autoryzacji w AuC W procesie generacji jednego wektora wykorzystywane są funkcje f1..f5. Funkcje f3,f4,f5 służą do generacji kolejno: klucza utajniającego wartość licznika SQN (AKAnonymity Key), klucza przeznaczonego do utajniania (CK – Cipher Key) oraz klucza wykorzystywanego do kontroli integralności danych (IK – Integrity Key). Funkcja f2 służy do generacji liczby XRES, za pomocą której stacja ruchoma może się uwierzytelnić. Każda z ww. funkcji do generacji odpowiedniego klucza używa pseudolosowej liczby RAND oraz tajnego klucza K współdzielonego z kartą USIM. Funkcja f1 służy zaś do generacji kodu MAC (Message Authentication Code), który następnie wykorzystywany jest do autentykacji sieci. Oprócz wymienionych powyżej parametrów funkcja f1 wykorzystuje dwa dodatkowe tj. AMF (Authentication Management Field) oraz SQN (Sequence Number). Pole AMF zwiększa elastyczność zabezpieczeń. Przykładowo wartość ta mogłoby określać limit „czasu życia” kluczy z danego wektora. Liczba SQN jest generowana dla każdego wektora oddzielnie i zabezpiecza przed jego ponownym użyciem. W pracy systemu można wyróżnić dwie takie liczby: generowana na użytek stacji ruchomej SQNUE oraz generowana w Centrum Uwierzytelniania SQNHE. Licznik SQNHE jest przechowywany oddzielnie dla każdego użytkownika. W kolejnym kroku sieć macierzysta tak wygenerowane wektory odsyła do centrali radiokomunikacyjnej, gdzie zostają zachowane do chwili gdy jeden z nich będzie potrzebny do procesu uwierzytelnienia. W tym miejscu zostaje zakończona dystrybucja wektorów AV (1..n) z sieci macierzystej do sieci usługowej. Jedynie wartości kluczy K i AK nie są transmitowane do centrali radiokomunikacyjnej. Gdańsk 2004 9 Rys.8 Uwierzytelnianie i ustanawianie kluczy Proces uwierzytelnienia rozpoczyna się od wybrania jednego z wcześniej otrzymanych wektorów uwierzytelniających w centrum radiokomunikacyjnym. Następnie do odpowiedniej stacji ruchomej wysłane zostają losowa liczba RAND oraz wartość AUTN powstałą z operacji konkatenacji trzech innych wartości. Po odebraniu żądania uwierzytelnienia użytkownika stacja ruchoma za pomocą klucza K oraz zdefiniowanych algorytmów w karcie USIM rozpoczyna proces uwierzytelniania. Proces ten polega na weryfikowaniu poprawności otrzymanych danych. W pierwszym kroku zostaje odszyfrowana wartość SQN za pomocą funkcji f5 przy użyciu tajnego klucza K oraz wartości losowej RAND pochodzącej z przysłanych danych. Następnie za pomocą funkcji f1 przy wykorzystaniu wartości licznika SQN, pola AMF, klucza K oraz wartości losowej RAND zostaje wygenerowany kod skróty w celu uwierzytelnienia sieci. Jeżeli wartości MAC pochodząca z danych otrzymanych i wartość XMAC wyliczona w module USIM są równe to uwierzytelnianie jest kontynuowane. W kroku następnym weryfikowana jest otrzymana wartość licznika SQN z tym przechowywanym w stacji ruchomej. Wynik pozytywny pozwala na dokończenie procesu uwierzytelniania. Zostaje więc wyliczona wartość RES, która następnie jest odesłana do bieżącej centrali radiokomunikacyjnej w celu identyfikacji użytkownika w sieci. Zaraz po tym wygenerowane zostają klucze CK i IK po stronie stacji ruchomej. Gdańsk 2004 10 Rys. 9 Uwierzytelnianie sieci i obliczanie kluczy w karcie USIM Jak widać na rys. 8 proces uwierzytelniania kończy się po stronie sieci przez porównanie wartości RES otrzymanej ze stacji ruchomej i pochodzącej z wektora uwierzytelniania oraz po wybraniu odpowiednich kluczy CK i IK. W przypadku gdy wynik weryfikacji kodów MAC widoczny na rys. 9 będzie negatywny sieć nie zostanie uwierzytelniona. Wynik porównania liczników SEQ natomiast nie jest aż tak rygorystyczny, polega bowiem na określeniu różnicy licznika umieszczonego w stacji ruchomej z tym otrzymanym z sieci. Dopuszczalną różnice określa operator. Jeżeli zostanie ona przekroczona to można przewidywać próbę ataku z wykorzystaniem „starych” zestawów wektorów. Mimo to zbyt duża różnica pomiędzy SQN otrzymanym a SQNUE nie decyduje o niepowodzeniu uwierzytelnienia. Twórcy systemu UMTS przewidzieli w takich przypadkach możliwość ponownej synchronizacji klucza. Po wykryciu takiego błędu tworzony jest token AUTS, zawierający wartość SQNUE zaszyfrowany kluczem AK. Kod MAC-S służy tutaj do sprawdzenia wiarygodności nadawcy. Gdańsk 2004 11 Rys. 10 Tworzenie tokena AUTS Po stworzeniu tokena AUTS jest on przesyłany do VLR;SGSN. Następnie odebrany token i liczba losowa z danego wektora RAND zostają wysłane do sieci macierzystej. W module HLR jeszcze raz sprawdzana jest zgodność numerów SQN. Rys. 11 Procedura resynchronizacji klucza. Po otrzymaniu tokena AUTS i losowej liczby RAND wyliczona zostaje funkcja f5*, która to generuje wartość klucza AK. Następnie odszyfrowana zostaje przesłana wartość licznika SQNUE oraz zweryfikowana jej różnica wartości z licznikiem umieszczonym po stronie sieci SQNHE. Jeżeli potwierdzona zostanie zbyt duża jej wartość to po sprawdzeniu autentyczności przesyłki za pomocą kodu MAC-S, wygenerowany zostaje co najmniej jeden wektor AV po czym zostaje on odesłany do VLR; SGSN. Gdańsk 2004 12 Rys. 12 Procedura weryfikacji tokena AUTS W systemie komórkowym UMTS przewidziano również użycie procedur szyfrowania i kontroli integralności bez konieczności uwierzytelniania. W takim przypadku do tych procedur wykorzystywane są poprzednie wartości kluczy. Możliwość ta powoduje jednak konieczność synchronizacji kluczy. Rozwiązaniem tego problemu jest dodatkowa zmienna KSI (Key Set Identifier), która odpowiada dokładnie jednej parze kluczy. Identyfikator taki przesyłany jest w czasie uwierzytelniania wraz z wartością RAND i AUTN. Inicjacja połączenia rozpoczyna się wówczas od przesłania identyfikatora KSI do VLR, gdzie jest porównywany. Jeżeli jest różny od umieszczonego w centrum radiokomunikacji to znaczy, że klucze są różne i konieczna jest autoryzacja. Gdańsk 2004 13 4.2 NEGOCJACJE ALGORYTMÓW SZYFROWANIA I KONTROLI INTEGRALNOŚCI. Sprawne działanie ochrony danych w systemie UMTS oprócz bezpiecznej dystrybucji kluczy zapewnia również uzgodnienie algorytmów, wykorzystywanych między dwiema stronami komunikującymi się. Proces taki polega na przekazaniu listy wspieranych algorytmów UIA (do kontroli integralności) UEA (do szyfrowania) przez stacje ruchomą oraz przez sieć do sterownika sieci. Tam też na podstawie tych list podejmowane są decyzje. Procedura ta jest pokazana na rys. 13. Rozpoczyna się ona zestawieniem połączenia w warstwie protokołu RRC, a kolejne kroki przedstawione są poniżej. 1. Stacja ruchoma przesyła do sterownika dane o algorytmach jakie wspiera. Przesyłany jest również pewien numer służący do generacji liczników COUNT-C, COUNT-I. 2. Sterownik odbiera dane od stacji ruchomej i zapisuje je. 3. Stacja ruchoma przesyła do centrali radiokomunikacyjnej własny numer identyfikacyjny TMUI, numer identyfikacyjny kluczy KSI oraz komunikat o chęci zestawienia połączenia. Po tym zdarzeniu centrala radiokomunikacyjna decyduje czy konieczne jest przeprowadzenie procesu uwierzytelnienia. Jeżeli nie to na podstawie KSI zostają wybrane odpowiednie klucze IK, CK. 4. Realizowany jest proces uwierzytelniania i ustanawiania klucza. 5. Centrala radiokomunikacyjna określa listę wspieranych algorytmów do szyfrowania (UEA) oraz do kontroli integralności (UIA). 6. Centrala radiokomunikacyjna przesyła dane o algorytmach wraz z kluczami od sterownika RNC. 7. Sterownik porównuje listy od stacji ruchomej oraz od centrali radiokomunikacyjnej dotyczące wspieranych algorytmów. Na ich podstawie wybiera stosowne algorytmy i generuje liczbę pseudolosową FRESH. Na koniec inicjuje mechanizm kontroli integralności w łączu do użytkownika. 8. Sterownik wysyła do stacji ruchomej wykazy algorytmów oraz liczbę FRESH. 9. Stacja ruchoma weryfikuje listę i inicjuje integralność. 10. Stacja ruchoma potwierdza wybór algorytmów 11. Sterownik weryfikuje dane odebrane od stacji ruchomej. 12. Sterownik przesyła informacje o wybranych algorytmach do centrali radiokomunikacyjnej. Po wysłaniu ostatniej informacji zarówno sterownik jak i stacja ruchoma mogą już komunikować się w sposób zapewniający poufność i integralność danych. Rys. 13 Uzgadnianie algorytmów Gdańsk 2004 14 4.3 PROCES KONTROLI INTEGRALNOŚCI Kontrola integralności oparta jest o kod MAC (Message Authentication Code) wygenerowany za pomocą algorytmu f9 bazującego na szyfrze blokowym KASUMI w trybie pracy CBC-MAC. Na podstawie przesyłanych danych (MESSAGE) oraz określonych parametrów tworzony jest kod o znanej długości (32 bity), który następnie dołączany jest do wiadomości i przesyłany do odbiorcy w celu weryfikacji treści i autora informacji. Rys. 14 Schemat realizacji kontroli integralności Wykorzystywane zmienne: FRESH (32 bity) – generowana w trakcie negocjacji algorytmów; COUNT-I (32 bity) – zależna jest od czasu, umożliwia zmienną generację kluczy; DIRECTION (1 bit)– wskazuje kierunek przepływu informacji; MESSAGE – strumień bitów wejściowych o możliwej długości 1-5114 bitów; IK (128 bitów) – klucz używany przy kontroli integralności; MAC-I (32 bity) – skrót wiadomości, służący do kontroli integralności; KM (128 bitów) – stała zmieniająca wartość klucza IK; A, B (64 bity) – rejestry do przechowywania danych; PSn (64 bity)– n-ty blok danych wejściowych Rys. 15 Schemat wyprowadzenia kodu MAC Gdańsk 2004 15 Inicjalizacja: Działanie algorytmu f9 rozpoczyna się od wyzerowania dwóch wewnętrznych rejestrów: A (przechowującego wynik powiązania 64-bitowych bloków wejściowych z 64-bitowym blokiem szyfrogramu obliczonym na poprzednim bloku wejściowym), B (przechowującego wynik operacji KASUMI(A) na bloku A). (A=0,B=0). Następnie zmienna modyfikująca klucz ustawiona jest na wartość KM=0xAA...A. Na koniec inicjalizacji przeprowadzana jest operacja konkatenacji zmiennych COUNT, FRESH, MESSAGE i DIRECTION i zapis ich jako jeden blok danych. Do tak wytworzonego bloku bitów dodaje się na koniec pojedynczy bit “1” oraz następujący po nim ciągu bitów “0”. Ciąg ten ma za zadanie uzupełnić blok otrzymanych w taki sposób danych do wielokrotności liczby 64. Blok wejściowy do algorytmu przyjmuje wówczas następującą postać: S = COUNT[0]...COUNT[31] FRESH[0].. ...FRESH[31] MESSAGE[0]...MESSAGE[LENGTH-1] DIRECTION[0] 1 00....0 Obliczenia: Obliczenia kodu MAC rozpoczynają się od podziału poprzednio stworzonego bloku na podbloki o rozmiarze 64-bitów, tak że PS = PS0 || PS1 || PS2 || …. || PSBLOCKS-1. Każdy z tak utworzonych podbloków zostaje zsumowany operacją XOR z zawartością rejestru A, a następnie zostaje poddany operacji KASUMI z wykorzystaniem klucza IK (1). Wynik tej operacji jest następnie zsumowany modulo 2 z zawartością rejestru B (2) i zapisany do tego samego rejestru (B). A = KASUMI[ A PSn ]IK, B = B A. (1) (2) Takie operacje wiązania bloków szyfrogramu z blokami wejściowymi trwają aż zakodowania wszystkich podbloków PSn. Po wykonaniu powyższych operacji na każdym z podbloków wynik jest zapisany do rejestru B, który następnie jest przekształcany za pomocą operacji KASUMI przy użyciu zmodyfikowanego klucza IK (3). B = KASUMI[ B ]IK KM (3) Na koniec 32-bitowy kod MAC-I tworzony jest z 64 bitów wyjściowych przez odcięcie mniej znaczącej części (bity B[32]…B[63] są odrzucane) (4). MAC-I = lefthalf[ B ] (4) 0 i 31 MAC-I[i] = B[i]. Tak wytworzony kod MAC-I może już być wykorzystany do kontroli integralności przesyłanych danych. Gdańsk 2004 16 4.4 PROCES SZYFROWANIA Proces szyfrowania realizowany jest pomiędzy sterownikiem RNC oraz stacją ruchomą MS. Zarówno nadawca jak i odbiorca generują sekwencje szyfrujące, które następnie wykorzystywane są do szyfrowania danych za pomocą operacji XOR realizowanej bit po bicie. Rys. 16 Schemat realizacji szyfrowania LENGTH – zmienna umożliwiająca dopasowanie długości klucza do przetworzonego ciągu bitów. DIRECTION – zmienna wskazująca kierunek przepływu informacji. BEARER – zmienna określająca kanał transmisyjny. COUNT-C – zmienna zależna od czasu, umożliwiająca zmienną generację kluczy KM (128 bitów) – stała zmieniająca wartość klucza CK; A, B (64 bity) – rejestry do przechowywania danych; KSBi (64-bity) – i-ty blok strumienia wytworzony przez generator; KS (64-bity) – strumień szyfrujący. długości Rys. 17 Schemat wyprowadzenia bitów strumienia szyfrującego. Gdańsk 2004 17 Inicjalizacja: Działanie algorytmu f8 rozpoczyna się od ustawienia 64-bitowego rejestru A na wartość COUNT || BEARER || DIRECTION || 0…0. A = COUNT[0]…COUNT[31] BEARER[0]…BEARER[4] DIRECTION[0] 0…0 Następnie ustawiany jest modyfikator klucza KM na wartość 0x5..55, zerowany jest licznik bloku BLKCNT oraz bloki KSB, służące do przechowywania 64-bitowego strumienia wyjściowego równoważnego ze strumieniem szyfrującym. Na koniec inicjacji wykonywana jest operacja KASUMI na rejestrze A, przy użyciu zmodyfikowanego klucza CK (5). A = KASUMI[ A ]CK KM (5) Generacja strumienia szyfrującego: Generacja strumienia szyfrującego rozpoczyna się od określenia ilości 64-bitowych bloków danych do zaszyfrowania i zapisania tej wielkości w zmiennej BLOCKS (6). BLOCKS =sufit(LENGTH/64) (6) W drugim etapie generacji strumienia szyfrującego wyliczamy wszystkie bloki KSB. W celu wyliczenia bieżącego bloku KSB wykorzystujemy operacje KASUMI na bloku 64-bitowym uzyskanym przez operację XOR na rejestrze A, liczniku BLKCNT oraz poprzednim bloku KSB (7). KSBn = KASUMI[ A BLKCNT KSBn-1]CK (7) gdzie BLKCNT = n-1 Równolegle z wyliczaniem bloków KSB przeprowadzane jest rzutowanie otrzymanych bitów na bity strumienia szyfrującego KS. Dla każdego n-bloku, gdzie n = 1 do BLOCKS oraz dla każdego całkowitego i gdzie 0 i 63 możemy określić strumień wyjściowy służący do szyfrowania według poniższego wzoru (8): KS[((n-1)*64)+i] = KSBn[i] (8) Szyfrowanie/Deszyfrowanie W celu szyfrowania i deszyfrowania wykonujemy operacje XOR na wejściowych danych (IBS) i wygenerowanego strumienia (KS) w następujący sposób: dla każdego i, że 0 i LENGTH-1 określamy operacje (9): OBS[i] = IBS[i] KS[i] (9) Gdzie OBS[i] stanowi i-ty bit zaszyfrowanego strumienia danych. Gdańsk 2004 18 4.5 SZYFR KASUMI/MISTY1 MISTY1 jest 64-bitowym blokowym szyfrem stworzonym przez Mitsuru Matsuri w 1996 roku. Wariantem tego szyfru jest szyfr KASUMI, który został zaadoptowany w 1999 na potrzeby systemu ochrony informacji w projekcie 3GPP (Third Generation Partnership Project). MISTY1 i KASUMI operują na 64-bitowych blokach danych przy wykorzystaniu 128-bitowgo tajnego klucza. Oba szyfry mają prostą rekursywną strukturę. Górny poziom składa się z 8-rundowej struktury Feistela, zbudowanej na 32-bitowych nieliniowych funkcjach FO. Funkcja FO jest 3-rundową strukturą Feistela zbudowaną na 16-bitowych nieliniowych funkcjach FI. Funkcja FI składa się z 3 (dla MISTY1) lub 4 (dla KASUMI) prostych rund wykorzystujących dwa rodzaje S-boksów: 7x7 lub 9x9 bitów zwanych odpowiednio S7 i S9. (skrzynki S7 i S8 różnią się dla obu szyfrów). Klucz mieszany jest z danymi na różnych etapach w szyfrze, zarówno w funkcji FO jak i funkcji FI. Dodatkowym elementem szyfrów jest funkcja FL, która jest zależną od klucza liniową transformacją. Funkcja FL dla każdego z tych szyfrów ma inne znaczenie. W szyfrze MISTY1 warstwa FL oddziela każde 2 rundy szyfru, w szyfrze KASUMI warstwa FL jest wstawiana dla każdej rundy z osobna przed i po funkcji FO. MISTY1 jest dobrze poznanym szyfrem, w którym nie wykryto poważnych problemów. Obecnie najlepszym atakiem na zredukowany wariant szyfru MISTY1 jest 5-rundowy atak sumacyjny. Atak ten wymaga 235 wybranych tekstów jawnych i złożoności czasowej 248. Najlepszy atak na szyfr KASUMI, który złamał 6-rundową wersje tego szyfru był atak przy użyciu różniczek niemożliwych. Rys. 18 Szyfr KASUMI Gdańsk 2004 19 BIBLIOGRAFIA [1] J. Kołakowski, J. Cichocki UMST Systemy telefonii komórkowej trzeciej generacji [2] 3GPP TS 33.102 3G Security; Security Architecture; v6.0.0 (2003-09) [3] 3GPP TS 33.102 3G Security; Integration guidelines v4.2.0 (2001-09) [4] 3GPP TS 35.201: 3G Security; Specification of the 3GPP Confidentiality and Integrity Algorithms; Document 1: f8 and f9 Specification; v5.0.0 (2002-06). [5] 3GPP TS 35.202: 3G Security; Specification of the 3GPP Confidentiality and Integrity Algorithms; Document 2: KASUMI Specification; v5.0.0 (2002-06). [6] 3GPP TS 35.203: 3G Security; Specification of the 3GPP Confidentiality and Integrity Algorithms; Document 3: Implementors’ Test Data; v5.0.0 (2002-06). [7] 3GPP TS 35.204: 3G Security; Specification of the 3GPP Confidentiality and Integrity Algorithms; Document 4: Design Conformance Test Data; v5.0.0 (200206). [8] 3GPP TS 35.909: 3G Security; Report on the Design and Evaluation of the MILENAGE Algorithm Set; Deliverable 5: An Example Algorithm for the 3GPP Authentication and Key Generation Functions v4.0.1 (2001-06) [9] RFC 2994 - A Description of the MISTY1 Encryption Algorithm [10] Strony organizacji IETF (Internet Engineering Task Force) http://www.ietf.org/ Gdańsk 2004 20