Poznámky k zabezpečení mobilní komunikace

Díky odhalení Edwarda Snowdena víme, že tajné služby Velké Británie a USA ukradly nesmírné množství klíčů Ki používaných při mobilní komunikaci a klíčů používaných při dálkových změnách dat na kartách OTA. Při té příležitosti by se snad někomu mohly hodit mé poznámky k tomu jak GSM klíče používá.

Poznámky se týkají 2G sítí. V případě 3G je zabezpečení o něco lepší – klíče Ki jsou použity pouze pro výměnu vygenerovaných klíčů, které jsou pak používány pro šifrování vlastní komunikace. I tak je útočník se znalostí Ki ve velké výhodě. Co víc, 3G komunikaci je možné rušit a tím donutit telefon komunikovat přes 2G.

SIM – základní pojmy

Obecné GSM pojmy použité v následujícím výkladu

AC – autentizační centrum. Obsahuje tajný klíč Ki, který je kromě AC uložen pouze na SIM kartě.

HLR – Home Location Register je statická databáze, která obsahuje informace o uživateli identifikovanému číslem IMSI. Obsahuje také informaci o aktuální lokaci SIM karty.

VLR – Visitor Location Register – je dynamická databáze sloužící potřebě určité geografické oblasti. Do VLR jsou dočasně kopírována z HLR data potřebná pro navázání spojení.

MSC – Mobile Switching Center – jde o zařízení pro přepojování hovorů, jeho součástí je obvykle VLR.

IMSI – International Mobile Subscriber Identity je unikátní číslo přidělené SIM kartě mobilním operátorem. IMSI je primárním klíčem v HLR databázi.

Pojmy související s autentizací a šifrováním standardní komunikace

Ki – 128-bitový Individual Subscriber Authentication Key.  Tento tajný klíč, je uložen pouze na kartě a v Autentizačním cetnru (AC). Tento klíč není posílán ani do lokální databáze VLR. Místo toho je do VLR poslán klíč Kc spolu s náhondě vygenerovaným číslem RAND. Kc je získán z tajného klíče Ki a tohoto náhodného čísla RAND.

Kc – Klíč který je získán z tajného klíče Ki a náhondého čísla RAND. Spolu s tímto náhodným číslem je poslán do VLR, ale z bezpečnostních důvodů není nikdy posílán bezdrátově.

RAND – náhodné číslo generované AC.

SRAND – Číslo získané z náhodného čísla RAND a tajného klíče Ki pomocí proprietárního algoritmu A3.

Autentizace a Šifrování

Autentizace

Tajný klíč Ki nesmí opustit SIM kartu nebo AC (Autentizační Centrum). Proto je pro autentizaci použit následující postup:

  1. Autentizační centrum vygeneruje náhodné číslo RAND.
  2. Autentizační centrum z RAND a klíče Ki vytvoří klíč Kc pomocí algoritmu A8 a číslo SRES pomocí algoritmu A3.
  3. Autentizační centrum pošle RAND, SRES a Kc do lokální databáze VLR, která obsluhuje oblast ve které se uživatel přihlašuje.
  4. VLR přes MSC (což je síťový prvek) pošle číslo RAND kartě a to v nezašifrované formě.
  5. SIM karta pomocí Ki a algoritmu A3 vytvoří SRES a pošle ho zpět do VLR.
  6. VLR porovná SRES z AC a tím z karty. Pokud se rovnají, je autentizace úspěšná.

Kompletní autentizace nemusí být prováděna před každým hovorem. Může být například prováděna ve chvíli, kdy se uživatel přesune z jedné geografické oblasti do druhé.

Pokud autentizace proběhne úspěšně, je zařízení autentizovanou kartou porovnáno s databází Equipment Identity Register. Pouze v případě, že zařízení splňuje všechny požadavky mu je umožněno přihlásit se do sítě. Jde například o kontrolu zda je zařízení kradené, nebo zda splňuje technické požadavky atd.

GSM autorizuje uživatele do sítě, ale neautorizuje síť do které se uživatel přihlašuje.

Šifrování

Po autentizaci nastupuje šifrování. Pokud již proběhla autentizace a všechna potřebná data jsou ve VLR, je další postup je následující:

  1. Kc je předán do BTS
  2. telefon pomocí algoritmu A8 vytvoří z čísla RAND a klíče Ki vytvoří klíč Kc.
  3. Nyní mají obě strany klíč Kc, šifrovaná komunikace mezi BTS a MS může začít.

OTA

Úvod do OTA

Informace na SIM kartě mohou být měněny na dálku – Over The Air, zkráceně OTA.

OTA systém komunikuje se SIM kartami pomocí datových SMS zpráv, které posílá prostřednictvím SMSC centra. Tímto způsobem mohou být měněny informace jako je například telefonní seznam uložený na kartě, seznam zakázaných operátorů pro případ roamingu a podobně. Tyto datové zprávy mohou být zabezpečeny na několika úrovních. To jaká míra zabezpečení má být použita je dáno dvěma oktety, které jsou součástí SMS zprávy, posílané z OTA systému kartě a které se nazývají SPI.

Možnosti zabezpečení při OTA práci s kartami – SPI

SPI je v podstatě 16 bitů v SMS zprávě posílané SIM kartě. SPI obsahuje informace o požadovaném zabezpečení, tedy například o použití sychronizačního counteru, druhu šifrování, toho jaké klíče a jaké algoritmy budou použity.

K dispozici jsou následující možnosti zabezpečení:

RC – Redundancy Check – umožňuje detekovat náhodně změněná data pomocí hash funkce. RC nezaručuje integritu dat.

CC – Cryptographic Checksum – umožňuje detekovat jak data změněná náhodně, tak data změněná při útoku. CC zaručuje integritu dat. Jde vlastně o podepisování dat pomocí identifikátoru klíče KID.

Šifrování – zda bude zpráva zašifrovaná, nebo ne. Pokud ano, bude k tomu použit klíč KIC.

Synchronizační Counter – slouží k tomu aby nebylo možné zachytit zprávu a poslat ji kartě znovu. V podstatě jde o porovnávání hodnoty counteru v SMS zprávě a hodnoty uložené na kartě. Pokud je zpráva úspěšně doručena, je counter na kartě zvýšen, většinou o jedničku a OTA systém příště pošle zprávu s counterem příslušně zvětšeným. Pokdu někdo zachytí zprávu a zkusí ji poslat znovu, má tato zpráva counter menší než je ten na kartě a je odmítnuta.

Synchronizační counter může být použit několika způsoby, například můžeme vyžadovat aby counter ve zprávě byl právě o jedničku vyšší než ten na kartě, nebo aby byl prostě větší, jedno o kolik.

Klíče potřebné pro OTA

K tomu aby OTA systém mohl zajistit tyto bezpečnostní funkce, potřebuje o kartách následující informace:

KiC – klíč pro šifrování – zajištění důvěrnosti
KiD – klíč pro zajištění integrity – podepisování dat poslaných SIM kartě
KiK – klíč pro šifrování ostatních klíčů, například při jejich změně.

Tyto informace jsou extrémně důvěrné, ale přitom je třeba je předat OTA systému. Tato data, obvykle ve formátu XML jsou pro maximální zabezpečení předávána buď to buď na fyzickém médiu, nebo silně zašifrována.

Transportní klíč – Jako další úroveň zabezpečení bývají šifrovány i vlastní klíče v souboru, a to takzvaným transportním klíčem. OTA platforma tento transportní klíč obsahuje a umožňuje import zašifrovaných klíčů aniž by k nim měl operátor systému přístup.

Zdroj: specifikace 3GPP