Ostatnio: 01.05.2019

Darmowe galerie dla serwisów aukcyjnych

Wstęp

Ponieważ ostatnio sporo głupot się naczytałem o HCE na wszelkiej maści stronach o tematyce około bankowej, postanowiłem, że poświęcę chwile swojego życia i napiszę ten oto krótki przewodnik po świecie płatności mobilnych, co mam nadzieje powiększy wiedzę Was szanownych Wykopowiczów, Mirabel i Mirków.

Postaram się wytłumaczyć Wam najlepiej jak potrafię aspekty techniczne, różnicę pomiędzy technologiami, odrobinę na temat zabezpieczeń – tutaj też będzie moje podejście do sprawy wszelkiej maści telefonów #chinskiecuda – stosowanych w aplikacjach mobilnych, po stronie dostawcy rozwiązania, będzie trochę o typach tych rozwiązań i o tym jak samemu się zabezpieczyć. Na końcu opowiem Wam trochę o tym czym różni się Android Pay (czy jakikolwiek inny ‘Pay’ od rozwiązań HCE dostępnych w polskich bankach.

Ponieważ temat jest momentami dość złożony nie obędzie się bez szastania różnego typu zwrotami bardziej branżowymi i technicznymi – stąd zaraz za wstępniakiem dodaję słownik pojęć i skrótów, których będę w niniejszym opracowaniu używał.


Słownik pojęć i skrótów

HCE (Host Card Emulation) – technologia płatności zbliżeniowych oparta na tokenizacji karty plastikowej lub wirtualnej oraz generowaniu kluczy transakcyjnych w „chmurze”

SIMCENTRIC/SE – technologia płatności zbliżeniowych oparta o tokenizację karty plastikowej lub wirtualnej oraz generowania kluczy transakcyjnych w Secure Element (SE). Rolę SE w tej technologii pełni specjalna karta SIM wydawana przez operatora telefonii komórkowej w porozumieniu z bankiem.

Wallet – portfel. Najlepiej wyobrazić sobie swój własny portfel, w którym nie ma gotówki, ale za to jest cały wachlarz kart: debetowych, kredytowych, walutowych itd…

Wallet provider – dostawca rozwiązania typu „Wallet”, lub – odnosząc się do definicji Walletu – „producent” portfela, do którego możecie karty włożyć.

Issuer – wydawca karty (Bank)

Karta płatnicza (karta) – karta debetowa, kredytowa, walutowa – itd. Instrument płatniczy.

Tokenizacja – najprościej: skopiowanie do postaci cyfrowej i powiązanie z fizycznym urządzeniem (smartphone) karty płatniczej plastikowej lub wirtualnej.

Token – ciąg znaków reprezentujący plastikową lub wirtualną kartę płatniczą powiązaną z danym Wallet Providerem, Issuerem oraz urządzeniem.

Klucz transakcyjny – jednorazowy klucz, który jest wykorzystywany do transakcji HCE. Po jego zużyciu, zastrzeżeniu, przekroczeniu terminu ważności jest bezużyteczny. Jest on powiązany z tokenem i urządzeniem, dla którego został wygenerowany.

Obfuskacja – zaciemnianie kodu.

Karta wirtualna – karta płatnicza nie mająca swojej fizycznej reprezentacji (czyli plastiku)

NFC – Near Field Comunication – technologia przesyłania danych na MAŁE odległości (do kilkunastu milimetrów).


Od Secure Elementu do mitycznej chmury.


Pierwszym – niezbyt popularnym – rozwiązaniem płatności zbliżeniowych były karty płatnicze wgrywane na kartę SIM – SIMCENTRIC - (poprzez operatora w porozumieniu z bankiem). Właściwie technicznie nie wiele się różni od dzisiejszego HCE z tym, że w przypadku SE po pierwsze trzeba było się związać i z konkretnym bankiem jak i z konkretnym operatorem telefonii komórkowej. W Polsce takie usługi świadczy Orange w porozumieniu z mBank, T-Mobile w porozumieniu z T-Mobile usługi bankowe. Być może przez te kilka ładnych lat przewinęło się jeszcze kilka instytucji i operatorów, ale z punktu widzenia „historycznego” nie ma co o tym wspominać.

By skorzystać z płatności opartych o SE trzeba było:

- posiadać smartphone oparty o Androida z dość ubogiej oferty (w przeciwieństwie do HCE ilość telefonów obsługujących SIMCENTRIC była/jest znacznie mniejsza),

- związać się umową z operatorem,

- następnie dokonać wyboru między bankami, które z tym operatorem współpracowały – przeważnie był to jeden konkretny bank.

