ISIM (ang.IP Multimedia Services Identity Module) – aplikacja działająca na karcie chipowej UICC (ang. Universal Integrated Circuit Card) używanej w telefonach komórkowych trzeciej generacji (3G). ISIM zawiera parametry pozwalające na identyfikację i uwierzytelnienie użytkownika w systemie IMS.
Struktura plików
Nadrzędnym katalogiem aplikacji ISIM jest ADF ISIM (ang. Application Dedicated File), który zawiera informacje związane z usługami i siecią. ADF zawiera w sobie pliki podstawowe EF (ang. Elementary Files), które można podzielić na obowiązkowe i opcjonalne – rozmiar opcjonalnych plików powinien wynosić 0. Wszystkie zaimplementowane pliki podstawowe, których rozmiar jest większy niż zero, powinny zawierać w sobie wszystkie obowiązkowe dane. Opcjonalne dane mogą być w postaci ‘FF’ lub, jeśli położone są na końcu pliku, mogą nie istnieć.
EFKEYS – plik zawiera klucz szyfrujący (ang.Ciphering Key) CK, klucz integralności danych IK (ang. Integrity Key), a także KSI (ang. Key Set Identifier):
Bajty
Opis
Długość
1
Key set identifier (KSI)
1 bajt
2…17
Ciphering key (CK)
16 bajtów
18…33
Integrity key (IK)
16 bajtów
Bity b4 do b8 KSI są zerami.
EFIMPI – plik zawiera prywatny identyfikator użytkownika (IMPI, ang. IP Multimedia Private Identity), który jest używany tylko w celu uwierzytelniania.
EFDOMAIN – plik zawiera nazwę domeny wskazująca macierzystą sieć abonenta.
EFIMPU – każdy abonent IMS posiada chociaż jeden publiczny identyfikator użytkownika IMPU. W odróżnieniu od IMPI publiczny identyfikator jest znany abonentowi.
EFAD (ang.Administrative Data) – zawiera informacje dotyczące trybu pracy. Dostępne są tryby:
„normalny” – (używany przez abonentów w pracy w systemie IMS),
„zatwierdzający” – (pozwalający na użycie terminala podczas standardowych procedur zatwierdzających),
„producenta” – (pozwalający wytwórcy terminala na wykorzystanie specjalnych funkcji np. do przeprowadzania testów w fazie produkcji).
Bajty
Opis
Długość
1
tryby pracy UE
1 bajt
2…3
dodatkowe informacje
2 bajty
4…3 + X
RFU
X bajtów
Bajt 1 – tryby pracy może przyjmować wartości:
0x00 – tryb normalny (wykorzystywany przez abonentów)
0x80 – typ zatwierdzający
0x01 – tryb normalny + funkcje specjalne
0x81 – tryb zatwierdzający + funkcje specjalne
0x02 – tryb podtrzymania (off-line)
Jeśli bit b1 = 1 to oznacza, że tryb „funkcje specjalne” jest włączony.
Bajt 2 – dodatkowe informacje.
Bajt 3:
b1 = 0: OFM jest dezaktywowane na tym terminalu.
b1 = 1: OFM jest aktywne na tym terminalu.
Bit OFM jest używany do kontroli wskaźnika szyfrującego (ang. Ciphering Indicator). Pozostałe bity trzeciego bajta są zarezerwowane do wykorzystania w przyszłości.
Bajt 4 – RFU (ang.Reserved for Future Use) – zarezerwowany do wykorzystania w przyszłości.
EFARR – definiuje prawa dostępu do plików znajdujących się w ADF ISIM.
EFIST – opcjonalny plik wskazujący, które dodatkowe usługi są dostępne.
EFP-CSCF (ang.Proxy Call Session Control Function) – opcjonalny plik zawiera jeden (lub więcej) adresów funkcji Proxy CALL Session Control. Nie jest on używany w terminalach korzystających z sieci dostępowej 3G. Plik ten powinien być obecny kiedy usługa P-CSCF (usługa nr 1) jest dostępna w tablicy usług ISIM.
EFGBA BP (ang.Generic Bootstrapping Architecture Bootstrapping Parameters) – plik ten jest używany tylko, gdy usługa GBA (usługa nr 2) jest dostępna w tablicy usług ISIM. Zawiera losowe wyzwanie (RAND) i B-TID (ang. Bootstrapping Identifier) skojarzony z procedurą GBA.
EFGBA NL (ang.GBA Network Application Function list) – ten plik powinien istnieć jeśli usługa nr 2 jest dostępna w tablicy usług ISIM. Zawiera listę NAF_ID i B-TID skojarzonych z procedura GBA NAF.
Mechanizm uwierzytelniania
Klucze i funkcje uwierzytelniające w systemie IMS są dzielone pomiędzy kartę chipową od strony użytkownika i HSS (ang. Subscriber Server) od strony sieci. Identyfikator używany do uwierzytelniania abonenta w IMS to IMPI (ang. Private Identity). Schemat uwierzytelniania w IMS bazuje na mechanizmie obustronnego uwierzytelniania w sieciach UMTS nazywanym UTMS AKA (ang. Authentication and Key Agreement).
UMTS AKA
UMTS AKA jest protokołem typu challenge-response. Wyzwanie (ang.Challenge) pochodzi od Centrum Uwierzytelnienia (ang. Authentication Center) AuC z sieci macierzystej abonenta. Kwintet (ang. Quintet) zostaje wysłany z AuC do sieci oferującej usługę (VLR\SGSN) i zawiera:
losową liczbę (RAND),
oczekiwaną odpowiedź (XRES),
klucz szyfrujący CK (ang. Ciphering key),
klucz integralności danych IK (ang. Integrity key),
żeton (token) uwierzytelnienia AUTN (ang. Authentication token) wyznaczany w następujący sposób:
który zawiera:
kod uwierzytelniający wiadomości (MAC),
AMF,
klucz uwierzytelniający AK (ang. Authentication key),
numer sekwencji (SQN).
Sieć oferująca daną usługę przesyła RAND I AUTN do UE (ang. User Equipment), który po ich otrzymaniu generuje IK, CK, XMAC i RES oraz wydobywa MAC i SQN z otrzymanego AUTN. UE porównuje wygenerowany przez siebie XMAC z otrzymanym. Jeśli są zgodne i SQN mieści się w określonym zakresie, to UE uwierzytelnia sieć. Wtedy sieć oferująca usługę otrzymuje odpowiedź RES (ang. Response) od UE i porównuje ją z XRES. Jeśli są zgodne UE zostaje uwierzytelniony.
Celem tej procedury jest obopólne uwierzytelnienie użytkownika i sieci oferującej usługę oraz ustanowienie nowej pary kluczy: CK i IK pomiędzy siecią a aplikacją ISIM. CK jest używany w szyfrowaniu głosu, IK zabezpiecza integralność danych wiadomości sygnalizacyjnych SIP (ang. Session Initiation Protocol).
IMS AKA
Ten sam algorytm został wykorzystany w IMS, gdzie jest nazywany IMS AKA. Parametry zabezpieczeń (np. klucze) generowane przez IMS AKA są transportowane za pomocą SIP. Chociaż metody obliczania parametrów przez UMTS AKA i IMS AKA są identyczne, parametry te są transportowane w nieco inny sposób. W UMTS AKA odpowiedź UE (czyli RES) jest wysyłana pojedynczo, podczas gdy IMS RES jest wysyłana w połączeniu z innymi parametrami, tak aby wytworzyć uwierzytelniającą odpowiedź, która jest wysyłana do sieci. Aby zabezpieczyć przesyłanie wiadomości sygnalizacyjnych (SIP) pomiędzy UE i P-CSCF (ang. Proxy Call Session Control Function) wszystkie wiadomości SIP chronione są na poziome IP przez IPsec ESP. Terminale IMS używają IK do ochrony integralności wiadomości SIP przesyłanych pomiędzy UE i P-CSCF. Również CK może być opcjonalnie użyty do kodowania wiadomości SIP.
Podsumowanie
Odpowiedni poziom zabezpieczenia dostępu do IMS zapewniają znajdujące się na ISIM następujące dane i funkcje ochronne:
prywatny identyfikator użytkownika IMPI (ang. IM Private Identity),
przynajmniej jeden publiczny identyfikator użytkownika IMPU (ang. IM Public Identity),
nazwa domeny sieci macierzystej,
baza dla numeru sekwencji SQN,
klucz uwierzytelniający AK (ang. Authentication key).
Protokół uwierzytelniający AKA zawsze działa niezależnie między IMS i siecią 3G, zatem, nie istnieje niebezpieczeństwo, że złamanie zabezpieczeń i uzyskanie kluczy IK/CK w jednej domenie będzie prowadziło do powstania słabych punktów w innych domenach.
Współdzielenie funkcji i danych.
Jako odrębna aplikacja ISIM może współdzielić dane i funkcje zabezpieczające z aplikacjami USIM na karcie chipowej.
Możliwe jest współdzielenie:
brak współdzielenia (ISIM i USIM mają swoje własne funkcje zabezpieczające i dane),
tylko mechanizmu sprawdzania SQN (ang. Sequence Number),
tylko algorytmu,
tylko algorytmu i mechanizmu sprawdzania SQN,
klucza uwierzytelniającego AK, funkcji uwierzytelniających i mechanizmu sprawdzania SQN.