Pradžia / Programavimas / Mobilieji mokėjimai ir skaitmeninės piniginės

Mobilieji mokėjimai ir skaitmeninės piniginės

Dar prieš dešimtmetį mokėjimas telefonu atrodė kaip kažkas iš mokslinės fantastikos filmo. Šiandien gi eilėje prie kavos automato dažnai matai žmones, kurie tiesiog priglaudžia telefoną prie terminalo ir per sekundę tvarko atsiskaitymą. Piniginė su banknotais kai kuriems tapo tokiu pat retenybe, kaip diskeliai ar CD grotuvai. Bet kaip tai iš tikrųjų veikia po gaubtu, kokie standartai stovi už šios technologijos ir ar tikrai tai taip saugu, kaip visi teigia?

Kas slypi po NFC ženkliuku

Dauguma mobiliųjų mokėjimų remiasi NFC (Near Field Communication) technologija – trumpojo nuotolio bevieliu ryšiu, veikiančiu vos kelių centimetrų atstumu. Tai nėra kažkas naujo – NFC lustai telefonuose atsirado dar apie 2011-2012 metus, tačiau masiškai naudoti juos pradėta tik su Apple Pay pasirodymu 2014-aisiais.

Pats procesas atrodo paprastai: telefonas su terminaliu apsikeičia signalais dažniu 13,56 MHz. Bet po šiuo paprastumu slepiasi gan sudėtinga architektūra. Kai priglaudi telefoną prie POS terminalo, jokia tavo tikroji kortelės numerio informacija niekur nesiunčiama. Vietoj to naudojamas vienkartinis kriptografinis raktas – tokenas, sugeneruotas konkrečiai tai transakcijai. Net jei kas nors sugebėtų perimti tą signalą (o tai jau savaime yra sudėtinga dėl fizinio atstumo ribos), gauta informacija būtų nenaudinga kitai transakcijai.

Įdomu tai, kad Android ir iOS ekosistemos šią technologiją realizuoja skirtingai. iOS naudoja specialų saugumo elementą (Secure Element) – atskirą lustą telefone, izoliuotą nuo pagrindinės sistemos. Android įrenginiuose dažniau naudojamas HCE (Host Card Emulation) metodas, kai tokenizacija vyksta programinės įrangos lygmenyje, o ne atskirame aparatiniame komponente. Abu metodai turi savo privalumų – Apple sprendimas teoriškai atsparesnis tam tikroms atakoms, tačiau Google metodas suteikia daugiau lankstumo bankams ir programų kūrėjams.

Tokenizacija – tikroji saugumo šerdis

Jeigu reikėtų išskirti vieną dalyką, dėl kurio mobilieji mokėjimai iš tiesų saugesni nei fizinė kortelė, tai būtų tokenizacija. Kai pridedi kortelę prie Apple Pay, Google Wallet ar panašios sistemos, tikrasis kortelės numeris (PAN – Primary Account Number) niekada nesaugomas telefone paprastu tekstu. Vietoj to mokėjimo tinklas (Visa, Mastercard) sugeneruoja unikalų skaitmeninį tokeną, susietą su konkrečiu įrenginiu.

Praktiškai tai reiškia štai ką: jei kas nors pavogtų tavo telefoną ir kažkokiu būdu ištrauktų iš jo duomenis, gautas tokenas veiktų tik tame konkrečiame telefone ir tik tada, kai patvirtinama biometrija ar PIN kodas. Palyginimui – jei pameti fizinę kortelę, jos numeris tinka bet kokiam terminaliui internete ar fiziškai, kol kortelė blokuojama.

Verta paminėti, kad tokenizacijos sistema turi ir kitą svarbų aspektą – dinaminį kriptogramą (dynamic cryptogram). Kiekvienai transakcijai generuojamas unikalus kriptografinis kodas, kuris apsaugo net ir nuo tų retų atvejų, kai signalas galėtų būti perimtas. Tai reiškia, kad net teoriškai užfiksavus vieną transakciją, ta informacija negalėtų būti panaudota pakartotinai – vadinamosios „replay atakos” tiesiog neveikia.