Póki co same minusy. Jak z wgrywaniem karty? Kiedy już otrzymaliśmy odpowiednią kartę od operatora i włożyliśmy ją do telefonu, za pomocą dedykowanej aplikacji poprzez siec GSM była dokonywana personalizacja karty oraz jej wgranie do SE. I to właściwie wszystko. Można było pójść do sklepu i wydawać pieniądze przykładając telefon do POS.

HCE

W przypadku HCE rolę SE pełni ta cała mityczna chmura, która tokenizuje kartę jak i dostarcza wprost do naszego urządzenia klucze transakcyjne. Mityczna chmura to nic innego jak komputer, którego właścicielem jest firma, której logo znajduje się na danej karcie (MasterCard, Visa) lub właścicielem jest Bank – jeśli kupił lub zainwestował w rozwiązanie tokenizacji, które jest niezależne od MasterCard/Visa. O różnicach w tych rozwiązaniach opowiem Wam później.

By skorzystać z płatności HCE trzeba spełniać następujące warunki:

1. Telefon z systemem Android w wersji >=4.4.

2. Wbudowana w telefon antena NFC

3. Konto w banku, który wspiera HCE lub pozwala na tokenizację swoich kart innemu Wallet Providerowi.

4. Raz na jakiś czas dostęp do Internetu.

Czyli w przeciwieństwie do rozwiązania opartego na SE: możemy związać się z dowolnym operatorem telefonii komórkowej, posiadać telefon z bogatej oferty na rynku, a jesteśmy tylko trochę ograniczeni ofertą banków, które wspierają to rozwiązanie (chociaż i tak w dużej mierze większość banków posiada produkty, które kosztują nas miesięcznie 0pln…). Minusem jest niewątpliwie mimo wszystko ograniczona ilość banków obsługujących HCE czy to jako Wallet Provider czy poprzez zezwolenie tokenizacji swojej karty w obcym Wallecie (np. Android Pay) – chociaż jak sami pewnie zauważyliście, z miesiąca na miesiąc ta sytuacja ulega poprawie.

Tyle jeśli chodzi o krótki opis technologii i różnic pomiędzy nimi – bardzo krótki i pobieżny, jeśli chcemy sięgać dalej to już konkretne „technikalia”, które nie muszą wszystkich interesować.

Jak przebiega tokenizacja karty.

Przypisanie tokenu dla danej karty plastikowej lub wirtualnej odbywa się tylko i wyłącznie na drodze Bank<>Wallet Provider<>Visa/Master Card i jest to proces w wielu przypadkach całkowicie przezroczysty dla użytkownika. Jedynym wyjątkiem są dodatkowe możliwości weryfikacji właściciela karty poprzez hasło smsowe, kontakt z biurem obsługi, czy hasło wysłane na e-mail. Oczywiście bank pozwalający na dodanie karty do waleta ma możliwość rezygnacji z tej dodatkowej weryfikacji – np. dla tego, że aby stokenizować kartę, najpierw należy zalogować się do aplikacji mobilnej co już jest samo w sobie weryfikacją posiadacza (chyba, że ktoś udostępnił to hasło osobie trzeciej – bardzo nierozsądne).

W skrócie proces tokenizacji wygląda w ten sposób:

1. Użytkownik decyduje czy chce stokenizaować istniejącą fizyczną kartę czy też stworzyć nową wirtualną.

2. Po wybraniu karty lub stworzeniu nowej, następuje komunikacja bank<>Wallet provider<>Visa/MasterCard, która ma na celu sprawdzenie czy ta karta istnieje i czy bank, który ją wystawił zezwala na jej tokenizację.

3. (nieobowiązkowy) Wraz ze zbadaniem karty, badane jest również urządzenie pod kątem technicznym, czyli sprawdzana jest wersja systemu operacyjnego oraz czy aparat posiada antenę NFC. WalletProvider może sam zadbać o taki test, lub wysłać niezbędne dane do Visa/MasterCard, która sprawdzi czy dane urządzenie jest kompatybilne.

4. Następuje przypisanie tokenu do karty oraz dostarczenie jej na urządzenie. Połączenie we wszystkie strony jest szyfrowane, same komunikaty są szyfrowane ponownie, elektronicznie podpisane i właściwie nie ma możliwości aby tę komunikację przechwycić, a nawet jeśli – to wiadomość odszyfrować.

5. Po dostarczeniu tokenu na urządzenie, następuje wgranie kluczy transakcyjnych.

