SIM - odkrywamy tajemnice
- NetWorld,
- 02.10.2007, godz. 12:21
Autoryzacja w sieci 3G
W sieci 3G autoryzacja jest znacznie bardziej rozbudowana. Najważniejszymi i najbardziej istotnymi zmianami w porównaniu do sieci 2G to wprowadzenie autoryzacji dwustronnej (Mutual authentication), integralności danych sygnalizacyjnych (UIA - UMTS Integrity Algorithm), zapewnienie poufności danych (UEA - UMTS Encryption Algorithm). Z tego względu autoryzacja opiera się o tzw. piątki (kwintety) autoryzacyjne (autoryzacja 2G - triplety).
Skróty użyte na rysunku:
K - klucz (128 bitów)
IMSI/TMSI - International Mobile Subscriber Identity/Temporary Mobile Subscriber Identity
f1...f5 - funkcje algorytmu Millenage - szerzej w dalszej części
CK - Ciphering Key - klucz używany do szyfracji przez UAE
IK - Integrity Key - klucz używany do zapewnienia integralności danych, uzywany przez UIA
Przebieg autoryzacji jest następujący:
Jak już wcześniej wspomnieliśmy, zaraz po włączeniu telefonu przesyłane jest IMSI do sieci. Po otrzymaniu IMSI, HLR/AuC sprawdza czy znajduje się ono w jego bazie. Po znalezieniu IMSI następuje generacja kwintetów autoryzacyjnych. Ze względu na ograniczenie sygnalizacji pomiędzy VLR a HLR/AuC, HLR generuje kilka kwintetów, dla kilku różnych liczb losowych RAND. Generuje tzw. wektor kwintetów (zawierający np. 5 kwintetów). Wektor ten następnie wysyłany jest do VLR.
Kolejnym krokiem jest wysłanie liczby losowej RAND oraz specjalnego tokenu autoryzacyjnego AUTN (Authentication TokeN) do karty USIM. Liczba losowa oraz token autoryzacyjny należą do pierwszego z wektorów autoryzacyjncyh. Jak widać na rysunku 7 AUTN jest złożeniem kliku parametrów. Numer sekwencyjny wiadomości - SQN (SeQuence Number) jest poddany operacji XOR z parametrem AK, a pozostałe parametry są niejako doklejone.
AUTN = (SQN + AK)||AMF||MAC-A
przy czym
MAC-A = f1 (K, RAND, SQN, AMF)
gdzie:
AK - to Anonimity Key, może być użyty do ukrycia wartości numeru sekwencyjnego
AMF - Authentication Management Field, zgodnie z normą 33.105 rozdział 5.1.7.4 używanie tego pola nie jest zestandaryzowane. AMF jest dwubajtową wartością, która może być użyta w różny sposób:
- Do wyliczenia AUTN
- Za pomocą tego pola można sprowokować błąd synchronizacji (numeracji SQN) - tylko w przypadku algorytmu testowego
- Może być użyta w celu zasygnalizowania jaki algorytm bądź klucz ma być użyty
MAC-A - używany w celu uwierzytelnienia sieci w karcie (autoryzacja dwustronna), wyliczany jest przy pomocy funkcji f1 z parametrów: K, RAND, SQN, AMF