Biometrija kaip antras autentifikacijos sluoksnis

Face ID, Touch ID, pirštų atspaudų skaitytuvai Android telefonuose – visa tai sudaro papildomą apsaugos sluoksnį, kuris veikia lygiagrečiai su tokenizacija. Svarbu suprasti vieną dalyką: biometriniai duomenys niekada nesiunčiami į serverius ar net nesaugomi visame telefone prieinamu formatu. Jie lieka užrakinti specialiame apsaugos anklave (Secure Enclave Apple įrenginiuose arba TEE – Trusted Execution Environment Android sistemose).

Tai reiškia, kad biometrija veikia kaip vietinis raktas, atrakinantis prieigą prie mokėjimo funkcionalumo, o ne kaip informacija, kuri kažkur siunčiama patvirtinimui. Jeigu telefone įvyktų duomenų nutekėjimas per programėlę, pirštų atspaudo šablonas išliktų nepasiekiamas, nes jis fiziškai izoliuotas nuo pagrindinės operacinės sistemos.

Praktinis patarimas – niekada nenustatyk silpno atsarginio PIN kodo mokėjimams, net jei pagrindinis metodas yra biometrija. Daugelis sistemų leidžia grįžti prie PIN, jei biometrija kelis kartus nepavyksta atpažinti, o šis PIN dažnai būna toks pat, kaip telefono atrakinimo kodas. Jei tavo telefono PIN yra 1234 ar gimimo data, tai tampa silpniausia grandimi visoje kitaip gerai apgalvotoje sistemoje.

Skaitmeninės piniginės anapus mokėjimų

Apple Wallet, Google Wallet ir panašūs sprendimai jau seniai peraugo vien mokėjimo korteles. Šiandien ten telpa skrydžio bilietai, koncertų įėjimo dokumentai, lojalumo kortelės, o kai kuriose šalyse – net vairuotojo pažymėjimai ar asmens tapatybės dokumentai skaitmeniniu formatu.

Lietuvoje ši ekosistema dar tik formuojasi plačiau, tačiau jau matome, kaip transporto bilietai kai kuriuose miestuose integruojami tiesiai į telefono piniginę, be atskiros programėlės atsidarymo poreikio. Tai pakeičia visą vartotojo patirtį – nebereikia ieškoti konkrečios programėlės, viskas sutelkta vienoje vietoje ir pasiekiama net užrakintame ekrane per greitąją prieigą.

Technologiniu požiūriu čia dažnai naudojami QR kodai arba barkodai, generuojami dinamiškai, o ne statiniai vaizdai. Tai svarbu saugumo požiūriu – net jei kažkas nufotografuotų tavo ekraną tam tikru momentu, dauguma šių kodų galioja ribotą laiką arba yra susieti su papildoma kriptografine informacija, kurios negalima tiesiog nukopijuoti iš nuotraukos.

Kai NFC neveikia – alternatyvūs mokėjimo būdai

Ne visur ir ne visada NFC yra pati praktiškiausia opcija. Internetiniuose parduotuvėse dažnai naudojami kiti mechanizmai – pavyzdžiui, 3D Secure protokolas, kuris reikalauja papildomo patvirtinimo per banko programėlę ar SMS kodą. Tai skiriasi nuo fizinio NFC mokėjimo, nes čia nėra to pačio artumo faktoriaus – transakcija vyksta nuotoliniu būdu, todėl reikalingas kitoks apsaugos sluoksnis.

Kita kryptis, kuri sparčiai populiarėja – QR kodų pagrįsti mokėjimai, ypač populiarūs Azijoje, o dabar plintantys ir Europoje. Vartotojas nuskaito parduotuvės QR kodą arba parduotuvė nuskaito vartotojo sugeneruotą kodą. Techniškai tai paprastesnis sprendimas nei NFC, nes nereikalauja specialaus aparatinio palaikymo terminale – užtenka ekrano, kuriame rodomas kodas, ir kameros, kuri jį nuskaito.

