Same-Device- vs. Cross-Device-Ablauf
Same-Device und Cross-Device sind die zwei Formen, die derselbe Austausch in OpenID4VCI und OpenID4VP annimmt: Wallet und Website auf einem Telefon, übergeben per Deep Link oder Redirect, oder die Website auf einem Desktop und die Wallet auf einem Telefon, verbunden über einen QR-Code.
In einem Same-Device-Ablauf liegen Wallet und Website oder App auf demselben Telefon. Die Website übergibt per Deep Link oder Redirect, die Wallet öffnet sich, die Person stimmt dem Angefragten zu, und die Wallet schickt sie auf dem Weg zurück zur Website, auf dem sie gekommen ist. OpenID4VP gibt die Präsentation im Fragment dieses Redirects zurück, sodass die Browsersitzung, die den Austausch gestartet hat, ihn auch abschließt.
In einem Cross-Device-Ablauf beginnt die Person in einem Desktop-Browser, während die Wallet auf ihrem Telefon liegt. Die Website stellt die Anfrage als QR-Code dar, die Wallet scannt ihn und sendet das Ergebnis direkt an das Backend der Website statt an den Browser auf dem Schreibtisch. Die Desktop-Seite muss dann erfahren, dass der Austausch abgeschlossen ist, meist per Polling oder über einen Websocket. Deshalb ist an einem Cross-Device-Ablauf immer das Backend beteiligt.
Beide Protokolle setzen voraus, dass Sie beide Formen unterstützen. OpenID4VP nennt sie als seine zwei Abläufe, und OpenID4VCI beschreibt dieselbe Aufteilung für ein Credential Offer, das den Inhaber auf dem Gerät mit der Wallet oder über jeden anderen Kanal erreichen kann. Welchen Ablauf eine Person bekommt, entscheidet sich danach, wo sie gerade ist, nicht nach einer Einstellung, die Sie einmal wählen. Ein öffentlicher Dienst braucht deshalb beide Wege.
Die Nutzererfahrung unterscheidet sich im Aufwand und in den Fehlerbildern. Same-Device ist der kürzere Weg: kein zweiter Bildschirm, keine Kamera, keine Übergabe zwischen Geräten. Cross-Device kostet einen Scan, hält die Person aber auf dem großen Bildschirm, an dem sie bereits gearbeitet hat, und ist die einzige Option, wenn die Wallet nicht auf dem Gerät liegt, auf dem die Arbeit stattfindet. Ein Same-Device-Ablauf scheitert, wenn keine Wallet installiert ist oder der Deep Link die falsche App öffnet, ein Cross-Device-Ablauf scheitert, wenn der Code abläuft oder das Telefon keine Verbindung hat.
Der Sicherheitsunterschied ist real und spricht für Same-Device. Weil die Wallet die Antwort per Redirect auf ihrem eigenen Gerät zurückgibt, hat ein Angreifer, der die Anfrage kopiert, keine Möglichkeit, die Antwort abzugreifen. Eine Cross-Device-Antwort gelangt out of band an das Backend der Website, also muss die Website selbst den Code an die Browsersitzung binden, die ihn angezeigt hat. Ohne diese Bindung kann jemand einen Code aus einer Sitzung nehmen, die er kontrolliert, ihn einem Opfer vorlegen und die Credentials des Opfers die Anmeldung des Angreifers abschließen lassen.
Ein QR-Code ist außerdem eine Angriffsfläche für Phishing, weil der Code selbst nichts darüber zeigt, wer fragt. Die Wallet, nicht der Code, muss die Identität des Verifizierers und die genaue Anfrage anzeigen, bevor etwas geteilt wird. Die IETF hat für diese Angriffsklasse in Cross-Device-Abläufen eine eigene Best Current Practice, und OpenID4VCI ergänzt ein Angebot aus demselben Grund um einen Transaktionscode: Er kommt über den Kanal, der den Inhaber bereits authentifiziert hat, sodass ein unterwegs abgefangenes Angebot von niemand anderem eingelöst werden kann.
Die vollständige Erklärung lesen
Diese Seite gibt die kurze Definition. Unsere Erklärung zeigt, was das in der Praxis bedeutet: wer beteiligt ist, wie es funktioniert und was sich für Ihre Organisation ändert.
Same-Device- und Cross-Device-Ablauf erklärtVerwandte Begriffe
Muss ich beide Abläufe unterstützen?
Wenn Ihr Dienst öffentlich zugänglich ist, ja. Die Wahl ergibt sich daraus, wo die Person ist und auf welchem Gerät ihre Wallet liegt, nicht aus einer Präferenz, die Sie konfigurieren. Ein Backoffice-Tool, das nur von einem verwalteten Desktop aus genutzt wird, kann nur mit Cross-Device starten, und eine reine Mobile-App nur mit Same-Device, aber jeder Dienst, den Bürger oder Kunden auf eigene Faust erreichen, begegnet beiden.
Ist ein Cross-Device-Ablauf weniger sicher als ein Same-Device-Ablauf?
Nicht grundsätzlich, aber er braucht einen Schutz, den Same-Device umsonst mitbringt. In einem Same-Device-Ablauf kommt die Antwort per Redirect auf dem Gerät zurück, auf dem die Wallet läuft, und kann deshalb nicht in die Sitzung eines anderen umgeleitet werden. In einem Cross-Device-Ablauf wird die Antwort out of band an Ihr Backend gesendet, also müssen Sie den QR-Code an die Browsersitzung binden, die ihn angezeigt hat, und ein Ergebnis ablehnen, das für eine andere Sitzung eintrifft.
Richtig umgesetzt sind beide vergleichbar. Ohne diesen Schutz ist der Cross-Device-Ablauf derjenige, der an ein Opfer weitergereicht werden kann.