6. Zostaje wyświetlony ekran z powodzeniem operacji – jeśli wszystko poszło dobrze. Jeśli nie… zależy od Wallet Providera lub dostawcy aplikacji, przeważnie istnieją mechanizmy, które pozwalają na ponowienie tokenizacji w określony sposób.

Od teraz możecie płacić w POS: wystarczy przyłożyć odblokowany telefon do urządzenia w sklepie i voila! Kiedy Wy wydawaliście pieniądze, telefon wymienił z POS niezbędny komplet danych do zrealizowania transakcji, w tym klucz transakcyjny – dla każdej jednej transakcji zużywany jest jeden klucz transakcyjny. Kiedy ich ilość spadnie do 0 lub skonfigurowanego wcześniej przez Wallet Providera minimum, telefon zacznie łączyć się z Internetem by pobrać nowy komplet kluczy. Bez kluczy transakcyjnych nie można wykonać transakcji.

Kwestie komunikacyjne POS<>Acquirer<>WalletPRovider<>Issuer<>Visa/MasterCard pominę bo nic nie wniosą do tematu, powiem tylko tyle, że kiedy informacja o transakcji wychodzi od Visa/MasterCard i trafia do banku, bank widzi ją jako normalną transakcję kartową – nie ma mowy o przesyłaniu tokenów, kluczy transakcyjnych etc. Zamianą kluczy i tokenu na informację zrozumiałą dla banku zajmuje się Visa/MasterCard – lub sam bank jeśli korzysta z rozwiązania stworzonego przez siebie lub kupionego od zewnętrznej firmy.

HCE a rozwiązania „customowe”.

Na polskim rynku, jak i na rynku światowym istnieje wiele firm, które dostarczają swoich rozwiązań tokenizacyjnych. Jaka jest różnica? Głównie taka, że dany system jest robiony pod konkretny bank i ma spełniać jego wymagania biznesowe. Czy takie rozwiązanie jest lepsze lub gorsze? Ciężko powiedzieć bo… wszystkie działają. Na pewno różnicą jest tutaj koszt implementacji oraz utrzymania takiego systemu: w przypadku rozwiązań customowych jest droższe, ale w wielu przypadkach szybsze w integracji z istniejącym już przecież systemem kartowym w banku. Jednak uważam, że gdyby banki, które zakupiły „customy” przyjrzały się lepiej rozwiązaniom przygotowanym bezpośrednio przez Visa i MasterCard – na customy nawet by nie splunęły (koszty, koszty i jeszcze raz koszty).


Chińskie Cuda

