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

Podobne dokumenty