Spring til hovedindhold

Forløb på samme enhed vs på tværs af enheder

Samme enhed og på tværs af enheder er de to former, den samme udveksling antager i OpenID4VCI og OpenID4VP: tegnebogen og siden på én telefon, overdraget med et deep link eller en omdirigering, eller siden på en computer og tegnebogen på en telefon, forbundet med en QR-kode.

I et forløb på samme enhed er tegnebogen og hjemmesiden eller appen på den samme telefon. Siden overdrager den besøgende med et deep link eller en omdirigering, tegnebogen åbner, personen godkender det, der bliver spurgt om, og tegnebogen sender vedkommende tilbage til siden ad samme vej. OpenID4VP returnerer præsentationen i fragmentet af den omdirigering, så den browsersession, der startede udvekslingen, også er den, der afslutter den.

I et forløb på tværs af enheder starter den besøgende i en browser på computeren, mens tegnebogen ligger på telefonen. Siden viser anmodningen som en QR-kode, tegnebogen scanner den og sender resultatet direkte til sidens backend i stedet for til browseren på skrivebordet. Siden på computeren skal derefter have besked om, at udvekslingen er afsluttet, typisk via polling eller en websocket, og derfor involverer et forløb på tværs af enheder altid backend.

Begge protokoller forudsætter, at du understøtter begge former. OpenID4VP nævner dem som sine to forløb, og OpenID4VCI beskriver den samme opdeling for et Credential Offer, der kan nå indehaveren på den enhed, tegnebogen er på, eller via en hvilken som helst anden kanal. Hvilket forløb en besøgende får, afgøres af, hvor vedkommende tilfældigvis er, ikke af en indstilling, du vælger én gang, så en offentligt tilgængelig tjeneste skal have begge veje til at virke.

Brugeroplevelsen adskiller sig i indsats og i måden, tingene fejler på. Samme enhed er den korteste vej: ingen anden skærm, intet kamera, ingen overdragelse mellem enheder. På tværs af enheder koster en scanning, men holder den besøgende på den store skærm, vedkommende allerede arbejdede på, og er den eneste mulighed, når tegnebogen ikke er på den enhed, arbejdet foregår på. Et forløb på samme enhed fejler, når der ikke er installeret en tegnebog, eller når deep linket åbner den forkerte app, mens et forløb på tværs af enheder fejler, når koden udløber, eller telefonen ikke har forbindelse.

Sikkerhedsforskellen er reel, og den taler for samme enhed. Fordi tegnebogen returnerer svaret via en omdirigering på sin egen enhed, har en angriber, der kopierer anmodningen, ingen mulighed for at hente svaret. Et svar på tværs af enheder rejser uden for browseren til sidens backend, så siden selv skal binde koden til den browsersession, der viste den. Uden den binding kan nogen tage en kode fra en session, de selv kontrollerer, lægge den foran et offer og få offerets credentials til at gennemføre angriberens login.

En QR-kode er også en flade for phishing, fordi selve koden intet viser om, hvem der spørger. Det er tegnebogen og ikke koden, der skal vise verifikatorens identitet og den præcise anmodning, før noget deles. IETF har en særskilt best current practice for denne type angreb i forløb på tværs af enheder, og OpenID4VCI tilføjer en transaktionskode til et tilbud af samme grund: koden ankommer via den kanal, der allerede har autentificeret indehaveren, så et tilbud, der opfanges undervejs, ikke kan indløses af andre.

Læs hele forklaringen

Denne side giver den korte definition. Vores forklaring viser, hvad det betyder i praksis: hvem der er involveret, hvordan det fungerer, og hvad der ændrer sig for din organisation.

Forløb på samme enhed og på tværs af enheder forklaret

Skal jeg understøtte begge forløb?

Hvis din tjeneste er åben for offentligheden, ja. Valget træffes af, hvor den besøgende er, og hvilken enhed der har tegnebogen, ikke af en præference, du konfigurerer. Et back office-værktøj, der kun bruges fra en administreret computer, kan starte med kun at understøtte på tværs af enheder, og en app, der kun findes på mobil, kan starte med kun samme enhed, men enhver tjeneste, som en borger eller kunde tilgår på egne præmisser, vil møde begge.

Er et forløb på tværs af enheder mindre sikkert end et på samme enhed?

Ikke i sig selv, men det kræver en beskyttelse, som samme enhed får gratis. I et forløb på samme enhed kommer svaret tilbage via en omdirigering på den enhed, tegnebogen kører på, så det kan ikke omdirigeres til en andens session. I et forløb på tværs af enheder sendes svaret til din backend uden om browseren, så du skal knytte QR-koden til den browsersession, der viste den, og afvise et resultat, der ankommer til en anden session.

Gjort ordentligt er de to sammenlignelige. Springes det over, er det forløbet på tværs af enheder, der kan videresendes til et offer.

Tilbage til ordlisten