Na wielu telefonach wschodzących marek chińskich, mimo spełnienia podstawowych wymagań hardware`owych HCE nie zadziała. Dla czego?

Powodów jest kilka, ale wszystko sprowadza się do jednego magicznego słowa: software.

Kiedy instalujecie aplikację Wallet Providera lub banku, Wasz telefon jest również sprawdzany pod względem obecnego w Waszym telefonie romu. Są wykonywane testy na roota (kilka, kilkanaście testów – w zależności od banku, jeśli przeczytacie gdzieś, że bezpieczeństwo aplikacji banku leży, natychmiast uciekajcie). Na podstawie tych wyników podejmowana jest decyzja, czy Wasz telefon może korzystać w pełni z aplikacji mobilnej lub w ograniczony sposób (poprzez np. odcięcie dostępu do niektórych funkcjonalności). W przypadku HCE i wykryciu roota, żaden bank nie powinien umożliwić stokenizowania karty. Różnego rodzaju testy pokazały, że telefon z tak zmodyfikowanym softem jest bardzo łatwo sklonować – dzięki temu potencjalny złodziej posiada praktycznie 1:1 kopię telefonu wraz z zawartymi w nim informacjami, w tym informacją o tokenie i kluczu transakcyjnym. Jeśli test na roota nie będzie jednoznaczny, każda aplikacja powinna zabronić dostępu do tej funkcjonalności, a departament bezpieczeństwa banku powinien to zanalizować i znaleźć rozwiązanie na poprawienie skuteczności testów by maksymalnie ograniczyć ryzyko. Żadne bank ani Wallet Provider nie weźmie na siebie odpowiedzialności za Wasze pieniądze, kiedy instrumentem płatniczym staje się Wasz telefon, na którym jest zmodyfikowane oprogramowanie.

Najbardziej restrykcyjnym zabezpieczeniem jakie jest wykorzystywane to SafetyNet – narzędzie od Google, które sprawdza… właściwie nie wiadomo do końca co, bo w dokumentacji tego rozwiązania (można je zaimplementować w każdej aplikacji) nie ma jednoznacznej informacji. SafetyNet na danym urządzeniu wykonuje szereg testów (min. Kompatybilności), zaszyfrowane wyniki wysyła na serwer, który to odsyła wyniki testu do telefonu. Jeśli test wyszedł negatywnie – HCE nie włączycie.

Bezpieczeństwo i jeszcze raz bezpieczeństwo. Chodzi o Wasze pieniądze. Żaden WalletProvider ani bank nie pozwoli sobie tutaj na żadne ryzyko.

Jak sami dobrze wiecie, większość tych telefonów od Myfriendów posiada na tyle zmodyfikowane i niepewne oprogramowanie (pod względem bezpieczeństwa), czasami też root jako „funkcjonalność” że wrzucanie na taki telefon danych wrażliwych uważam osobiście za przejaw strasznej głupoty. Być może są tutaj jacyś panowie techniczni, którzy mnie „zaminusują” mówiąc jakie to jest bezpieczne, lub jak bardzo mają wtedy kontrolę nad swoim telefonem, ale powiem Wam jedno: na własne oczy widziałem jak człowiek z labolatorium wziął zrootowany telefon i zwyczjanie sklonował – przenosząc całą zawartość na drugi telefon (akurat ten drugi to Nexus 4 jak dobrze pamiętam). A zajęło mu to ok 10 minut. Następnie tym Nexusem wykonał poprawną transakcję w POS.

Decyzja należy do Wallet Providera, banku, a jeśli oni „zezwolą” bo nie są w stanie roota wykryć – wtedy decyzja należy do Was.

Ja osobiście nie polecam.

Jak się zabezpieczyć?

Nie macie zbyt wielu możliwości na zabezpieczenie, ale są takie, który wydaje mi się – są wystarczające.

Wystarczy blokada ekranu poprzez: PIN, „wzorek”, odcisk palca lub wszelkiej innej maści biometria. To wystarczy, żeby zniechęcić potencjalnego złodzieja telefonu – w razie gdyby spróbował transakcję takim telefonem wykonać.

Pamiętajcie, że:

- bez włączonego ekranu telefonu

- bez odblokowanego urządzenia po włączeniu ekranu (chociaż też nie wszędzie – zależy od polityki bezpieczeństwa banku lub Wallet Providera) transakcji HCE nie wykonacie. Więc info o przyłożeniu mobilnego POS do kieszeni gdzie trzymacie telefon i narobieniu transakcji można włożyć między bajki.

Na koniec jeszcze mała uwaga na temat zewnętrznych Walletów typu Android Pay i inne Paye, które za chwilę namnożą się na rynku usług finansowych.

Jednym z powodów, dla którego banki integrują to rozwiązanie jest… swego rodzaju prestiż. Oto bank wprowadza do oferty usługę, o której jest głośno, której klienci pragną, a roboty przy tym nie jest zbyt wiele. Wszystko fajnie: bank może pochwalić się logo Android Pay na swoim WWW, klient dostaje super usługę, która pozwala na płacenie jego wypasionym smartfonem. W czym problem?

A no w tym, że pożegnajcie się z prywatnością jeśli wykonujecie transakcje tym telefonem gdzie kartę macie stokenizowaną przez Wallet Providera, który nie jest Waszym bankiem. Chodzi o transacje. W przypadku kiedy bank jest jednocześnie Wallet Providerem (np. PeKaO, Millennium) informacje o transakcjach (kwota, czas, miejsce, w niektórych przypadkach nawet co zostało kupione) jest przekazywana tylko do MasterCard/Visa (jako, że przez nich leci autoryzacja) oraz do banku. W tym przypadku informacje o Waszej transakcji są dostępne tylko dla Was, banku i MasterCard/Visa. W przypadku kiedy Wallet Providerem jest „coś tam Pay”, takie informacje przelatują również przez niego. Może nie dosłownie, ale „coś tam Pay” ma do nich dostęp poprzez integrację z MasterCard i Visa – która do działania usługi jest konieczna. Wallet Providerzy nie otrzymują informacji o transakcjach od banku – nie ma takiej możliwości, Wallet Provider ciągnie je od MasterCarda/Visy. Do czego? Np. do tego, żeby po transakcji wysłać Wam fajne podsumowanie transakcji. Czy je gromadzi? Nie wiadomo. Ale pomyślcie, że Google daje Wam i bankowi coś za darmo…

Wszystkich korzystającym z Android Paya i w przyszłości innych „payów” życzę trafnych wyników wyszukiwania i skutecznych reklam targetowanych ;)

Korzystanie z serwisu oznacza akceptację Regulaminu. Prywatność. Copyright – 1999-2018 INTERIA.PL, wszystkie prawa zastrzeżone.