Objavljeno: 23.2.2021 | Avtor: Matej Huš | Monitor Marec 2021

Moj telefon je lahko tudi plačilna kartica

Preden so izumili tehnologijo programske emulacije pametnih kartic, smo morali za plačevanje s telefonom uporabljati namenske kartice SIM ali pa imeti drage telefone z varnimi enklavami. Danes se lahko tudi najcenejši pametni telefon pretvarja, da je pametna kartica za avtobus, knjižnico ali plačilo na terminalu. Tehnologija, ki je v resnici stara že osem let, je zares zaživela šele v zadnjih letih, a pri končnih uporabnikih ostala po krivem prezrta.

Danes je samoumevno, da lahko pametni telefon prislonimo k terminalu in izvedemo plačilo, kot bi šlo za kartično transakcijo. Telefoni se v resnici znajo pretvarjati, da so katerakoli kartica, ne le bančna. Simuliramo lahko Urbano, kartice zvestobe in podobno. Sistem temelji na tehnologiji NFC (near field communication), na katero so naložili modernejšo HCE (host card emulation). Pojdimo po vrsti.

Danes imajo praktično vsi telefoni NFC, ki je že stara tehnologija za brezžični prenos podatkov na kratkih razdaljah, večinoma do 10 centimetrov. Uporablja se za izmenjavo podatkov med napravama, ki sta v bližnjem stiku. Davnega leta 2002 sta NFC izumila Philips in Sony, kmalu pa je bila tehnologija standardizirana v okviru ISO (Mednarodna organizacija za standardizacijo), IEC (Mednarodna elektrotehnična komisija) in ECMA (Zveza evropskih proizvajalcev računalnikov). Od leta za tehnologijo skrbi NFC Forum.

NFC je zelo soroden RFID, saj uporablja enak koncept. Deluje na frekvenci 13,56 MHz (RFID tudi na nižjih in višjih) ter omogoča prenos podatkov s hitrostjo do 848 kb/s, kar za opravljanje transakcij ali avtentikacijo več kot zadostuje. NFC uporablja elemente standarda ISO/IEC14443 A&B. NFC lahko prenaša podatke enosmerno (pasivno) ali dvosmerno (aktivno), fizikalno pa uporablja indukcijo, torej efekte magnetnega polja. Telefon z NFC ima anteno kot navitje vodnika, ki se obnaša kot tuljava, enako je tudi na sprejemniku. Ko napravi približamo, magnetno polje zaradi toka v enem navitju v drugem inducira električni tok, kar se izkorišča za prenos informacij.

V praksi torej NFC deluje na tri načine: v bralno/pisalnem načinu, kar se uporablja za komunikacijo z značko NFC, v načinu P2P (peer-to-peer) za prenos podatkov med dvema napravama (npr. telefonoma s funkcijo Android Beam) ter z emulacijo kartice (card emulation mode), kjer se telefon obnaša kot pametna brezstična kartica in omogoča plačevanje.

Varni elementi

Če se telefon pretvarja, da je plačilna kartica, mora to početi varno. Preprečiti je treba, da bi naključni mimoidoči prisluškoval izmenjavi in kopiral podatke, s katerimi bi lahko kasneje izvajal transakcije v našem imenu. Prisluškovanje je treba rešiti na dveh koncih – v telefonu so problematične nepooblaščene aplikacije, ki bi lahko dostopale do shranjenih podatkov o karticah, v zunanjem svetu pa lažni terminali ali zgolj bližnje naprave.

