Přejít na hlavní obsah

Digital Credentials API vysvětleno

Digital Credentials API je dohoda, která webu umožňuje požádat o doklad přímo vaši peněženku, a to přes prohlížeč a operační systém zařízení, které už držíte v ruce. Na telefonu, ve kterém máte peněženku, se neobjeví žádný QR kód a nejste posláni do jiné aplikace a zpět. Jednou klepnete, telefon vám ukáže, kdo žádá, a vy rozhodnete. Na notebooku zobrazí prohlížeč vlastní QR kód, aby se spojil s vaším telefonem.

Oklika, kterou odstraňuje

Web, který chtěl něco od peněženky, musel dosud nějak dostat požadavek až k ní. V praxi to znamenalo umístit na stránku QR kód nebo otevřít odkaz, který návštěvníka předá aplikaci a snad ho zase vrátí zpět. Obojí funguje a obojí v každém kroku ztrácí lidi.

Nejhorší je to na telefonu, kde je QR kód na stejném zařízení jako fotoaparát, kterým by se měl naskenovat. Digital Credentials API tuto mezeru uzavírá, protože požadavek mohou přenést samy prohlížeč a operační systém, které už vědí, jaké peněženky v zařízení jsou.

Na stejném zařízení

Návštěvník používá telefon, ve kterém je peněženka. Právě tady Digital Credentials API úplně odstraňuje QR kód i přepínání mezi aplikacemi.

Mezi dvěma zařízeními

Návštěvník sedí u notebooku a peněženka je v telefonu, takže je stále potřeba je nějak propojit. Rozdíl je v tom, že tento kód může zobrazit a spravovat sám prohlížeč.

Jak to vypadá v praxi

Pro návštěvníka je to jediné klepnutí na stránce, na které už je. V pozadí prohlížeč předá požadavek operačnímu systému, ten najde peněženky, které na něj mohou odpovědět, a peněženka zobrazí požadavek ke schválení dřív, než se cokoli sdílí.

1. Web

Požádá prohlížeč o doklad, místo aby zobrazil QR kód nebo otevřel aplikaci

2. Prohlížeč a operační systém

Zjistí, které peněženky v zařízení obsahují něco vyhovujícího, a nabídne jen ty

3. Držitel

Vidí, kdo a o co žádá, vybere peněženku a schválí, nebo odmítne

4. Opět web

Obdrží schválenou odpověď na stejné stránce, kterou návštěvník vůbec neopustil

Jedno klepnutí, jedna stránka. Webu se nic neodešle, dokud to držitel neschválí.

Proč záleží na tom, že je zapojen prohlížeč

QR kód je kus papíru nebo obrázek na obrazovce a nedokáže říct, kdo ho tam umístil. Na tom stojí celý phishing přes QR kódy: útočník kód vymění, peněženka se otevře a požadavek vypadá úplně normálně, protože nic v procesu neví, odkud skutečně přišel.

Když požadavek prochází prohlížečem, je to právě prohlížeč, kdo peněžence sděluje, který web žádá, a nelze ho přimět ke lži. Peněženka může držiteli ukázat skutečný web a odpověď lze k tomuto webu svázat, takže kopie zachycená jinde je k ničemu. To je citelné snížení rizika podvodu, nejen plynulejší obrazovka.

Jak to zapadá do OpenID4VP a EUDI Wallet

Snadno to vypadá jako další standard, mezi kterými je třeba vybírat. Tak to není. OpenID4VP zůstává jazykem, kterým spoléhající se strana říká, co potřebuje, a čte odpověď, kterou dostane zpět. Digital Credentials API je prostě lepší cesta, po které tento rozhovor putuje, nejvíce tehdy, když se vše odehrává na jednom zařízení.

Totéž platí pro samotný doklad. Atestace z EUDI Wallet nebo mdoc dorazí přesně ve stejném formátu, v jakém by dorazily přes naskenovaný kód, takže kontroly, které ověřovatel už provádí, se nemění. Tým získá možnost okliku vynechat, aniž by za ní cokoli přestavoval.

Podpora přichází prohlížeč po prohlížeči a platforma po platformě, ne všude najednou, a proto ji spoléhající se strany zavádějí vedle cesty přes skenování, nikoli místo ní. Praktický přístup je používat API tam, kde ho zařízení nabízí, jinde se vrátit ke kódu a nechat tuto záložní cestu s rostoucím pokrytím postupně zaniknout.

Co to znamená pro vás

Spoléhající se strana

Méně lidí proces opustí, protože kroky, ve kterých dříve odpadali, zmizely, a prohlížeč peněžence sdělí, kdo skutečně jste, čímž odpadá jedna cesta pro phishing.

Držitel peněženky

Jedno klepnutí na stránce, kde už jste, pravdivé jméno toho, kdo žádá, a žádná možnost, aby web zjistil, jaké peněženky máte, pokud nesouhlasíte.

Poskytovatel peněženky

Operační systém nabídne vaši peněženku pokaždé, když obsahuje něco vyhovujícího, takže to, zda vás lidé najdou, už nezávisí na tom, jestli se spoléhající se strana rozhodne na vás odkázat.

Technické prohloubení

Tato stránka vysvětluje, co technologie dělá a koho se týká. Naše dokumentace pro vývojáře se věnuje samotné implementaci: zprávám, polím a rozpracovaným příkladům, které integrační tým potřebuje.

Přečíst technickou dokumentaci

Související pojmy

Často kladené otázky

Znamená to konec QR kódů?

Ne, jen se zúží jejich účel a změní se, kdo je zobrazuje. Přenos požadavku z notebooku do telefonu stále potřebuje něco, co obě zařízení propojí, a API pokrývá i tento případ: kód zobrazí prohlížeč, místo aby si každý web stavěl vlastní. Úplně zmizí kód v telefonu, kde už peněženka je, protože tam byl vždy jen nouzovým řešením.

Uvidí web, které peněženky mám nainstalované?

Ne. Web popíše, o co žádá, a párování provede operační systém přímo v zařízení. Web se nikdy nedozví, které peněženky jsou nainstalované ani ve které byl vyhovující doklad. Když odmítnete, zjistí jen to, že se nic nevrátilo, a pro něj to vypadá úplně stejně, jako byste vyhovující doklad vůbec neměli.

Nahrazuje to OpenID4VP?

Ne, obojí funguje společně. OpenID4VP je jazyk, ve kterém je napsán požadavek i odpověď, a ten se tu nemění. Digital Credentials API je doručovací cesta v zařízení, která nahrazuje QR kód nebo vlastní odkaz. Spoléhající se strana, která už OpenID4VP používá, si ponechá stávající logiku požadavků i ověřování.

Co musí spoléhající se strana ve skutečnosti vytvořit?

Méně, než většina týmů čeká, protože se mění jen frontend. Požadavek, který vytváří váš backend, i kontroly, které provádí nad odpovědí, zůstávají stejné. Přidáte volání prohlížeče a, dokud se podpora teprve šíří, záložní cestu přes QR kód pro návštěvníky, jejichž prohlížeč nebo zařízení API zatím neumí použít.

Zdroje

  1. W3C Digital Credentials API
  2. OpenID for Verifiable Presentations (OpenID4VP)

Tato stránka má informativní charakter a nepředstavuje právní poradenství. Digital Credentials API se stále vyvíjí, proto pro závazné znění nahlédněte přímo do specifikace W3C.

Promluvte si s námi o integraci EUDI Wallet