Same-device- vs. cross-device-flyt
Same-device og cross-device er de to formene den samme utvekslingen tar i OpenID4VCI og OpenID4VP: lommeboken og nettstedet på én telefon, koblet sammen med en deep link eller en omdirigering, eller nettstedet på en datamaskin og lommeboken på en telefon, koblet sammen med en QR-kode.
I en same-device-flyt er lommeboken og nettstedet eller appen på samme telefon. Nettstedet sender besøkeren videre med en deep link eller en omdirigering, lommeboken åpnes, personen godkjenner det som etterspørres, og lommeboken sender dem tilbake til nettstedet samme vei som de kom. OpenID4VP returnerer fremvisningen i fragmentet til den omdirigeringen, slik at nettleserøkten som startet utvekslingen, også er den som avslutter den.
I en cross-device-flyt starter besøkeren i en nettleser på en datamaskin, mens lommeboken ligger på telefonen. Nettstedet viser forespørselen som en QR-kode, lommeboken skanner den og sender resultatet rett til nettstedets backend i stedet for til nettleseren på pulten. Siden på datamaskinen må deretter få beskjed om at utvekslingen er ferdig, som regel via polling eller over en websocket, og derfor involverer en cross-device-flyt alltid backend.
Begge protokollene forutsetter at dere støtter begge formene. OpenID4VP navngir dem som sine to flyter, og OpenID4VCI beskriver det samme skillet for et Credential Offer, som kan nå innehaveren på enheten lommeboken ligger på eller via en hvilken som helst annen kanal. Hvilken flyt en besøkende får, avgjøres av hvor de tilfeldigvis befinner seg, ikke av en innstilling dere velger én gang, så en tjeneste rettet mot publikum trenger at begge veiene fungerer.
Brukeropplevelsen skiller seg i innsats og i hvordan ting feiler. Same-device er den korteste veien: ingen ekstra skjerm, ingen kamera, ingen overgang mellom enheter. Cross-device koster en skanning, men holder besøkeren på den store skjermen de allerede jobbet på, og det er det eneste alternativet når lommeboken ikke er på enheten som gjør jobben. En same-device-flyt bryter sammen når ingen lommebok er installert eller deep linken åpner feil app, mens en cross-device-flyt bryter sammen når koden utløper eller telefonen mangler forbindelse.
Sikkerhetsforskjellen er reell, og den er i same-device sin favør. Fordi lommeboken returnerer svaret via en omdirigering på sin egen enhet, har en angriper som kopierer forespørselen, ingen mulighet til å hente svaret. Et cross-device-svar går utenfor båndet til nettstedets backend, så nettstedet selv må knytte koden til nettleserøkten som viste den. Uten den koblingen kan noen hente en kode fra en økt de kontrollerer, sette den foran et offer og få offerets credentials til å fullføre angriperens innlogging.
En QR-kode er også en flate for phishing, fordi koden i seg selv ikke viser leseren noe om hvem som spør. Det er lommeboken, ikke koden, som må vise verifikatorens identitet og den nøyaktige forespørselen før noe deles. IETF har en egen best current practice for denne typen angrep i cross-device-flyter, og OpenID4VCI legger til en transaksjonskode i et tilbud av samme grunn: koden kommer via kanalen som allerede har autentisert innehaveren, slik at et tilbud som fanges opp underveis, ikke kan løses inn av noen andre.
Les hele forklaringen
Denne siden gir den korte definisjonen. Forklaringen vår viser hva det betyr i praksis: hvem som er involvert, hvordan det fungerer og hva som endres for organisasjonen din.
Same-device- og cross-device-flyt forklartRelaterte begreper
Må jeg støtte begge flytene?
Hvis tjenesten deres er åpen for publikum, ja. Valget avgjøres av hvor besøkeren er og hvilken enhet lommeboken deres ligger på, ikke av en preferanse dere konfigurerer. Et back office-verktøy som bare brukes fra administrerte datamaskiner, kan starte med bare cross-device, og en app som kun finnes på mobil, kan starte med bare same-device, men enhver tjeneste en innbygger eller kunde bruker på egne premisser, vil møte begge.
Er en cross-device-flyt mindre sikker enn en same-device-flyt?
Ikke i seg selv, men den trenger en beskyttelse som same-device får gratis. I en same-device-flyt kommer svaret tilbake via en omdirigering på enheten lommeboken kjører på, så det kan ikke ledes over til en annens økt. I en cross-device-flyt sendes svaret til backend-en deres utenfor båndet, så dere må knytte QR-koden til nettleserøkten som viste den og avvise et resultat som kommer inn for en hvilken som helst annen økt.
Gjort riktig er de to sammenlignbare. Hoppes det over, er det cross-device-flyten som kan videreformidles til et offer.