V ta namen se uporablja varni element (secure element), ki predstavlja fizično implementacijo varne shrambe. Lahko je povsem zunanji, denimo kartica SIM ali specialna kartica microSD, ali pa ima telefon že vgrajenega (Secure Enclave v Applovih telefonih). Nobena izmed teh rešitev ni optimalna. Kartica SIM zahteva sodelovanje operaterja, torej bi morale bančne institucije skleniti pogodbo z vsakim posebej. Namenska kartica microSD je nepraktična, ker nekateri telefoni reže sploh nimajo, drugi pa jo sicer imajo, a morda bi želeli uporabljati dejansko kartico za shranjevanje podatkov. Telefonov z vgrajenim varnim elementom vsaj spočetka ni bilo dosti, pa tudi danes to ni samoumevno in zahteva sodelovanje proizvajalca ter ponudnika storitev. Na malih trgih, kakršen je naš, je to lahko resna ovira.

Čitalnik NFC torej komunicira neposredno z varnim elementom.

HCE

Doug Yeager in Ted Fifelski, ki sta ustanovila podjetje SimplyTapp, sta si leta 2012 izmislila emulacijo kartic oziroma HCE (host card emulation). Razlog je bil preprost. Potrebovali so način, da bi NFC komuniciral neposredno z glavnim procesorjem. Komunikacija zgolj z varnim elementom namreč omejuje uporabnost. Tako pa bi ga lahko uporabljali več aplikacij, ki ne bi potrebovale vsaka posebej dostopa do varnega elementa, hkrati pa je bilo treba še vedno zagotoviti varnost. Z drugimi besedami: procesor oziroma aplikacija, ki trenutno teče, se lahko pretvarja, da je kartica – plačilna, za javni promet, knjižnico, vozniško dovoljenje …

Pri HCE poteka komunikacija neposredno s procesorjem, medtem ko ima klasičen NFC dostop le do varnega elementa. Slika: Google

Gre za odprt komunikacijski kanal med terminalom, torej efektivno čitalnikom NFC, in varnim elementom, ki pa ni na telefonu, temveč v oblaku. Za varno uporabo NFC ne potrebujemo nobenega dodatnega varnega elementa. S tem pa se možnosti za uporabo tehnologije bistveno razširijo, saj jo lahko implementira praktično vsak pisec aplikacij.

Prvi je zelo podobno tehnologijo pod imenom Virtual Target Emulation uvedel RIM (danes Blackberry) v svojem operacijskem sistemu BB7 leta 2011, a se je resnično razmahnila šele, ko jo je podprl Google v Androidu 4.4 (Kitkat). Kasneje jo je podprl tudi Microsoft, tako da danes HCE najdemo tudi v Windows 10. Edina večja lisa je Apple, saj ta svoj NFC ljubosumno ščiti, zato HCE ne omogoča, ima pa zelo podobno funkcionalnost v Apple Pay. Podpora HCE pa bi pomenila, da bi lahko nastale konkurenčne aplikacije Apple Payu, česar pa si v Cupertinu ne želijo.

Čeprav je Android 4.4 izšel že leta 2013, so večji igralci na trgu mobilnih plačil pripravili aplikacije za mobilne plačevanje, ki uporabljajo HCE, šele v letih 2015 in 2016. Kmalu so jim sledili tudi pisci ostalih aplikacij. Digitalno Urbano smo denimo dobili aprila 2016, NLB Pay pa 2018.

Kako deluje

Za uporabo HCE ne potrebujemo posebne aplikacije (razen seveda tiste, v kateri želimo izvesti neko varno operacijo) ali grafičnega vmesnika. Ko bralnik NFC in terminal vzpostavita stik, se v ozadju samodejno aktivira storitev HCE, ki teče v ozadju. Ker je lahko s HCE povezanih več aplikacij, dobi vsaka enolično identifikacijsko številko AID (application ID). Za uveljavljene storitve, denimo plačilno omrežje Visa in MasterCard, so te javno znane. Lahko pa seveda postavimo čisto svojo infrastrukturo, za kar moramo registrirati lastni AID. Priporočljivo je slediti standardu ISO/IEC 7816-5, saj se tako izognemo duplikatom.

Podatki se prenašajo v formatu NDEF (NFC Data Exchange Format), kjer sporočila (message) sestojijo iz zapisov (records). Ti so lahko več tipov, denimo preprosto besedilo, podpis itd.