Verta atkreipti dėmesį ir į tai, kaip skiriasi tokenizacijos lygis tarp šių metodų. Kol NFC mokėjimai beveik visada naudoja tikrą tokenizaciją mokėjimo tinklo lygmenyje, QR kodų sistemos kartais remiasi paprastesniais mechanizmais, priklausančiais nuo konkrečios šalies ar banko infrastruktūros. Tai nereiškia, kad jos mažiau saugios, tiesiog saugumo architektūra skiriasi.

Kada verta susirūpinti ir ką realiai reikia žinoti

Realistiškas požiūris – mobilieji mokėjimai statistiškai yra saugesni nei fizinės kortelės, tačiau tai nereiškia absoliutaus saugumo. Didžiausia rizika slypi ne pačioje NFC technologijoje, o platesnėje telefono ekosistemoje: kenkėjiškose programėlėse, phishing atakose, kurios bando išgauti banko prisijungimo duomenis, arba socialinės inžinerijos schemose, kai apgaulės būdu žmogus pats atlieka mokėjimą.

Keletas praktinių dalykų, kuriuos verta turėti omenyje:

Pirma, visada įjunk automatinius sistemos atnaujinimus. Saugumo pataisos dažnai uždaro spragas, kurios teoriškai galėtų būti išnaudotos NFC ar tokenizacijos lygmenyje, nors tokių atvejų realiame pasaulyje pasitaiko itin retai.

Antra, jei telefonas pamestas ar pavogtas, nedelsiant naudokis nuotolinio užrakinimo ar ištrynimo funkcijomis (Find My arba Find My Device). Kadangi mokėjimo tokenai susieti su konkrečiu įrenginiu, jų deaktyvavimas per šias sistemas beveik akimirksniu užkerta kelią bet kokiam piktnaudžiavimui.

Trečia, atkreipk dėmesį, iš kur atsisiunti programėles. Kenkėjiška programėlė, gavusi pernelyg daug leidimų, teoriškai gali stebėti ekrano turinį ar bandyti perimti duomenis kitais būdais, net jei pati mokėjimo tokenizacija lieka nepažeista.

Ketvirta, jei naudoji kelias skaitmenines pinigines skirtinguose įrenginiuose, periodiškai peržiūrėk, kurie įrenginiai turi prieigą prie tavo kortelių. Dažnai žmonės pridurbo seną telefoną prie mokėjimų, o vėliau jį parduoda ar atiduoda, pamiršę pašalinti susietas korteles.

Vietoj taško – žvilgsnis į kišenę, kurioje nebėra vietos piniginei

Grįžtant prie pradinės minties apie piniginę, kuri tampa retenybe – tai nėra vien patogumo klausimas, o gerokai gilesnis architektūrinis poslinkis, kaip mes apskritai suvokiame mokėjimų saugumą. Fizinė kortelė buvo statiškas objektas su fiksuotu numeriu, kurį reikėjo saugoti kaip paslaptį. Skaitmeninė piniginė veikia priešingai – ji generuoja naujas, vienkartines identifikacijas kiekvienai transakcijai, todėl net jei informacija kažkur „nutekėtų”, ji būtų beverte praėjus kelioms sekundėms.

Ateityje tikriausiai matysime dar didesnę integraciją – biometriniai duomenys taps dar tikslesni, tokenizacija apims ne tik korteles, bet ir kitus asmens dokumentus, o pati sąvoka „mokėjimas” gali visiškai atsiskirti nuo fizinio veiksmo priglausti telefoną prie terminalo. Jau dabar testuojami sprendimai, kur mokėjimas vyksta automatiškai, atpažinus veidą arba net vien per artumo jutiklius, be jokio sąmoningo veiksmo iš vartotojo pusės.

Praktinė išmintis šiandien tokia: naudokis šiomis technologijomis drąsiai, nes jos iš tiesų sukurtos su saugumu kaip prioritetu, bet nepamiršk, kad silpniausia grandis dažniausiai yra ne pati technologija, o žmogiškasis faktorius – silpni PIN kodai, nepatikimos programėlės ar per didelis pasitikėjimas nepažįstamais QR kodais viešose vietose. Piniginė gali ir dingti iš kišenės, bet sveikas skepticizmas neturėtų dingti niekada.