Algorytm COMP128
COMP128 to algorytm stosowany w kartach SIM, który łączy funkcje uwierzytelniania (A3) oraz generowania klucza sesyjnego (A8) w jednym kroku. Umożliwia on autoryzację użytkownika w sieci GSM oraz szyfrowanie danych za pomocą klucza sesyjnego Kc, co sprawia, że jest bardziej efektywny niż jego poprzednicy, które miały dwa osobne wyjścia.
Scenariusz uwierzytelniania
Proces uwierzytelniania z użyciem COMP128 przebiega następująco:
- Użytkownik wysyła numer IMSI do sieci.
- Sieć odpowiada losową liczbą RAND.
- Na podstawie długoterminowego klucza Ki i liczby RAND, algorytm oblicza SRES oraz Kc.
- Sieć porównuje obliczone SRES z wartością otrzymaną od użytkownika i, w razie zgodności, wysyła numer TMSI do dalszej komunikacji.
Problemy z bezpieczeństwem
COMP128 miał być tajny, jednak w 1997 roku ujawniono fragmenty dokumentacji, co doprowadziło do pierwszych ataków na algorytm. W 1998 roku Ian Golberg i David Wagner zrekonstruowali algorytm i przeprowadzili skuteczny atak, odkrywając, że klucz sesyjny Kc ma jedynie 54 bity użyteczne, co znacznie obniża bezpieczeństwo. Ich atak wymagał jedynie 219 zapytań do karty SIM.
W 2002 roku przeprowadzono tzw. atak partycyjny, który umożliwił złamanie algorytmu w mniej niż minutę. Badania te uwidoczniły poważne luki w COMP128, prowadząc do konieczności jego udoskonalenia.
Wersje algorytmu
Dotychczas złamana została jedynie pierwsza wersja COMP128. Trwają prace nad nowszymi wersjami:
- COMP128-V2 – poprawia niektóre luki pierwszej wersji.
- COMP128-V3 – generuje 64-bitowy klucz sesyjny Kc.
- COMP128-V4 – oparty na algorytmie 3GPP z użyciem AES, wciąż w fazie rozwoju.
W obliczu rosnących zagrożeń dla bezpieczeństwa komunikacji mobilnej, rozwój algorytmu COMP128 jest kluczowy dla ochrony danych użytkowników w sieciach GSM.