Preskočiť na hlavný obsah

Tok na tom istom zariadení vs. tok medzi zariadeniami

Tok na tom istom zariadení a tok medzi zariadeniami sú dve podoby tej istej výmeny v OpenID4VCI a OpenID4VP: peňaženka a stránka v jednom telefóne, odovzdané cez hlboký odkaz (deep link) alebo presmerovanie, alebo stránka na počítači a peňaženka v telefóne, prepojené QR kódom.

Pri toku na tom istom zariadení sú peňaženka a webová stránka či aplikácia v tom istom telefóne. Stránka odovzdá návštevníka cez hlboký odkaz alebo presmerovanie, peňaženka sa otvorí, človek schváli, o čo sa žiada, a peňaženka ho vráti späť na stránku cestou, ktorou prišiel. OpenID4VP vracia predloženie vo fragmente tohto presmerovania, takže výmenu dokončí tá istá relácia prehliadača, ktorá ju začala.

Pri toku medzi zariadeniami návštevník začína v prehliadači na počítači, zatiaľ čo peňaženku má v telefóne. Stránka vykreslí žiadosť ako QR kód, peňaženka ho naskenuje a výsledok pošle priamo do backendu stránky, nie do prehliadača na stole. Stránke v počítači potom treba oznámiť, že výmena skončila, zvyčajne opakovaným dopytovaním (polling) alebo cez websocket, a preto tok medzi zariadeniami vždy zahŕňa backend.

Oba protokoly predpokladajú, že podporujete obe podoby. OpenID4VP ich pomenúva ako svoje dva toky a OpenID4VCI opisuje rovnaké rozdelenie pre Credential Offer, ktorá sa k držiteľovi môže dostať na zariadení s peňaženkou alebo akýmkoľvek iným kanálom. Ktorý tok návštevník dostane, rozhoduje to, kde sa práve nachádza, nie nastavenie, ktoré raz zvolíte, takže verejná služba potrebuje, aby fungovali obe cesty.

Používateľský zážitok sa líši námahou aj spôsobmi zlyhania. Tok na tom istom zariadení je kratšia cesta: žiadna druhá obrazovka, žiadna kamera, žiadne odovzdávanie medzi zariadeniami. Tok medzi zariadeniami stojí naskenovanie, ale nechá návštevníka na veľkej obrazovke, na ktorej už pracoval, a je jedinou možnosťou, keď peňaženka nie je na zariadení, na ktorom sa pracuje. Tok na tom istom zariadení zlyhá, keď nie je nainštalovaná peňaženka alebo hlboký odkaz otvorí nesprávnu aplikáciu, zatiaľ čo tok medzi zariadeniami zlyhá, keď kód vyprší alebo telefón nemá pripojenie.

Bezpečnostný rozdiel je skutočný a hovorí v prospech toku na tom istom zariadení. Keďže peňaženka vracia odpoveď presmerovaním na vlastnom zariadení, útočník, ktorý skopíruje žiadosť, nemá ako získať odpoveď. Odpoveď pri toku medzi zariadeniami putuje mimo prehliadača do backendu stránky, takže samotná stránka musí viazať kód na reláciu prehliadača, ktorá ho zobrazila. Bez tejto väzby môže niekto vziať kód z relácie, ktorú ovláda, podstrčiť ho obeti a nechať jej poverenia dokončiť prihlásenie útočníka.

QR kód je aj priestorom pre phishing, pretože samotný kód čitateľovi nič neukazuje o tom, kto žiada. Totožnosť overovateľa a presnú žiadosť musí ešte pred zdieľaním čohokoľvek zobraziť peňaženka, nie kód. IETF má pre túto triedu útokov v tokoch medzi zariadeniami samostatný osvedčený postup (best current practice) a OpenID4VCI z rovnakého dôvodu pridáva k ponuke transakčný kód: kód prichádza kanálom, ktorý už držiteľa overil, takže ponuku zachytenú cestou nemôže uplatniť nikto iný.

Prečítajte si úplné vysvetlenie

Táto stránka uvádza krátku definíciu. Naše vysvetlenie ukazuje, čo to znamená v praxi: kto je zapojený, ako to funguje a čo sa zmení pre vašu organizáciu.

Toky na tom istom zariadení a medzi zariadeniami vysvetlené

Musím podporovať oba toky?

Ak je vaša služba verejná, áno. O výbere rozhoduje to, kde je návštevník a na ktorom zariadení má peňaženku, nie preferencia, ktorú nastavíte. Interný nástroj používaný len zo spravovaného počítača môže začať iba s tokom medzi zariadeniami a čisto mobilná aplikácia iba s tokom na tom istom zariadení, ale každá služba, ku ktorej sa občan alebo zákazník dostane podľa vlastných podmienok, sa stretne s oboma.

Je tok medzi zariadeniami menej bezpečný než tok na tom istom zariadení?

Sám osebe nie, ale potrebuje ochranu, ktorú tok na tom istom zariadení dostane zadarmo. Pri toku na tom istom zariadení sa odpoveď vracia presmerovaním na zariadení, kde beží peňaženka, takže ju nemožno odkloniť do cudzej relácie. Pri toku medzi zariadeniami sa odpoveď posiela mimo prehliadača do vášho backendu, takže musíte QR kód viazať na reláciu prehliadača, ktorá ho zobrazila, a odmietnuť výsledok, ktorý príde pre akúkoľvek inú reláciu.

Pri správnej implementácii sú oba toky porovnateľné. Ak sa tento krok vynechá, práve tok medzi zariadeniami možno prepojiť na obeť.

Späť na slovník