SIM aplikace
Schůdnější variantou proto je implantovat (dodat) potřebnou funkčnost mobilnímu telefonu dodatečně, až po jeho výrobě, takovým způsobem který je dostatečně flexibilní a umožňuje přizpůsobit se jak individuálním potřebám uživatele, tak i možnostem a potřebám služeb nabízených v síti konkrétního mobilního operátora. Princip nemusí být vůbec odlišný od toho, jak fungují počítače - do mobilního telefonu se nahraje vhodný program, který zařídí vše potřebné.
Možností, jak zajistit takovéto dodatečné vložení programu, je samozřejmě více. Jednou z nich je i umístění programu na SIM kartu, což má četné výhody. Například tu, že SIM kartu přiděluje uživateli jeho operátor, který samozřejmě ví jaké konkrétní služby jsou v jeho síti poskytovány, za jakých podmínek atd. Proto je pro něj snadné sjednat se svým zákazníkem podmínky používání příslušné služby a pak mu na jeho SIM kartu nahrát potřebný program. Ten je ze systémového hlediska jednoúčelovou aplikací (SIM aplikací), která může plnit širokou škálu různých funkcí. Jednou z nich je i komunikace s bankovním systémem v rámci GSM bankingu (podrobněji viz dále).
WAP-like aplikace
Umisťování aplikací na SIM karty je řešením, které je dobře schůdné pro operátory mobilních sítí i pro takové poskytovatele služeb, kteří jsou s nimi úzce spolupracují. Není ale již vhodným řešením pro velké množství "menších" poskytovatelů služeb, kteří se nechtějí nebo ani nemohou tolik vázat na konkrétní operátory mobilních sítí. Důležitý je i "množstevní aspekt", protože počet aplikací které lze umístit na SIM kartu je velmi omezený (někdy i na jedinou aplikaci). Proto se časem objevilo i další řešení, které vychází vstříc jak velké různorodosti aplikací, tak i potřebám "samostatných" poskytovatelů služeb, kteří nepotřebují podporu operátorů mobilních sítí.
Jde o řešení, v rámci kterého je do mobilního telefonu dopředu (a "pevně", již výrobcem) nainstalována jedna konkrétní aplikace, která posléze slouží jako prostředí resp. platforma pro zpřístupnění dalších aplikací, jejichž výkonné části mohou běžet mimo mobilní telefon. Příkladem takovéhoto řešení je protokol WAP - do mobilního telefonu je výrobcem nainstalována podpora WAPu, která umožňuje komunikovat s WAPovými servery a zobrazovat WAP-ové stránky (přesněji: stránky v jazyku WML), a jejich prostřednictvím využívat služby, které jsou na platformě WAP-u nabízeny.
Rozdíl mezi řešením na bázi WAP-u na bázi SIM aplikací lze přirovnat i k rozdílu mezi klasickou (dvouúrovňovou) a tříúrovňovou architekturou kleint-server: SIM aplikace odpovídá klientské části v klasickém modelu klient-server, a je tudíž specifická (pro každou službu jiná), protože obsahuje i významnou část aplikační logiky. Naproti tomu řešení s WAPem odpovídá tříúrovňové architektuře klient/server, přičemž samotný mobilní telefon s podporou WAPu zde zajišťuje pouze tzv. prezentační vrstvu, která může být pro všechny aplikace stejná (a veškerá aplikační logika je umístěna mimo mobilní telefon, na vhodném serveru u poskytovatele služby).
SIM Application Toolkit
SIM karty (Subscriber Identity Module) prošly za více než 10 let své existence významným vývojem. Zpočátku obsahovaly jen velmi málo paměti, určené pro uchování informací o identitě vlastníka a jeho oprávněních v mobilní síti (aktivované služby atd.), a pro ukládání telefonních čísel pro možnost jejich zkrácené volby. Myšlenka využít paměť těchto karet i pro uchovávání a běh programů se poprvé objevila v roce 1991, a v návaznosti na to se objevily první pokusy o využití této možnosti. Zpočátku se ale jednalo o různá proprietární řešení, a teprve kolem roku 1994 začínají práce na vývoji jednotného standardu na půdě SIMEG (SIM Experts Group). Příslušný standard, GSM 11.14, byl přijat v roce 1996 a má podobu řešení označovaného jako SIM Application Toolkit.
Jednotný standard, definující chování a způsob používání SIM karty jako nosiče aplikací je zapotřebí proto, aby SIM aplikace mohly být provozovány v různých mobilních telefonech, a navrhovány a vyvíjeny jednotně pro všechny mobilní telefony, které společný standard podporují. V zásadě tedy tento standard vytváří jednotné prostředí, ve kterém SIM aplikace běží, a vytváří také jednotné rozhraní k funkcím mobilního telefonu, tak aby je SIM aplikace mohly využívat. Součástí tohoto rozhraní (označovaného jako rozhraní SIM-ME, neboli Subscriber Identity Module - Mobile Equipment) jsou mj. funkce umožňující SIM aplikaci:
- zobrazovat text na displeji mobilního telefonu
- navázat hlasové nebo datové spojení s číslem uloženým v paměti modulu SIM
- poslat SMS zprávu, či odeslat řetězec skrze USSD (Unstructured Supplementary Services Data) nebo SS (Supplementary Services)
- přehrát tón ve sluchátku resp. reproduktoru
- získat lokální informace o schopnostech a vlastnostech mobilního telefonu (ME)
a další. Toto jsou však jen základní funkce, a s jejich využitím si mohou SIM aplikace zajistit také další úkony, jako například:
- sestavit celou SMS zprávu a vyžádat si její odeslání
- přijmout SMS zprávu a její obsah předat přímo SIM kartě. Obsahem SMS zprávy přitom mohou být například nová data či příkazy pro SIM aplikaci, obecně tak vzniká přenosový kanál umožňují download dat ze sítě přímo na SIM kartu.
- sestavit nové menu mobilního telefonu, resp,. zařadit do stávající struktury menu nové položky a celé nové větve, s tím že reakce uživatele jsou směrovány k SIM aplikaci která je může vyhodnocovat
- přesměrování všech čísel zadaných uživatelem na SIM kartu, tak aby zde běžící SIM aplikace mohla provést v zásadě jakékoli přečíslování (a tím i přesměrování hovoru)
- získávání údajů o stavu sítě a průběhu komunikace (například o síle signálu, identitě buňky apod.), tak aby na ně SIM aplikace mohla zareagovat a případně měnit chování mobilního telefonu.
Aplikace, umístěné na SIM kartě a provozované v rámci SIM Application Toolkitu, mohou být samostatné, v tom smyslu že nepotřebují spolupracovat s dalšími aplikacemi mimo samotný mobilní telefon. Častěji ale jde o takové aplikace, které komunikují s jinými aplikace provozovanými mimo mobilní telefon a teprve spolu s nimi se podílí na poskytování služeb uživatelům telefonů. Jde tedy vlastně o klientské části v rámci (dvouúrovňové) architektury klient/server, zatímco serverové části příslušných aplikací mohou být umístěny v zásadě kdekoli v GSM síti.
Obě části aplikací, tedy klientská i serverová, spolu mohou komunikovat všemi způsoby, které jsou pro ně dostupné, tedy například pomocí datových spojení (CSD či HSCSD), nebo speciálními kanály USSD. Nejčastěji však spolu komunikují pomocí SMS zpráv. Na to ostatně pamatuje i samotný SIM Application Toolkit, který jako jednu ze svých funkcí zajišťuje i bezpečnou komunikaci klientské a serverové části prostřednictvím zpráv SMS. Jde přitom o poměrně silné zabezpečení na bázi symetrického šifrování a algoritmu Tripple DES, definované standardem SIM Application Toolkit Secure Messaging standard (GSM 03.48).
GSM banking
Termínem "GSM banking" se obvykle označuje možnost přístupu klienta k jeho bankovnímu účtu prostřednictvím mobilního telefonu, řešená výše popsaným způsobem, tedy aplikací jejíž klientská část je umístěna na SIM kartě mobilu (a serverová část běží v rámci bankovního systému). Jiným druhem "mobilního bankovnictví" pak může být WAP-banking, který místo SIM karty a podpory SIM Application Toolkitu využívá možností protokolu WAP a jeho podpory v mobilním telefonu.
Výhod GSM bankingu je celá řada a vyplývají jak z obecných vlastností GSM Application Toolkitu, tak i ze skutečnosti, že celá klientská část je od základu "šita na míru" příslušnému bankovnímu systému, resp. jeho serverové části. Autoři příslušných SIM aplikací se z jedné strany mohou plně přizpůsobit požadavkům serverové části, a z druhé strany mohou vytvořit velmi intuitivní způsob ovládání, který díky možnostem SIM Application Toolkitu vnoří přímo do menu mobilního telefonu. Výsledkem pak může být velmi robustní a dostatečně bezpečná aplikace s tak intuitivním ovládáním, jaké dokáží autoři vymyslet.
Pokud jde o otázku bezpečnosti, zde je vhodné si ještě jednou zdůraznit že veškerá komunikace mezi klientskou částí bankovní aplikace a její serverovou částí je chráněna opravdu silnými šifrovacími mechanismy (Triple DES). Tyto jsou založeny na tzv. symetrickém šifrování, což znamená že se pracuje s dvojicí identických klíčů (které musí zůstat tajné). To je odlišné řešení než jaké se používá například u elektronických podpisů, které předpokládají použití tzv. asymetrického šifrování a pracují s dvojicí komplementárních klíčů (privátní a veřejný). Výhodou symetrického šifrování jsou podstatně menší nároky na výpočetní kapacitu nutnou pro faktické šifrování, ale na druhé straně je zase nutné pečlivě pohlídat, aby se tajný klíč nedostal do rukou nikoho nepovolaného. To ale u GSM bankingu není až tak velký problém zajistit, protože jeden z tajných klíčů si ponechává banka a druhý instaluje opět banka (resp. mobilní operátor ve spolupráci s bankou) když nahrává příslušnou aplikaci na SIM kartu svého zákazníka.
Samotný tajný klíč je na SIM kartě ještě dále zabezpečen, a spolu s ním je dále zabezpečeno i používání klientské aplikace jako takové. Obvykle se zde využívá dvouúrovňový systém hesel resp. kódů (PINů), přičemž kód na jedné úrovni (tzv. BPUK, bankovní PUK) vygeneruje přímo banka a předá zákazníkovi na základě uzavření smlouvy, zatímco druhý kód (tzv. BPIN, bankovní PIN) si uživatel volí sám s využitím BPUKu. Tímto BPINem pak musí uživatel autorizovat každý významnější příkaz bance (například převod peněz), a pokud se opakovaně splete (například 3x, ne nutně za sebou), je SIM aplikace zablokována a lze ji odblokovat jen s použití správného původního kódu BPUK vydaného bankou (při určitém počtu chybných zadání kódu BPUK se bankovní aplikace zablokuje definitivně). Tím je pamatováno i na možnost, že se mobilní telefon dostane do rukou někoho nepovolaného, kdo se bude pokoušet jej zneužít.