Hlavní navigace

Payment Request API: informace o platební kartě bezpečně v prohlížeči

Michal Černý

Proč vyvíjí W3C standard, který bude přímo konkurovat PayPalu? Jakou má motivaci snažit se o to, aby placení na internetu bylo co nejrychlejší a nejpohodlnější? A co vlastně určuje akční rádius takové organizace?

W3C je konsorcium, ve kterém hrají extrémně silnou roli velké firmy jako Google či Intel. Jakkoli motivace jeho vzniku byla zřejmě v devadesátých letech složitější a bohulibější, jeho dnešní podoba představuje platformu pro dohadování kompromisů mezi zájmy jednotlivých aktérů.

Pokud se budeme pozorněji dívat na činnost celé organizace, je jasné, že velké strategické projekty bez velkého potenciálu krátkodobé monetizace postupují velice pomalu a naopak ty, které mají potenciál vydělávat peníze a nebo je potřebují vybrané firmy, se vyvíjejí extrémně rychle.

Čím je ve skutečnosti W3C

Tím ale rozhodně nechci říci, že W3C jako takové je špatné, ale je třeba na něj nahlížet primárně jako na ekonomickou zájmovou organizaci, nikoli jako na nestranný úřad, který vydává doporučení k různým (primárně webovým) standardům. To, že W3C je relativně silný hráč, má pozitivní vliv na vývojáře i open-source komunitu jako takovou.

Není tomu tak dlouho, co Microsoft využíval svého monopolního postavení na trhu s prohlížeči a na standardy se příliš nedíval. Ještě před deseti lety bylo poměrně běžné, že web nefungoval ve všech prohlížečích stejně, že se užívaly technologie či značky mimo standard atp.

To se změnilo a W3C v tomto ohledu nesporně odvedlo zásadní kus práce. Ostatně i internet je jiný a nelze říci, že by existoval jeden monopolní prohlížeč nebo citelná snaha o obcházení standardů. I když právě toto lze čas od času (například v kontextu implementace DRM do HTML5) slyšet. Co tedy konsorcium reálně dělá a proč?

Podle webu se zaměřuje na:

  • Webový design a aplikace – tedy na technologie, které k vývoji webových aplikací různého druhu směřují a slouží (jako například HTML, CSS, SVG, Ajax)
  • Web věcí
  • Webová architektura je oblast, do které spadají protokol HTTP nebo URI.
  • Sémantické technologie jsou jedním z největších balíčků, které se zde řeší, zatím ale s malými výsledky v aplikační rovině (o kterou W3C zde také usiluje), spravuje protokoly a formáty pro liked data jako jsou RDF, SPARQL, OWL či SKOS.
  • XML standardy jsou řešené jako samostatný balíček a snahou konsorcia je, aby se řešily komplexně.
  • Webové služby jsou sekcí, které se snaží řešit komplexně téma výměny a předávání správ na webu, takže se překrývají s dalšími oblastmi například tím, že řeší také HTTP, XML, SOAP, WSDL, SPARQL a další.
  • Prohlížeče a nástroje na tvorbu obsahu jsou na první pohled asi nejměkčí oblastí, které se W3C věnuje. Snaží se zajistit to, aby web z každého zařízení fungoval správně, usiluje o univerzální využitelnost technologií, řeší se zde mobilní internet atp.

Současně je třeba diferencovat mezi standardy a měkčími doporučeními, ale také tím, co je ve stádiu draftu (tedy v nějaké přípravné fázi, ze které se ale nemusí nikdy dostat). A právě do stádia draftu se dostal Payment Request API.

Payment Request API

Payment Request API je standard, který by měl zjednodušit nakupování na internetu, ale tím, jak je postavený, má do budoucna možností daleko více, na příklad co se týče úpravy pro e-government. Vychází z myšlenky, že pokud dnes něco nakupujeme, potřebujeme neustále vyplňovat údaje o své platební kartě. To celý proces nákupu prodlužuje a činní nepohodlným, nepočítaje bezpečnostní problémy, které s tím mohou být spojené (jako je třeba vizuální čtení údajů někým, kdo sedí vedle). 

