Jak funguje ApplePay při platbě v obchodě?

Je to pár dní, co se platby přes Apple Pay objevily i v ČR. Spousty jablečných fanoušků na tuhle událost již dlouho čekaly. Protože návodů, jak Apple Pay využívat je nespočet, pojďme se podívat na něco zajímavějšího — jak Apple Pay funguje pod pokličkou a je opravdu tak bezpečné jak nám Apple tvrdí? Nečekejte žádné velké technikálie a podrobnosti — článek jsem se snažil psát pro ne-ajťáky a jeho cílem je shrnout a ukázat laikům na jakých principech Apple Pay funguje.

Secure Element (SE)

Secure element je malý čip, který se nachází v Apple zařízeních, na který se ukládají citlivá data aplikací.

Absence tohoto čipu může být důvodem, proč vaše zařízení platbu přes Apple Pay nepodporuje. Pokud máte starší model iPhonu, nemusí to být problém — jestliže používáte Apple Watch, můžete platbu realizovat pomocí nich i přesto, že váš telefon platby nepodporuje.

Informace uložené v Secure Elementu jsou převážně citlivá data aplikací. V případě Apple Pay to v žádném případě neznamená uložení údajů o kartě, o tom ale dále v článku.

Tyto informace jsou zařifrované a kompletně odstíněné od operačního systému (a tedy i od iCloudu). Jediná možnost, jak mohou být zpřístupněny je přes NFC čip a to pouze v případě, že byl uživatel autentizován. To je možné jedním z následujících způsobů:

  • Zadáním PINu
  • Použitím TouchID
  • Použitím Face ID
  • Autentizací na Apple Watch

Zpřístupnění má na starosti NFC controller (ještě o něm bude řeč…). Data jsou uloženy fyzicky na zařízení a Apple k nim nemá přístup. To je mimochodem důvod, proč je nutné karty přidávat na každém zařízení ručně — tedy nelze přidat kartu na jednom zařízení a čekat, že se nám synchronizují napříč ostatními.

Tokenizace

Tokenizace obecně je proces, při kterém jsou citlivá data nahrazeny za jejich bezpečnou alternativu (tokenu). Ke zjištění původních citlivých dat je kromě tokenu potřeba i klíč. Když to všechno smícháme dohromady (á, máme tady další potřebnou přísadu — algoritmus), jsme schopni dát dohromady původní data. Tedy platí jednoduchá rovnice:

Token + Klíč + Algoritmus = Původní data

Primitivní příklad, jak to může fungovat:

Token: 13–2–9–0–10–7–23–1–2–3

Klíč: 7–13–2–5–4–2–3–0–1–2

Algoritmus: Sečteme číslo tokenu a klíče pro každou pozici a vyjde nám číslo písmena v abecedě.

Šifrovací tabulka

… A původní data: TOKENIZACE

Vidíme, že pro správné zjištění údajů je třeba všech tří “přísad”. Ve skutečnosti je vše mnohem složitější a tahle ukázka slouží pouze jako AHA-příklad. 🙂

Jak funguje přidání karty do aplikace Wallet?

Kartu můžeme přidat dvěma způsoby.

  • Naskenováním přes fotoaparát
  • Manuálním zadáním identifikátorů karty (číslo karty, datum platnosti a CVV)

Zde je důležité poznamenat, že v případě naskenování karty se fotografie do zařízení nijak neukládá.

Po zadání údajů se tyto data odesílají na Apple. Ten k nim přidává další údaje (především jde o identifikaci zařízení, ze kterého je žádost odesílána. Identifikace zařízení je z hlediska bezpečnosti důležitá — zaručuje, že platba bude realizována pouze z daného zařízení a není možné ho nějakým způsobem napodobit. Dalším benefitem této identifikace je, že můžeme možnost platby kartou přes dané zařízení nadálku vypnout, což se může hodit např. v případě ztráty telefonu.

Další zastávkou je poskytovatel platební sítě/platební karty. Nejznámější je např. Visa nebo MasterCard. Teprve až tady se kontroluje, jestli jsou údaje karty správné. Pokud jsou, poskytovatel platební sítě si vykomunikuje další informace s bankou (např. zda-li banka Apple Pay podporuje…).

Je-li všechno tohle v pořádku, je na čase vytvořit token. Ten se v kontextu Apple Pay nazývá DAN (Device Account Number) a vytváří se pomocí údajů z karty a údajů o zařízení. Tento token se přiřadí k číslu karty na tzv. tokenizačním serveru. Vzhledem k tomu, že k úspěšnému realizování transakce potřebujeme další údaje (např. datum expirace nebo CVV, které se ani jedno na tokenizačním serveru neukládá) není tento server bezpečnostním rizikem.

Pro tuhle chvíli už nepotřebujeme údaje z karty. Poskytovatel platební sítě odešle vygenerované DAN Applu, který je přepošle na naše zařízení, kde se DAN uloží na Secure Element.

Jak funguje platba u obchodníka?

Zařízení ani terminál obchodníka nepracuje s údaji o kartě. Když zařízení detekuje přítomnost pole NFC, zobrazí výzvu k autentizaci. Tato autentizace je úplně stejná, jako když zadáváte PIN při běžném placení kartou.

Zde do hry vstupuje NFC Controller, který v případě, že byla autentizace úspěšná, propojí NFC čip a Secure Element. Díky tomu NFC čip předá terminálu obchodníka údaje, které jsou potřeba k platbě.

Tyto údaje jsou úplně stejné, jako když platíme kartou (s rozdílem, že místo čísla karty, které se používá při normálních platbách se použije DAN). Na konec datové informace se ještě připíše kód, který je unikátní pro každou platbu.

Tyto údaje jdou k poskytovateli platební sítě, který pozná, že DAN není pravé číslo karty a tak požádá tokenizační server, aby na základě tokenu zjistil skutečné číslo karty. Poté, co poskytovatel platební sítě získá skutečné číslo karty, má k dispozici již všechny potřebné informace a platba je realizována.

Během celé transakce neprobíhá komunikace přes Apple — placení je možné realizovat i bez připojení na internet. Celá transakce probíhá úplně stejně, jako při placení běžnou kartou s jediným rozdílem — místo čísla karty se předává DAN a číslo karty se získává až u poskytovatele platební sítě.

Jaké jsou tedy výhody oproti placení kartou?

  • Fyzické skrytí informací o kartě (nikdo při placení nevidí čísla na kartě)
  • Vyšší bezpečnost autentizace (za předpokladu, že používáte Face/Touch ID a máte silný PIN)
  • Autentizace je požadována vždy (nejen při částce nad 500 Kč)
  • Možnost výběru mezi více kartami z jednoho zařízení
  • Odpadá nutnost nosit karty u sebe (a pamatovat si hesla)
  • Při ztrátě je možné platbu ze zařízení zakázat (narozdíl od karty, kterou musíte zablokovat a čekat 14 dní na novou…)

Zdroje:

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Přesunout se na začátek