Naar hoofdinhoud

Same-device- vs cross-device-flow

Same-device en cross-device zijn de twee vormen die dezelfde uitwisseling aanneemt in OpenID4VCI en OpenID4VP: de wallet en de site op één telefoon, overgedragen met een deeplink of een redirect, of de site op een desktop en de wallet op een telefoon, verbonden via een QR-code.

In een same-device-flow staan de wallet en de website of app op dezelfde telefoon. De site geeft de bezoeker over met een deeplink of een redirect, de wallet opent, de persoon keurt goed wat er wordt gevraagd, en de wallet stuurt hem terug naar de site langs de weg waarlangs hij kwam. OpenID4VP geeft de presentatie terug in het fragment van die redirect, zodat de browsersessie die de uitwisseling startte ook degene is die haar afrondt.

In een cross-device-flow begint de bezoeker in een desktopbrowser terwijl de wallet op zijn telefoon staat. De site toont het verzoek als QR-code, de wallet scant die en stuurt het resultaat rechtstreeks naar de backend van de site in plaats van naar de browser op het bureau. Vervolgens moet de desktoppagina te horen krijgen dat de uitwisseling klaar is, meestal via polling of een websocket. Daarom is bij een cross-device-flow altijd de backend betrokken.

Beide protocollen gaan ervan uit dat u beide vormen ondersteunt. OpenID4VP noemt ze als zijn twee flows, en OpenID4VCI beschrijft dezelfde tweedeling voor een Credential Offer, die de houder kan bereiken op het apparaat waarop de wallet staat of via elk ander kanaal. Welke een bezoeker krijgt, hangt af van waar hij op dat moment is, niet van een instelling die u één keer kiest. Een publieke dienst heeft dus beide routes nodig.

De gebruikerservaring verschilt in moeite en in manieren van falen. Same-device is de kortere route: geen tweede scherm, geen camera, geen overdracht tussen apparaten. Cross-device kost een scan, maar houdt de bezoeker op het grote scherm waarop hij al werkte, en het is de enige optie als de wallet niet op het apparaat staat waarop het werk gebeurt. Een same-device-flow faalt als er geen wallet is geïnstalleerd of de deeplink de verkeerde app opent, een cross-device-flow faalt als de code verloopt of de telefoon geen verbinding heeft.

Het verschil in beveiliging is echt en valt uit in het voordeel van same-device. Omdat de wallet het antwoord teruggeeft via een redirect op zijn eigen apparaat, kan een aanvaller die het verzoek kopieert het antwoord op geen enkele manier ophalen. Een cross-device-antwoord reist out-of-band naar de backend van de site, dus de site moet zelf de code koppelen aan de browsersessie die hem toonde. Zonder die koppeling kan iemand een code nemen uit een sessie die hij beheert, die aan een slachtoffer voorleggen en de credentials van het slachtoffer de login van de aanvaller laten voltooien.

Een QR-code is ook een aanvalsvlak voor phishing, omdat de code zelf de lezer niets laat zien over wie er vraagt. De wallet, niet de code, moet de identiteit van de verifier en het precieze verzoek tonen voordat er iets wordt gedeeld. De IETF heeft een aparte best current practice voor deze klasse aanvallen in cross-device-flows, en OpenID4VCI voegt om dezelfde reden een transactiecode toe aan een aanbod: die code komt binnen via het kanaal dat de houder al heeft geauthenticeerd, zodat een onderschept aanbod door niemand anders kan worden ingewisseld.

Lees de volledige uitleg

Deze pagina geeft de korte definitie. Onze uitleg laat zien wat het in de praktijk betekent: wie erbij betrokken is, hoe het werkt en wat er verandert voor uw organisatie.

Same-device- en cross-device-flows uitgelegd

Moet ik beide flows ondersteunen?

Als uw dienst open staat voor het publiek: ja. De keuze wordt bepaald door waar de bezoeker is en op welk apparaat zijn wallet staat, niet door een voorkeur die u instelt. Een backofficetool die alleen vanaf een beheerde desktop wordt gebruikt, kan met alleen cross-device beginnen, en een app die alleen mobiel is kan met alleen same-device beginnen, maar elke dienst die een burger of klant op eigen gelegenheid bereikt, krijgt met beide te maken.

Is een cross-device-flow minder veilig dan een same-device-flow?

Niet per se, maar hij heeft een bescherming nodig die same-device gratis krijgt. In een same-device-flow komt het antwoord terug via een redirect op het apparaat waarop de wallet draait, zodat het niet naar de sessie van iemand anders kan worden omgeleid. In een cross-device-flow wordt het antwoord out-of-band naar uw backend gestuurd, dus u moet de QR-code koppelen aan de browsersessie die hem toonde en een resultaat weigeren dat voor een andere sessie binnenkomt.

Goed gedaan zijn de twee vergelijkbaar. Overgeslagen is de cross-device-flow degene die naar een slachtoffer kan worden doorgespeeld.

Terug naar de woordenlijst