Toky na tom istom zariadení a medzi zariadeniami vysvetlené
Zakaždým, keď peňaženka niečo preukazuje webovej stránke, musia sa tieto dve navzájom nájsť. Niekedy sú už v tom istom telefóne a odovzdanie je jediné ťuknutie. Inokedy je stránka na stole a peňaženka vo vrecku a jediným mostom medzi nimi je kód na obrazovke. To sú toky na tom istom zariadení a medzi zariadeniami a takmer každá praktická otázka o digitálnych povereniach sa nakoniec vracia k tomu, v ktorom z nich sa nachádzate.
Dve podoby tej istej výmeny
Oba toky majú spoločné všetko, na čom záleží z pohľadu firmy: kladie sa rovnaká otázka, schvaľuje ju ten istý človek a vracia sa rovnaký dôkaz. Nič z toho, o čo smiete žiadať, ani z toho, na čo sa potom môžete spoľahnúť, nezávisí od toho, v ktorom toku ste.
Líši sa trasa. V jednom je peňaženka na dosah jedného ťuknutia a odpoveď vracia priamo stránke, ktorá sa pýtala. V druhom odpoveď putuje z druhého zariadenia na vaše servery a stránke, na ktorú sa človek pozerá, treba oznámiť, že odpoveď dorazila.
Na tom istom zariadení
Jeden telefón. Webová stránka aj peňaženka na tej istej obrazovke.
- Návštevník je na stránke v prehliadači telefónu a chce niečo preukázať.
- Stránka otvorí peňaženku cez hlboký odkaz (deep link) alebo presmerovanie.
- Peňaženka ukáže, kto žiada a na aký účel, a návštevník to schváli.
- Peňaženka presmeruje návštevníka späť na stránku s odpoveďou, v tej istej relácii prehliadača, v ktorej sa všetko začalo.
Medzi zariadeniami
Dve zariadenia. Webová stránka na počítači, peňaženka v telefóne.
- Návštevník je na stránke v prehliadači počítača a chce niečo preukázať.
- Stránka zobrazí QR kód, ktorý nesie žiadosť.
- Peňaženka v telefóne ho naskenuje, ukáže, kto žiada, a návštevník to schváli.
- Peňaženka pošle odpoveď do backendu stránky a ten oznámi stránke v počítači, že výmena je dokončená.
Kedy nastáva ktorý z nich
Vybrať si nemôžete. Zákazník, ktorý si cestou do práce otvorí vašu stránku na registráciu v telefóne, je v toku na tom istom zariadení. Ten istý zákazník, ktorý nasledujúce ráno dokončuje ten istý formulár pri stole, je v toku medzi zariadeniami. Peňaženka žije v telefóne, takže tok sa riadi tým, kde prebieha zvyšok práce.
Preto oba protokoly v európskom ekosystéme opisujú oba toky. Predloženie, pri ktorom niekoho žiadate, aby niečo preukázal, oba toky výslovne pomenúva. Vydávanie, pri ktorom niekomu odovzdávate poverenie, robí rovnaké rozlíšenie pre ponuku, ktorou sa začína: môže sa objaviť na zariadení s peňaženkou alebo prísť akoukoľvek inou cestou, až po list s vytlačeným kódom.
Služba používaná len vo vnútri vašej organizácie na spravovaných počítačoch môže rozumne začať s jedným tokom. Všetko, k čomu sa občan alebo zákazník dostane podľa vlastných podmienok, potrebuje oba, a služba, ktorá funguje len jedným spôsobom, bude nahlásená ako pokazená, nie ako nepodporovaná.
Čo ktorý z nich stojí používateľa
Tok na tom istom zariadení je kratšia cesta. Žiadna druhá obrazovka, žiadna kamera, žiadne prezeranie z jedného zariadenia na druhé, a človek skončí tam, kde začal. Keď zlyhá, zvyčajne zlyhá skoro a viditeľne: nie je nainštalovaná peňaženka alebo odkaz otvorí niečo, čo peňaženkou vôbec nie je.
Tok medzi zariadeniami stojí jedno naskenovanie, ale prináša skutočný prínos. Človek zostáva na veľkej obrazovke, kde vypĺňal dlhý formulár, čítal zmluvu alebo porovnával možnosti, a do telefónu sa presunie len samotný dôkaz. Pri všetkom, čo si vyžaduje viac než minútu písania, je to lepšie miesto.
Jeho zlyhania sú tichšie a oplatí sa na ne pamätať už pri návrhu. Kód, ktorého platnosť vypršala, kým niekto hľadal telefón, telefón bez signálu, kamera, ktorá nezaostrí. Stránka s kódom by mala uviesť, ako dlho kód platí, ponúknuť nový bez straty formulára pod ním a nikdy nenechať človeka hádať, či sa niečo stalo.
Kde sa naozaj líšia: bezpečnosť
Pri toku na tom istom zariadení sa odpoveď vracia cestou, ktorou človek odišiel: presmerovaním na zariadení, kde beží peňaženka, do relácie prehliadača, ktorá výmenu začala. Kto si žiadosť skopíruje zo svojej obrazovky, nemá ako získať výsledok, pretože ten sa doručí na zariadenie, na ktorom prebehlo schválenie.
Pri toku medzi zariadeniami sa odpoveď cez prehliadač vôbec nevracia. Putuje z telefónu na vaše servery, mimo dohľadu stránky, ktorá kód zobrazila. V tom je medzera: ak kód neviažete na reláciu, ktorá ho zobrazila, vaša služba nedokáže rozlíšiť človeka pred sebou od niekoho, kto ten istý kód podstrčil obeti a čakal.
Tento útok má meno aj nápravu. Kód musí patriť jednej a iba jednej relácii a výsledok, ktorý príde pre akúkoľvek inú reláciu, sa musí odmietnuť. Pri návrhu je to pár riadkov premýšľania, a ak sa to vynechá, je to známa diera. Preto IETF napísala osvedčený postup (best current practice) pre toky medzi zariadeniami namiesto toho, aby to nechala na každú implementáciu.
Druhým rizikom je phishing a týka sa samotného kódu. Čiernobiely štvorec človeku nič nepovie o tom, kto je na druhej strane, takže kód vytlačený na nálepke a prilepený cez skutočný je reálny útok. Obranou je, že organizáciu, ktorá žiada, pomenuje a presne vymenuje, čo chce, peňaženka, nie kód, a to ešte pred zdieľaním čohokoľvek. Vydávanie pridáva ešte jeden zámok: ponuka môže vyžadovať krátky kód doručený kanálom, ktorý už človeka identifikoval, takže ponuku zachytenú cestou nemôže uplatniť nikto iný.
Čo to znamená pre vás
Spoliehajúca sa strana
Počítajte s oboma tokmi od začiatku. Práca navyše je vo vašom front-ende a vo viazaní kódu na reláciu, nie v druhej integrácii, a dodatočné doplnenie tejto väzby je práve časť, ktorá sa pokazí.
Vydavateľ
Rozhodnite, ako sa vaša ponuka dostane k ľuďom. Na obrazovke vedľa prihlásenia, v e-maile alebo na papieri: každý spôsob skončí v inom toku a tie, ktoré opúšťajú váš kanál, potrebujú na uplatnenie samostatný kód.
Držiteľ peňaženky
Čítajte, čo ukazuje peňaženka, nie čo tvrdí stránka alebo kód. Peňaženka je jediné miesto, ktoré pomenuje, kto žiada a čo chce, a je to posledný bod, v ktorom môžete povedať nie.
Súvisiace pojmy
Často kladené otázky
Kto rozhoduje, ktorý tok sa použije?
Rozhoduje situácia, nie nastavenie. Ak je človek už na zariadení, na ktorom má peňaženku, stránka ho odovzdá priamo. Ak sedí pri počítači a peňaženku má vo vrecku, jedinou cestou medzi nimi je kód na naskenovanie. Verejne dostupná služba sa s oboma prípadmi stretne už v prvom týždni.
Znamená podpora oboch tokov, že všetko postavíme dvakrát?
Nie. Žiadosť, ktorú posielate, aj odpoveď, ktorú kontrolujete, sú v oboch prípadoch rovnaké. Líši sa len to, ako sa žiadosť dostane do peňaženky a ako sa odpoveď vráti na vašu stránku: presmerovaním, ktoré prehliadač vykoná, alebo kódom na obrazovke spolu so spôsobom, ako sa stránka dozvie, že výmena skončila. V praxi je to jedna cesta navyše vo vašom front-ende, nie druhá integrácia.
Je bezpečné použiť na to QR kód?
Je bezpečné, ak je výmena okolo neho postavená správne. Samotný kód človeku nič nepovie o tom, kto žiada, preto musia platiť dve veci: peňaženka musí ešte pred zdieľaním čohokoľvek ukázať totožnosť žiadajúcej organizácie a vaša služba musí odmietnuť odpoveď, ktorá prišla pre inú reláciu, než je tá, ktorá kód zobrazila. Obe sú bežnou praxou a obe sú opísané v špecifikáciách.
Je kontrola pri prepážke tokom medzi zariadeniami?
Nie, to je tretí prípad. Tok na tom istom zariadení aj tok medzi zariadeniami opisujú výmenu cez internet. Kontrola tvárou v tvár, keď sa dve zariadenia držia vedľa seba, namiesto toho používa štandard pre blízku komunikáciu cez Bluetooth alebo NFC. Pre človeka s telefónom v ruke to vyzerá podobne, ale cez vašu webovú stránku nič neprechádza.
Zdroje
Táto stránka má informatívny charakter a nepredstavuje právne poradenstvo. Pre záväzné usmernenie siahnite priamo po špecifikáciách OpenID a IETF.