Ma már egy kisgyerek is tudja, mi az SIM-kártya, azt azonban kevesen tudják, milyen izgalmas és olykor rögös út vezetett a mobiltelefonok elválaszthatatlannak hitt társainak megszületéséhez. Kezdjük azzal, hogy az első mobilok csakis a “”beépített”” szabványokkal működtek, azaz az előfizetői adatok a mobil memóriába voltak bekódolva. A sors iróniája, hogy a jövő zenéje szintén egy beépített technológia, az eSIM, amely a Google és Apple Payben használt NFC chiphez hasonlóan működő chipet jelent majd a telefonodban, így azt is mondhatjuk kis túlzással, hogy visszatérünk a kezdetekhez.
A legrégebbi analóg szabványok, mint például az NMT-450, nem voltak túlgondolva biztonság szempontjából: ha valaki átmásolta az előfizetési adataidat egy másik eszközbe és ott leklónozta, gyakorlatilag ingyen beszélhetett a te “”számládra”” és fogadhatta is a hívásaidat.
Az első lépés a biztonság felé az úgynevezett Subscriber Identity Security azaz SIS kód volt, amit úgy kell elképzelnünk, mint az ujjlenyomatot: nincs belőle két azonos. A SIS kód egy 18 számjegyű, eszközhöz tartozó egyedi azonosító, melyet maga a programkód tartalmazott, tehát a telefonszállítók egymás között egyenletesen osztották fel őket. Nem volt két olyan eszköz, melynek ugyanaz lett volna a SIS kódja. A processzor ezen kívül még egy 7 számjegyű RID kódot is tárolt, ezt a készülék akkor továbbította egy bázisállomásra, ha a felhasználó/előfizető regisztrált egy cellás hálózatba.
A bázisállomás ezután generált egy random számot, amelyet egy egyedi SIS-válaszhoz csomagolva a SIS-processzor arra használt, hogy generáljon egy engedélyezési kulcsot. A kulcs és a számok viszonylag rövidek voltak, bár akkor még megfelelően biztonságosnak gondolták ezt a működést. A GSM (globális mobilkommunikációs rendszer) szabványt már sokkal biztonságosabbra tervezték, ez hasonló, kódolási szempontból mégis sokkal ellenállóbb engedélyezési rendszert használt. Ezt lentebb részletesen kifejtjük.
Itt a felhasználó hitelesítése már teljes mértékben egy külső processzoron történt, amit egy kártyába integráltak. Ez lett az úgynevezett SIM-kártya, azaz Subscriber Identity Module (előfizetői azonosító modul) melynek bevezetésével az előfizetés függetlenedett a készüléktől, így a felhasználó bármikor készüléket cserélhetett, megőrizve a mobilazonosságot.
A SIM-kártya alapvetően egy ISO 7816 szabványos intelligens kártya, azaz nem volt jelentős különbség közte és az egyéb kapcsolattartó IC-alapú kártyák, például hitelkártyák vagy telefonkártyák között. Sőt, az első SIM-kártyák ugyanolyan méretűek voltak, mint a hitelkártyák, a későbbi mini, micro és nano SIM-kártyák a telefonméret-csökkentési verseny eredményeképpen születtek meg.
Sok elavult eszköz nem támogatja a mai SIM-kártyákat, még akkor sem, ha teljes méretűek. Ennek oka az, hogy a korábbi SIM-kártyák üzemi feszültsége 5 V volt, míg a mai kártyákhoz 3 V-ra van szükség és van 1.8 V-os. Sok SIM-gyártó inkább a kompatibilitást részesíti előnyben az árral szemben, ezért a modern SIM-kártyák többsége egyszerre csak egy feszültséget támogat.
Bizonyos információkat még a gyártósoron beírnak a SIM-kártya memóriájába: egyrészt az IMSI-t (International Mobile Subscriber Identity) a szolgáltató megrendelésére, másrészt egy 128 bites Ki (Key Identification) nevű kulcsot. Egyszerűen fogalmazva: az IMSI és Ki az előfizető bejelentkezési azonosítója és jelszava, a SIM-kártya chipjére kódolva.
Az előfizető IMSI-je és telefonszáma egy speciális adatbázisban tárolódik, amelyet HLR-nek, azaz Home Location Registernek hívnak. Ez az adat azonban egy másik adatbázisba, a VLR-be, azaz Visitor Location Registerbe is bekerül a hálózat minden szegmensében, ami a hitelesítésnél kap majd szerepet, és itt vissza is tértünk a biztonság témájához.
Hogy működik ez az egész? Kicsit bonyolultnak tűnhet, de nem az. A sztori főszereplői az eddig felsorolt adatbázisok, kulcsok, és néhány különleges algoritmus: A3, A8 és A5, melyek részletezésére most nem szeretnénk kitérni.
Amikor előfizetőt regisztrálnak az ideiglenes adatbázisban, a VLR küld egy 128 bites random számot a telefonszámra, ennek neve: RAND. A SIM-kártya processzora ekkor az A3 algoritmust használva, a RAND és a Ki alapján generál egy 32 bites választ és visszaküldi a VLR-nek, ennek neve: SRES. Ha a VLR megfelelő választ kap, az előfizető regisztrálódik a hálózatban. A SIM-kártya egy másik ideiglenes kulcsot, Kc-t is generál. Az érték kiszámítása a fent említett RAND és Ki alapján történik, az A8 algoritmus segítségével. Ezt a kulcsot viszont az átvitt adatok titkosításához használják az A5 algoritmus segítségével. Izgi, nem?