Placení je přitom mimořádně častou činností a bylo by proto dobré ho nějakým způsobem standardizovat. Spadá tak především do poslední oblasti zájmu W3C, snaží se podporovat snadné využívání internetu a prostupnost mezi různými zařízeními.

Druhá motivace spočívá v tom, že vaši platební kartu si již mohou zapamatovat buď obchodníci nebo platební brány. V ani jednom případě přitom není jasná kontrola nad daty a především jde o skutečnost, která může snadno posloužit k monopolizaci. Můžete se stát, že lidé budou raději nakupovat například u Amazonu, kde se obslouží jedním tlačítkem, než u konkurence, protože je menší a kartu tam registrovanou nemají.

Payment Request API tedy umožní uložit data o kartě přímo do prohlížeče a jednotlivé obchody či brány budou komunikovat přímo s ním. Půjde o standardizovaný postup, takže této cesty může využít každý obchod bez ohledu na své technické zázemí nebo velikost. Implementace vypadá poměrně jednoduše a výsledkem by měl být nákup na jedno kliknutí ve webovém prohlížeči (plus samozřejmě případně autorizace platby). Data jsou uložená přímo u uživatele, což by mělo být bezpečnější.

Payment Request API má z hlediska bezpečnosti ještě jednu výhodu – obchod se totiž k údajům o kartě vůbec nedostane. API mu jen odešle informace o tom, že platba proběhla v pořádku. Aktuálně je protokol podporován prohlížeči Chrome a Opera, v omezené míře (takže například u nás nefunkční, protože je fixován na Microsoft Wallet) také Edge. Problémy s implementací má naopak Firefox, který uvádí, že jde o nestabilní a vyvíjenou technologii a proto ji ještě nechce plně implementovat. V případě Safari jsou pak problémy dané spojením s Apple Pay, respektive s celým systémem placení od Apple.

Za vývoje standardu stojí Adrian Bateman z Microsoftu, Zach Koch a Domenic Denicola z Google, Roy McElmurry z Facebook a Marcos Cáceres z Mozilla. V tomto ohledu je postoj Mozilly zajímavý dvojnásob, protože se přímo na vývoji podílí a dalo by se čekat, že bude usilovat o maximální technologický náskok.

Na GitHub jsou pak ukázky užití technologie, včetně použití tlačítka pro platbu, včetně toho, jak ji napsat v JavaScriptu.

Během přidání karty do prohlížeče stačí vyplnit údaje o kartě a fakturační údaje. Tak, aby případná platba byla co nejrychlejší a nejpohodlnější.

Zatím bez pobouření

Návrh standardu zatím žádné pobouření nepřináší (snad až na velmi rezervovaný postoj Mozilly), jakkoli se objevují některé bezpečnostní problémy, je zatím práce na nich spíše věcná. W3C se v tomto ohledu daří postupovat lépe než v případě DRM, které bylo implementováno do HTML5., které se řeší až doposud. V září například na členství ve W3C resignovala Electronic Frontier Foundation.

Otázkou je, jaké možné problémy se mohou objevovat tam, kde dojde k útoku na konkrétní počítač nebo jeho krádeži, což ale není o tolik větší riziko než odcizení běžné fyzické karty. Jiným problémem může být otázka širšího využití standardu. Alespoň podle zmíněné ukázky z GitHubu je podporováno sedm základních poskytovatelů platebních karet, což může být také problematické. Payment Request API je možné také vnímat jako konkurenci k PayPalu, což samozřejmě také lze vnímat problematicky. Nijak se zatím neřeší otázka anonymity nebo kryptoměn.

Současně je jasné, že hlavní motivací, proč W3C chce Payment Request API prosadit, jsou peníze – klíčoví hráči mají na velkém placení na internetu zájem a každý nárůst pro ně je pochopitelně zajímavý. Také proto se asi bude vyvíjet a prosazovat rychleji než třeba podrobnější specifikace k sémantickému webu.

Našli jste v článku chybu?