HCE ustvari virtualno kopijo pametne kartice v programski obliki. Namesto da bi jo imeli shranjeno v varnem elementu ali na kartici SIM, ostaja v oblaku, ki ga vzdržuje upravljavec infrastrukture. S tega vidika je zagon nove storitve lažji, saj je treba zgolj postaviti oblak, ne pa tudi poskrbeti za pogodbe s proizvajalci in z operaterji ter potem tudi dejansko implementacijo v fizični obliki. Ker je HCE odprtokodni sistem, to ne bo težko. Z vidika trgovcev pa sprememb ni, saj HCE deluje povsod, kjer deluje NFC. Spremembe so na ravni telefona potrošnika.

Ko uporabnik svojo napravo približa terminalu NFC, bralnik NFC v napravi neposredno preusmeri podatke do glavnega procesorja, kjer ima aplikacija dostop do njih. Po večletnem razvoju varnih elementov, ki so dobro šifrirani, HCE predpostavi, da je obstoj popolnoma varnih elementov na lokalni napravi nemogoč, zato vpraša v oblak, kjer za podatkovne zbirke veljajo strogi ukrepi zagotavljanja varnosti (PCI DSS ali več). Dostop do zbirke je potencialno šibka točka, zato se uporabljajo štirje stebri nadzora dostopa: kratkotrajni ključi, žetoni, prstni odtisi naprave, analiza transakcij.

V praksi gre takole. Iz številke PAN (permanent account number) banka ustvari žeton (token), ki je veljaven za eno transakcijo. Ta se potem shrani v ustrezno okolje, hkrati pa ga dobi mobilna naprava komitenta. Ko ta poskuša izvesti plačilo prek NFC, dobi trgovčev terminal ta žeton. Mobilni telefon torej v tem trenutku ne potrebuje povezave do interneta. Terminal potem pošlje ta žeton banki, ki izvede razreševanje žetona (detokenization), da izlušči PAN in bremeni pravilni račun. Trgovec dobi informacijo o uspešni (ali neuspešni) transakciji. V praksi seveda ni nujno, da gre za banko in trgovca, saj lahko na enak način simuliramo katerokoli pametno kartico.

Plačilo s HCE. Slika: Rambus

Ker je HCE mogoče uporabiti za zelo različne namene, od najobčutljivejših (plačila) do precej trivialnih (preverjanje članov fitnes kluba), lahko deluje v več modelih. To je izvedljivo zato, ker HCE v resnici omogoča le neposredni dostop do glavnega procesorja. Kje potem ta jemlje podatke, je odvisno od dodatne infrastrukture, za katero nikjer ne piše, da mora biti oblak.

To je le ena izmed možnosti (glej sliko). Servisna koda (applet) in uporabnikovi podatki (ključi) so lahko v oblaku (model 1), torej potrebujemo aktivno povezavo z internetom. Sicer pa lahko vse podatke skladišči kar telefon in jih posreduje prek NFC, kar ni varno (model 2). Vmesna možnost je, da je servisna koda lokalna, uporabnikovi podatki pa v oblaku (model 3), za kar spet potrebujemo dostop do interneta. Če uporabljamo žetone (model 4), potrebujemo povezavo le občasno, ne pa ob samih transakcijah.

HCE lahko deluje v več modelih, odvisno od potrebe. Slika: Smart Card Alliance

V praksi

Medtem ko se NFC zavedamo, saj ga navsezadnje telefoni tudi oglašujejo kot eno izmed konkurenčnih prednosti, je HCE ena istih tehnologij, ki so jo z malo pompa integrirali v operacijske sisteme in jo danes hvaležno uporabljamo, ne da bi se zavedali njene kompleksnosti in tudi koristnosti. Storitve, kot je Urbana ali mBills, brez HCE ne bi bile mogoče.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!

Komentirajo lahko le prijavljeni uporabniki

 
  • Polja označena z * je potrebno obvezno izpolniti
  • Pošlji