<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-cross-device-security-11" category="bcp" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.30.0 -->
  <front>
    <title abbrev="CDFS">Cross-Device Flows: Security Best Current Practice</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-cross-device-security-11"/>
    <author initials="P." surname="Kasselmann" fullname="Pieter Kasselmann">
      <organization>SPIRL</organization>
      <address>
        <email>pieter@spirl.com</email>
      </address>
    </author>
    <author initials="D." surname="Fett" fullname="Daniel Fett">
      <organization>Authlete</organization>
      <address>
        <email>mail@danielfett.de</email>
      </address>
    </author>
    <author initials="F." surname="Skokan" fullname="Filip Skokan">
      <organization>Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date year="2025" month="July" day="22"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <keyword>security</keyword>
    <keyword>oauth2</keyword>
    <keyword>best current practice</keyword>
    <abstract>
      <?line 315?>

<t>This document describes threats against cross-device flows
along with practical mitigations, protocol selection guidance,
and a summary of formal analysis results identified as relevant to
the security of cross-device flows. It serves as a security guide
to system designers, architects, product managers, security
specialists, fraud analysts and engineers implementing cross-device flows.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Web Authorization Protocol Working Group mailing list (oauth@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/oauth/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/oauth-wg/oauth-cross-device-security"/>.</t>
    </note>
  </front>
  <middle>
    <?line 324?>

<section anchor="Introduction">
      <name>Introduction</name>
      <t>Protocol flows that span multiple end-user devices are in widespread use today. These flows are often referred to as cross-device flows. A common example is a user that uses their mobile phone to scan a QR code from their smart TV, giving an app on the TV access to their video streaming service. Besides QR codes, other mechanisms are often used such as PIN codes that the user has to enter on one of the devices, or push notifications to a mobile app that the user has to approve.</t>
      <t>In all cases, it is up to the user to decide whether to grant authorization or not. However, the QR code or PIN are transferred via an unauthorized channel, leaving it up to the user to decide in which context an authorization is requested. This may be exploited by attackers to gain unauthorized access to a user's resources.</t>
      <t>To accommodate the various nuances of cross-device flows, this document distinguished between cases where the cross-device flow is used to authorize access to a resource (cross-device authorization flows) and cases where the cross-device flow is used to transfer an existing session (cross-device session transfer flows).</t>
      <section anchor="cross-device-authorization">
        <name>Cross-Device Authorization</name>
        <t>Cross-device authorization flows enable a user to initiate an authorization
flow on one device (the Consumption Device) and then use a second, personally
trusted, device (Authorization Device) to authorize the Consumption
Device to access a resource (e.g., access to a service). The Device
Authorization Grant <xref target="RFC8628"/> and Client-Initiated Backchannel
Authentication <xref target="CIBA"/> are two examples of popular cross-device authorization flows.</t>
        <t>In these flows, the Consumption Device and the Authorization Device are not directly connected and there is no technical mechanisms for the Authorization Device and Consumption Device to establish mutual authentication. It is left to the user to decide whether the source of the authorization request (the Consumption Device) should be trusted before they scan a QR code, enter a user code, or accept an authorization request pushed to their Authorization Device. The transfer of the authorization request and context between the Consumption Device and Authorization device is done over an unauthenticated channel. The only mitigation against this unauthenticated channel is the user's judgement.</t>
        <t>Cross-Device Consent Phishing (CDCP) attacks exploit the unauthenticated channel
between the Consumption Device and Authorization Device using social engineering
techniques to gain unauthorized access to the user's data. Several publications
have emerged in the public domain (<xref target="Exploit1"/>, <xref target="Exploit2"/>, <xref target="Exploit3"/>, <xref target="Exploit4"/>,
<xref target="Exploit5"/>, <xref target="Exploit6"/>), describing how the unauthenticated channel can be
exploited using social engineering techniques borrowed from phishing. Unlike traditional
phishing attacks, these attacks don't harvest credentials. Instead, they skip the
step of collecting credentials by persuading users to grant authorization using
their Authorization Devices.</t>
        <t>Once the user grants authorization, the attacker has access to the user's
resources and in some cases is able to collect access and refresh tokens. Once in
possession of the access and refresh tokens, the attacker may use these tokens to
execute lateral attacks and gain additional access, or monetize the tokens by
selling them. These attacks are effective even when multi-factor authentication
is deployed, since the attacker's aim is not to capture and replay the credentials,
but rather to persuade the user to grant authorization.</t>
      </section>
      <section anchor="cross-device-session-transfer">
        <name>Cross-Device Session Transfer</name>
        <t>Session transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows, the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).</t>
        <t>The session may be transferred by showing the user a session transfer code on the Authorization Device, which is then entered on the Consumption Device. This flow may be streamlined by rendering the session transfer code as a QR code on the Authorization Device and scanned by the Consumption Device.</t>
        <t>The session transfer preserves state information, including authentication state, at the second device to avoid additional configuration and optimize the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application, or provision new credentials (e.g., <xref target="OpenID.SIOPV2"/>).</t>
        <t>In these cross-device session transfer flows, the channel between the Authorization Device and the Consumption Device is unauthenticated.</t>
        <t>Cross-Device Session Phishing (CDSP) attacks exploit the unauthenticated channel
between the Authorization Device and Consumption Device by using social engineering
techniques to convince the user to send the session transfer code to the attacker.
These attacks borrow techniques from traditional phishing attacks, but instead of collecting passwords, attackers collect session transfer codes and other artefacts that allow them to setup a session and then use it to access a user's data.</t>
      </section>
      <section anchor="defending-against-cross-device-attacks">
        <name>Defending Against Cross-Device Attacks</name>
        <t>This document provides guidance to implementers to defend against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks. This guidance includes:</t>
        <ol spacing="normal" type="1"><li>
            <t>Practical mitigations for susceptible protocols (<xref target="practical-mitigations"/>).</t>
          </li>
          <li>
            <t>Protocol selection guidance to avoid using susceptible protocols (<xref target="protocol-selection"/>).</t>
          </li>
          <li>
            <t>Results from formal analysis of susceptible protocols (<xref target="foundational-pillars"/>).</t>
          </li>
        </ol>
      </section>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>This specification uses the terms "access token", "refresh token",
"authorization server", "resource server", "authorization endpoint",
"authorization request", and
"client" defined by The OAuth 2.0 Authorization Framework <xref target="RFC6749"/>.</t>
      </section>
    </section>
    <section anchor="best-practices">
      <name>Best Practices</name>
      <t>This section describes the set of security mechanisms and measures to secure cross-device protools against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks that the OAuth working group considers best practices at the time of writing.</t>
      <ol spacing="normal" type="1"><li>
          <t>Implementers MUST perform a risk assessment before implementing cross-device flows, weighing the risks from Cross-Device Consent Phishing and Cross-Device Session Phishing attacks against benefits for users.</t>
        </li>
        <li>
          <t>Implementers SHOULD avoid cross-device flows if risks cannot be sufficiently mitigated.</t>
        </li>
        <li>
          <t>Implementers SHOULD follow the guidance provided in <xref target="protocol-selection"/> for protocol selection.</t>
        </li>
        <li>
          <t>Implementers MUST implement practical mitigations as listed in <xref target="practical-mitigations"/> that are appropriate for the use case, architecture, and selected protocols.</t>
        </li>
        <li>
          <t>Implementers SHOULD implement proximity checks as defined in <xref target="establish-proximity"/> if possible.</t>
        </li>
      </ol>
      <t>These best practices apply to the Device Authorization Grant (<xref target="RFC8628"/>) as well as other cross-device protocols such as the Client Initiated Backchannel Authentication <xref target="CIBA"/>, Self-Issued OpenID Provider v2 <xref target="OpenID.SIOPV2"/>, OpenID for Verifiable Presentations <xref target="OpenID.VP"/>, the Pre-Authorized Code Flow in (<xref target="OpenID.VCI"/>) and other cross-device protocols that rely on the user to authenticate the channel between devices.</t>
      <t><xref target="cross-device-flow-patterns"/> provides details about susceptible protocols and <xref target="cross-device-flow-exploits"/> provides attack descriptions. <xref target="practical-mitigations"/> provides details about the security mechanisms and mitigations, (protocol-selection) provides protocol selection guidance and <xref target="foundational-pillars"/> provides details from formal analysis of protocols that apply to cross device flows.</t>
    </section>
    <section anchor="cross-device-flow-patterns">
      <name>Cross-Device Flow Patterns</name>
      <t>Cross-device flows allow a user to start a flow on one device (e.g., a smart TV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to access the service that was running on the first device, or to perform an action such as authenticating or granting authorization before potentially passing control back to the first device.</t>
      <t>These flows typically involve using a mobile phone to scan a QR code
or enter a user code displayed on the first device (e.g., Smart
TV, Kiosk, Personal Computer or other electronic devices.).</t>
      <section anchor="cross-device-authorization-1">
        <name>Cross-Device Authorization</name>
        <t>In a cross-device authorization flow, a user attempts to access a service on one device, referred to as the Consumption Device, (e.g., a smart TV) and then uses a second device, referred to as the Authorization Device (e.g., a smartphone), to authorize access to a resource (e.g., access to a streaming service) on
the Consumption Device.</t>
        <t>Cross-device authorization flows have several benefits, including:</t>
        <ul spacing="normal">
          <li>
            <t>Authorization on devices with limited input capabilities: End-users can
authorize devices with limited input capabilities to access content (e.g.,
smart TVs, digital whiteboards, printers or similarly constrained devices).</t>
          </li>
          <li>
            <t>Secure authentication on shared or public devices: End-users can perform
authentication and authorization using a personally trusted device, without
risk of disclosing their credentials to a public or shared device.</t>
          </li>
          <li>
            <t>Ubiquitous multi-factor authentication: Enables a user to use multi-factor
authentication, independent of the device on which the service is being
accessed (e.g., a kiosk, smart TV or shared Personal Computer).</t>
          </li>
          <li>
            <t>Convenience of a single, portable, credential store: Users can keep all
their credentials in a mobile wallet or mobile phone that they already
carry with them.</t>
          </li>
        </ul>
        <t>There are three cross-device flow patterns for transferring the authorization request between the Consumption Device to the Authorization Device.</t>
        <ul spacing="normal">
          <li>
            <t><strong>User-Transferred Session Data Pattern:</strong> In the first pattern, the user initiates the authorization process with the authorization server by copying information from the Consumption Device to the Authorization Device, before authorizing an action. By transferring the data from the Consumption Device to the Authorization Device, the user transfers the authorization session. For example the user may read a code displayed on the Consumption Device and enter it on the Authorization Device, or they may scan a QR code displayed on the Consumption Device with the Authorization Device. The Device Authorization Grant (<xref target="RFC8628"/>) is an example of a cross-device flow that follow this pattern.</t>
          </li>
          <li>
            <t><strong>Backchannel-Transferred Session Pattern:</strong> In the second pattern, the OAuth client on the Consumption Device is responsible for transferring the session and initiating authorization on the Authorization Device via a backchannel with the Authorization Server. For example the user may attempt an online purchase on a Consumption Device (e.g., a personal computer) and receive an authorization request on their Authentication Device (e.g., mobile phone). The Client Initiated Backchannel Authentication <xref target="CIBA"/> is an example of a cross-device flow that follow this pattern.</t>
          </li>
          <li>
            <t><strong>User-Transferred Authorization Data Pattern:</strong> In the third pattern, the OAuth client on the Consumption Device triggers the authorization request via a backchannel with the Authorization Server. Authorization data (e.g., a 6 digit authorization code) is displayed on the Authorization Device, which the user transfers to Consumption Device (e.g., by manually entering it). For example the user may attempt to access data in an enterprise application and receive a 6 digit authorization code on their Authentication Device (e.g., mobile phone) that they enter on Consumption Device.</t>
          </li>
        </ul>
        <section anchor="utsdp">
          <name>User-Transferred Session Data Pattern</name>
          <t>The Device Authorization Grant (<xref target="RFC8628"/>) is an example of a cross-device flow that relies on the user copying information from the Consumption Device to the Authorization Device by either entering data manually or scanning a QR code. The figure below shows a typical example of this flow:</t>
          <artwork type="ascii-art"><![CDATA[
                              (B) Consumption Device
             +--------------+     Get QR/User Code  +---------------+
(A)User  +---|  Consumption |<--------------------->|               |
   Start |   |   Device     |(E) Grant Authorization| Authorization |
   Flow  +-->|              |<--------------------->|     Server    |
             +--------------+                       |               |
                    |                               |               |
                    | (C) Scan QR code              |               |
                    |         or                    |               |
                    |   enter User Code             |               |
                    v                               |               |
             +--------------+                       |               |
             | Authorization|                       |               |
             |    Device    |<--------------------->|               |
             |              |(D) User Authenticates |               |
             |              | and Authorize Access  |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: User-Transferred Session Data Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user takes an action on the Consumption Device by starting a purchase, adding a device to a network
or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The Consumption Device retrieves a QR code or user code from an Authorization Server.</t>
            </li>
            <li>
              <t>(C) The QR code or user code is displayed on the Consumption Device where the user scans the QR code
or enters the user code on the Authorization Device.</t>
            </li>
            <li>
              <t>(D) If the user is unauthenticated, they authenticate to the Authorization Server before granting authorization.</t>
            </li>
            <li>
              <t>(E) The Authorization Server issues tokens or grants authorization to the Consumption Device to access the user's resources.</t>
            </li>
          </ul>
        </section>
        <section anchor="btsp">
          <name>Backchannel-Transferred Session Pattern</name>
          <t>The Client Initiated Backchannel Authentication <xref target="CIBA"/> transfers the session on the backchannel with the Authorization Server to request authorization on the Authorization Device. The figure below shows an example of this flow.</t>
          <artwork type="ascii-art"><![CDATA[
                              (B) Backchannel Authorization
             +--------------+     Request           +---------------+
(A)User  +---|  Consumption |<--------------------->|               |
   Start |   |   Device     |(E) Grant Authorization| Authorization |
   Flow  +-->|              |<--------------------->|     Server    |
             +--------------+                       |               |
                                                    |               |
                                                    |               |
                                                    |               |
                                                    |               |
(D)User                                             |               |
  Authorize  +--------------+                       |               |
  Action +---| Authorization|                       |               |
         |   |    Device    |<--------------------->|               |
         +-->|              |(C) Request User       |               |
             |              |    Authorization      |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: Backchannel-Transferred Session Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user takes an action on the Consumption Device by starting a purchase, adding a device to a network or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The client on the Consumption Device requests user authorization on the backchannel from the Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server requests the authorization from the user on the user's Authorization Device.</t>
            </li>
            <li>
              <t>(D) If the user is unauthenticated, they authenticate to the Authorization Server before using their device to grant authorization.</t>
            </li>
            <li>
              <t>(E) The Authorization Server issues tokens or grants authorization to the Consumption Device to access the user's resources.</t>
            </li>
          </ul>
          <t>The Authorization Server may use a variety of mechanisms to request user authorization, including a push notification to a dedicated app on a mobile phone, or sending a text message with a link to an endpoint where the user can authenticate and authorize an action.</t>
        </section>
        <section anchor="utadp">
          <name>User-Transferred Authorization Data Pattern</name>
          <t>Examples of the user-transferred authorization data pattern include flows in which the Consumption Device requests the Authorization Server to send authorization data (e.g., a 6 digit authorization code in a text message, e-mail or mobile application) to the Authorization Device. Once the Authorization Device receives the authorization data, the user enters it on the Consumption Device. The Consumption Device sends the authorization data back to the Authorization Server for validation before gaining access to the user's resources. The figure below shows an example of this flow.</t>
          <artwork type="ascii-art"><![CDATA[
                              (B) Backchannel Authorization
             +--------------+     Request           +---------------+
(A)User  +---|  Consumption |<--------------------->|               |
   Start |   |   Device     |(E) Grant Authorization| Authorization |
   Flow  +-->|              |<--------------------->|     Server    |
             +--------------+                       |               |
                    ^                               |               |
                    | (D)User Enters                |               |
                    |    Authorization Data         |               |
                    |                               |               |
                    |                               |               |
             +--------------+                       |               |
             | Authorization|                       |               |
             |    Device    |<--------------------->|               |
             |              |(C) Send Authorization |               |
             |              |    Data               |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: User-Transferred Authorization Data Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user takes an action on the Consumption Device by starting a purchase, adding a device to a network or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The client on the Consumption Device requests user authorization on the backchannel from the Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server sends authorization data (e.g., a 6 digit authorization code) to the Authorization Device. Examples of mechanisms that may be used to distribute the authorization data include text messages, email or a mobile application.</t>
            </li>
            <li>
              <t>(D) The user enters the authorization data (e.g., the 6 digit authorization code) on the Consumption Device.</t>
            </li>
            <li>
              <t>(E) The Authorization Server issues tokens or grants authorization to the Consumption Device to access the user's resources.</t>
            </li>
          </ul>
          <t>The Authorization Server may choose to authenticate the user before sending the authorization data.</t>
        </section>
      </section>
      <section anchor="cross-device-session-transfer-1">
        <name>Cross-Device Session Transfer</name>
        <t>Session transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows, the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).</t>
        <t>The session transfer preserves state information, including authentication state, at the second device to avoid additional configuration and optimize the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application, or provision new credentials (e.g., <xref target="OpenID.SIOPV2"/>).</t>
        <section anchor="cross-device-session-transfer-pattern">
          <name>Cross-Device Session Transfer Pattern</name>
          <t>In this flow, the user is authenticated and starts the flow by authorizing the transfer of the session on the Authorization Device. The Authorization Device requests a session transfer code that may be rendered as a QR code on the Authorization Device. When the user scans the QR code or enters it on the Consumption Device where they would like the session to continue, the Consumption Device presents it to the Authorization Server. The Authorization Server then transfers the session to the Consumption Device. This may include transferring authentication and authorization state to optimize the user experience. This type of flow is used, for example, for adding new devices to networks, bootstrapping new applications, or provisioning new credentials. The Pre-Authorized Code Flow in (<xref target="OpenID.VCI"/>) is an instance of using this pattern to provision a new credential. The figure below shows a typical flow.</t>
          <artwork type="ascii-art"><![CDATA[
                              (B) Session Transfer
             +--------------+     Request           +---------------+
(A)User  +---| Authorization|---------------------->|               |
   Start |   |   Device     |(C) Session Transfer   |               |
   Flow  |   |              |    Code               | Authorization |
         +-->|              |<----------------------|     Server    |
             +--------------+                       |               |
                    |                               |               |
                    | (D) Scan QR code              |               |
                    |      or enter                 |               |
                    | Session Transfer Code         |               |
                    |                               |               |
                    v         (E) Present Session   |               |
             +--------------+     Transfer Code     |               |
             | Consumption  |---------------------->|               |
(G)User  +---|    Device    |                       |               |
Resumes  |   |              | (F) Return Session    |               |
Session  |   |              |     Context           |               |
         +-->|              |<----------------------|               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: Cross-Dvice Session Transfer Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user is authenticated on the Authorization Device and authorizes the transfer of the session to the Consumption device.</t>
            </li>
            <li>
              <t>(B) The client on the Authorization Device requests a session transfer code from the Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server responds with a session transfer code, which may be rendered as a QR code on the Authorization Device.</t>
            </li>
            <li>
              <t>(D) The user scans the QR code with the Consumption Device (e.g., their mobile phone), or enters the session transfer code on the target Consumption Device.</t>
            </li>
            <li>
              <t>(E) The client on the Consumption Device presents the session transfer code to the Authorization Server.</t>
            </li>
            <li>
              <t>(F) The Authorization Server verifies the session transfer code and retrieves the session context information needed to resume the session on the Consumption Device.</t>
            </li>
            <li>
              <t>(G) The user resumes the session and is able to access the information on the Consumption Device that they authorized on the Authorization Device.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="examples-of-cross-device-flows">
        <name>Examples of Cross-Device Flows</name>
        <t>Examples of cross-device flow scenarios include:</t>
        <section anchor="example-a1-authorize-access-to-a-video-streaming-service-user-transferred-session-data-pattern">
          <name>Example A1: Authorize Access to a Video Streaming Service (User-Transferred Session Data Pattern)</name>
          <t>An end-user sets up a new smart TV and wants to connect it to their favorite streaming service. The streaming service displays a QR code on the TV that the user scans with their mobile phone. The user is redirected to the streaming service provider's web page and asked to enter their credentials to authorize the smart TV to access the streaming service. The user enters their credentials and grants authorization, after which the streaming service is available on the smart TV.</t>
        </section>
        <section anchor="example-a2-authorize-access-to-productivity-services-user-transferred-session-data-pattern">
          <name>Example A2: Authorize Access to Productivity Services (User-Transferred Session Data Pattern)</name>
          <t>An employee wants to access their files on an interactive whiteboard in a conference room. The interactive whiteboard displays a URL and a code. The user enters the URL on their personal computer and is prompted for the code. Once they enter the code, the user is asked to authenticate and authorize the interactive whiteboard to access their files. The user enters their credentials and authorizes the transaction and the interactive whiteboard retrieves their files and allows the user to interact with the content.</t>
        </section>
        <section anchor="example-a3-authorize-use-of-a-bike-sharing-scheme-user-transferred-session-data-pattern">
          <name>Example A3: Authorize Use of a Bike Sharing Scheme (User-Transferred Session Data Pattern)</name>
          <t>An end-user wants to rent a bicycle from a bike sharing scheme. The bicycles are locked in bicylce racks on sidewalks throughout a city. To unlock and use a bicycle, the user scans a QR code on the bicycle using their mobile phone. Scanning the QR code redirects the user to the bicycle sharing scheme's authorization page where the user authenticates and authorizes payment for renting the bicycle. Once authorized, the bicycle sharing service unlocks the bicycle, allowing the user to use it to cycle around the city.</t>
        </section>
        <section anchor="example-a4-authorize-a-financial-transaction-backchannel-transferred-session-pattern">
          <name>Example A4: Authorize a Financial Transaction (Backchannel-Transferred Session Pattern)</name>
          <t>An end-user makes an online purchase. Before completing the purchase, they get a notification on their mobile phone, asking them to authorize the transaction. The user opens their app and authenticates to the service before authorizing the transaction.</t>
        </section>
        <section anchor="example-a5">
          <name>Example A5: Add a Device to a Network (Cross-Device Session Transfer Pattern)</name>
          <t>An employee is issued with a personal computer that is already joined to a network. The employee wants to add their mobile phone to the network to allow it to access corporate data and services (e.g., files and e-mail). The employee is logged-in on the personal computer where they initiate the process of adding their mobile phone to the network. The personal computer displays a QR code which authorizes the user to join their mobile phone to the network. The employee scans the QR code with their mobile phone and the mobile phone is joined to the network. The employee can start accessing corporate data and services on their mobile device.</t>
        </section>
        <section anchor="example-a6-remote-onboarding-user-transferred-session-data-pattern">
          <name>Example A6: Remote Onboarding (User-Transferred Session Data Pattern)</name>
          <t>A new employee is directed to an onboarding portal to provide additional information to confirm their identity on their first day with their new employer. Before activating the employee's account, the onboarding portal requests that the employee present a government issued ID, proof of a background check and proof of their qualifications. The onboarding portal displays a QR code, which the user scans with their mobile phone. Scanning the QR code invokes the employee's digital wallet on their mobile phone, and the employee is asked to present digital versions of an identity document (e.g., a driving license), proof of a background check by an identity verifier, and proof of their qualifications. The employee authorizes the release of the credentials and after completing the onboarding process, their account is activated.</t>
        </section>
        <section anchor="example-a7">
          <name>Example A7: Application Bootstrap (Cross-Device Session Transfer Pattern)</name>
          <t>An employee is signed into an application on their personal computer and wants to bootstrap the mobile application on their mobile phone. The employee initiates the cross-device flow and is shown a QR code in their application. The employee launches the mobile application on their phone and scans the QR code which results in the user being signed into the application on the mobile phone.</t>
        </section>
        <section anchor="example-a8-access-a-productivity-application-user-transferred-authorization-data-pattern">
          <name>Example A8: Access a Productivity Application (User-Transferred Authorization Data Pattern)</name>
          <t>A user is accessing a Computer Aid Design (CAD) application. When accessing the application, authorization data in the form of a 6 digit authorization code is sent to the user's mobile phone. The user views the 6 digit authorization code on their phone and enters it in the CAD application, after which the CAD application displays the user's most recent designs.</t>
        </section>
        <section anchor="example-a9-administer-a-system-backchannel-transferred-session-pattern">
          <name>Example A9: Administer a System (Backchannel-Transferred Session Pattern)</name>
          <t>A network administrator wants to access an adminstration portal used to configure network assets and deploy new applications. When attempting to access the service, the network administrator receives a notification in an app on their mobile device, requesting them to confirm access to the portal. The network administrator approves the request on their mobile phone and is granted access to the portal.</t>
        </section>
      </section>
    </section>
    <section anchor="cross-device-flow-exploits">
      <name>Cross-Device Flow Exploits</name>
      <t>Attackers exploit the absence of an authenticated channel between the two devices used in a cross-device flow by using social engineering techniques typicaly used in phishing attacks.</t>
      <t>In cross-device authorization flows the attacker uses these social engineering techniques by changing the context in which the authorization request is presented to convince the user to grant authorization when they shouldn't. These attacks are also known as Cross-Device Consent Phishing (CDCP) attacks.</t>
      <t>In cross-device session transfer flows the attacker uses these social engineering techniques to convince the user to initiate a session transfer and send them a session transfer code. Once the attacker is in posession of this session transfer code, they present it to the Authorization Server to transfer the session and access the users resources. These attacks are referred to as Cross-Device Session Phishing (CDSP) attacks.</t>
      <section anchor="cross-device-authorization-flow-exploits">
        <name>Cross-Device Authorization Flow Exploits</name>
        <t>Attackers exploit cross-device authorization flows by initiating an authorization flow on the Consumption Device and then use social engineering techniques to change the context in which the request is presented to the user in order to convince them to grant authorization on the Authorization Device. The attacker is able to change the context of the authorization request because the channel between the Consumption Device and the Authorization Device is unauthenticated. These attacks are also known as Cross-Device Consent Phishing (CDCP) attacks.</t>
        <section anchor="user-transferred-session-data-pattern-exploits">
          <name>User-Transferred Session Data Pattern Exploits</name>
          <t>A common action in cross-device flows is to present the user with a QR code or a user code on the Consumption Device (e.g., smart TV) which is then scanned or entered on the Authorization Device (the mobile phone). When the user scans the code or copies the user code, they do so without any proof that the QR code or user code is being displayed in the place or context intended by the service provider. It is up to the user to decide whether they should trust the QR code or user code. In effect the user is asked to compensate for the absence of an authenticated channel between the Consumption Device (e.g., smart TV) and the Authorization Device (e.g., the mobile phone).</t>
          <t>Attackers exploit this absence of an authenticated channel between the two devices by obtaining QR codes or user codes (e.g., by initiating the authorization flows). They then use social engineering techniques to change the context in which authorization is requested to convince end-users to scan the QR code or enter it on their Authorization Device (e.g., mobile phone). Once the end-user performs the authorization on the mobile device, the attacker who initiated the authentication or authorization request obtains access to the users resources. The figure below shows an example of such an attack.</t>
          <artwork type="ascii-art"><![CDATA[
                           (B) Consumption Device
           +--------------+     Get QR/User Code  +---------------+
           |  Attacker's  |<--------------------->|               |
           |  Consumption |(G) Grant Authorization| Authorization |
           |   Device     |<--------------------->|     Server    |
           +--------------+                       |               |
             ^   | (C) Attacker Copy              |               |
(A) Attacker |   |     QR or User Code            |               |
    Start    |   |                                |               |
    Flow     |   V                                |               |
           +--------------+                       |               |
           |              |                       |               |
           |   Attacker   |                       |               |
           |              | (D) Attacker Change   |               |
           |              |     QR Code/User Code |               |
           |              |     Context           |               |
           +--------------+                       |               |
                  | (E) User is convinced by the  |               |
                  |     attacker and scans QR code|               |
                  |     or enters User Code       |               |
                  v                               |               |
           +--------------+                       |               |
           |   End User   |                       |               |
           | Authorization|                       |               |
           |    Device    |<--------------------->|               |
           |              |(F) User Authenticates |               |
           |              | and Authorize Access  |               |
           +--------------+                       +---------------+
]]></artwork>
          <t>Figure: User-Transferred Session Data Pattern Exploits</t>
          <ul spacing="normal">
            <li>
              <t>(A) The attacker initiates the protocol on the Consumption Device (or mimicks the Consumption Device) by starting a purchase, adding a device to a network or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The Consumption Device retrieves a QR code or user code from an Authorization Server.</t>
            </li>
            <li>
              <t>(C) The attacker copies the QR code or user code.</t>
            </li>
            <li>
              <t>(D) The attacker changes the context in which the QR code or user code is displayed in such a way that the user is likely to scan the QR code or use the user code when completing the authorization. For example, the attacker could craft an e-mail that includes the user code or QR code and send it to the user. The e-mail might encourage the user to scan the QR code or enter the user code by suggesting that doing so would grant them a reward through a loyalty program or prevent the loss of their data.</t>
            </li>
            <li>
              <t>(E) The QR code or user code is displayed to the user in a context chosen by the attacker. The user is convinced by the attacker's effort and scans the QR code or enters the user code on the Authorization Device.</t>
            </li>
            <li>
              <t>(F) The user authenticates to the Authorization Server before granting authorization.</t>
            </li>
            <li>
              <t>(G) The Authorization Server issues tokens or grants authorization to the Consumption Device, which is under the attacker's control, to access the user's resources. The attacker gains access to the resources and any authorization artifacts (like access and refresh tokens) which may be used in future exploits.</t>
            </li>
          </ul>
        </section>
        <section anchor="backchannel-transferred-session-pattern-exploits">
          <name>Backchannel-Transferred Session Pattern Exploits</name>
          <t>In the backchannel-transferred session pattern, the client requests the authorization server to authenticate the user and obtain authorization for an action. This may happen as a result of user interaction with the Consumption Device, but may also be triggered without the users direct interaction with the Consumption Device, resulting in an authorization request presented to the user without context of why or who triggered the request.</t>
          <t>Attackers exploit this lack of context by using social engineering techniques to prime the user for an authorization request and thereby convince them to granting authorization. The social engineering techniques range in sophistication from messages misrepresenting the reason for receiving an authorization request, to triggering a large volume of requests at an inconvenient time for the user, in the hope that the user will grant authorization to make the requests stop. The figure below shows an example of such an attack.</t>
          <artwork type="ascii-art"><![CDATA[
                              (C) Backchannel Authorization
             +--------------+     Request           +---------------+
             |  Attacker's  |<--------------------->|               |
             |  Consumption |(F) Grant Authorization| Authorization |
             |  Device      |<--------------------->|     Server    |
             +--------------+                       |               |
               ^                                    |               |
  (B) Attacker |                                    |               |
      Starts   |                                    |               |
      Flow     |                                    |               |
             +--------------+                       |               |
             |              |                       |               |
             |   Attacker   |                       |               |
             |              |                       |               |
             |              |                       |               |
             |              |                       |               |
             +--------------+                       |               |
                    |  (A) Attacker Sends           |               |
                    |       Social Engineering      |               |
                    |       Message to User         |               |
                    |                               |               |
(E)User             v                               |               |
  Authorize  +--------------+                       |               |
  Action +---| Authorization|                       |               |
         |   |    Device    |<--------------------->|               |
         +-->|              |(D) Request User       |               |
             |              |    Authorization      |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: Backchannel-Transferred Session Pattern Exploits</t>
          <ul spacing="normal">
            <li>
              <t>(A) The attacker sends a social engineering message to prepare the user for the upcoming authorization (optional).</t>
            </li>
            <li>
              <t>(B) The attacker initiates the protocol on the Consumption Device (or by mimicking the Consumption Device) by starting a purchase, adding a device to a network or accessing a service on the Consumption Device.</t>
            </li>
            <li>
              <t>(C) The client on the Consumption Device requests user authorization on the backchannel from the Authorization Server.</t>
            </li>
            <li>
              <t>(D) The Authorization Server requests the authorization from the user on the user's device.</t>
            </li>
            <li>
              <t>(E) The user authenticates to the authorization server before granting authorization on their device.</t>
            </li>
            <li>
              <t>(G) The Authorization Server issues tokens or grants authorization to the Consumption Device, which is under the attacker's control. The attacker gains access to the user's resources and possibly any authorization artifacts like access and refresh tokens.</t>
            </li>
          </ul>
        </section>
        <section anchor="user-transferred-authorization-data-pattern-exploits">
          <name>User-Transferred Authorization Data Pattern Exploits</name>
          <t>In cross-device flows that follow the user-transferred authorization data pattern, the client on the Consumption Device initiates the authorization request, but the user still has to transfer the authorization data to the Consumption Device. The authorization data may take different forms, including a numerical value such as a 6 digit authorization code. The authorization request may happen as a result of user interaction with the Consumption Device, but may also be triggered without the user's direct interaction with the Consumption Device.</t>
          <t>Attackers exploit the user-transferred authorization data pattern by combining the social engineering techniques used to set context for users and convincing users to providing them with authorization data sent to their Authorization Devices (e.g., mobile phones). These attacks are very similar to phishing attacks, except that the attacker also has the ability to trigger the authorization request to be sent to the user directly by the Authorization Server.</t>
          <artwork type="ascii-art"><![CDATA[
                              (C) Backchannel Authorization
             +--------------+     Request           +---------------+
             |  Attacker's  |<--------------------->|               |
             |  Consumption |(G) Grant Authorization| Authorization |
             |  Device      |<--------------------->|     Server    |
             +--------------+                       |               |
               ^       ^                            |               |
  (B) Attacker |       | (F) Attacker Forwards      |               |
      Starts   |       |     Authorization Data     |               |
      Flow     |       |                            |               |
             +--------------+                       |               |
             |              |                       |               |
             |   Attacker   |                       |               |
             |              |                       |               |
             |              |                       |               |
             |              |                       |               |
             +--------------+                       |               |
(A) Attacker    |       ^   (E) User                |               |
    Sends       |       |       Sends               |               |
    Social      |       |       Authorization Data  |               |
    Engineering |       |                           |               |
    Message     |       |                           |               |
                v       |                           |               |
             +--------------+                       |               |
             | Authorization|                       |               |
             |    Device    |<--------------------->|               |
             |              |(D) Send Authorization |               |
             |              |    Data               |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: User-Transferred Authorization Data Pattern Exploits</t>
          <ul spacing="normal">
            <li>
              <t>(A) The attacker sends a social engineering message to prime the user for the authorization request they are about to receive, including instructions on what to do with the authorization data once they receive it.</t>
            </li>
            <li>
              <t>(B) The attacker initiates the protocol on the Consumption Device (or by mimicking the Consumption Device) by starting a purchase, adding a device to a network or accessing a service on the Consumption Device.</t>
            </li>
            <li>
              <t>(C) The client on the Consumption Device requests user authorization on the backchannel from the Authorization Server.</t>
            </li>
            <li>
              <t>(D) The Authorization Server sends authorization data (e.g., a 6 digit authorization code) to the user's Authorization Device (the authorization data may be presented as a QR code, or text message).</t>
            </li>
            <li>
              <t>(E) The user is convinced by the social engineering message received in step (A) and forwards the authorization data (e.g., a 6 digit authorization code) to the attacker.</t>
            </li>
            <li>
              <t>(F) The attacker enters the authorization data (e.g., a 6 digit authorization code) on the Consumption Device.</t>
            </li>
            <li>
              <t>(G) The Authorization Server grants authorization and issues access and refresh tokens to the Consumption Device, which is under the attacker's control. On completion of the exploit, the attacker gains access to the user's resources.</t>
            </li>
          </ul>
          <t>The unauthenticated channel may also be exploited in variations of the above scenario where the user (as opposed to the attacker) initiates the flow  and is then convinced using social engineering techniques into sending the authorization data (e.g., a 6 digit authorization code) to the attacker. In these flows, the user is already authenticated and they request authorization data to transfer a session or obtain some other privilege such as joining a device to a network. The authorization data may be represented as a QR code or text string (e.g., 6 digit authorization code). The attacker then proceeds to exploit the unauthenticated channel by using social engineering techniques to convince the user to send the QR code or user code to the attacker. The attacker then use the authorization data to obtain the privileges that would have been assigned to the user.</t>
        </section>
      </section>
      <section anchor="cross-device-session-transfer-exploits">
        <name>Cross-Device Session Transfer Exploits</name>
        <t>Attackers exploit cross-device session transfer flows by using social engineering techniques typically used in phishing attacks to convince the user to authorize the transfer of a session and then send the session transfer code or QR code to the attacker. The absence of an authenticated channel between these two devices enables the attacker to use the session transfer code on their own device to obtain access to the session and access the users data. These attacks are referred to as Cross-Device Session Phishing (CDSP) attacks.</t>
        <artwork type="ascii-art"><![CDATA[
                              (C) Session Transfer
             +--------------+     Request           +---------------+
(B)User  +---| Authorization|---------------------->|               |
   Start |   |   Device     |(D) Session Transfer   |               |
   Flow  |   |              |    Code               | Authorization |
         +-->|              |<----------------------|     Server    |
             +--------------+                       |               |
(A)Attacker    ^          |                         |               |
   Sends Social|          | (E) User sends QR code  |               |
   Engineering |          |     or Session Transfer |               |
   Message     |          v     Code to Attacker    |               |
             +--------------+                       |               |
             |              |                       |               |
             |   Attacker   |                       |               |
             |              |                       |               |
             |              |                       |               |
             |              |                       |               |
             +--------------+                       |               |
(F)Attacker scans   |                               |               |
   QR code or enters|                               |               |
   Session Transfer |                               |               |
   Code             v         (G) Present Session   |               |
             +--------------+     Transfer Code     |               |
             |  Attacker's  |---------------------->|               |
(I)      +---|  Consumption |                       |               |
 Attacker|   |    Device    | (H) Return Session    |               |
 Resumes |   |              |     Context           |               |
 Session +-->|              |<----------------------|               |
             +--------------+                       +---------------+
]]></artwork>
        <t>Figure: Cross-Device Session Transfer Pattern Exploit</t>
        <ul spacing="normal">
          <li>
            <t>(A) The attacker sends a social engineering message to that convinces the user that they should authorize a session transfer including instructions on what to do with the QR code or session transfer code once they receive it.</t>
          </li>
          <li>
            <t>(B) The user is authenticated on their Authorization Device and authorizes the transfer of the session to the Consumption Device.</t>
          </li>
          <li>
            <t>(C) The client on the Authorization Device requests a session transfer code from the Authorization Server.</t>
          </li>
          <li>
            <t>(D) The Authorization Server responds with a session transfer code, which may be rendered as a QR code on the Authorization Device.</t>
          </li>
          <li>
            <t>(E) The user sends the QR code or session transfer code to the attacker, following the instructions they received in step (A).</t>
          </li>
          <li>
            <t>(F) Once the attacker receives the QR code, they scan it or enter it on their own Consumption Device.</t>
          </li>
          <li>
            <t>(G) The client on the Consumption Device presents the session transfer code to the Authorization Server.</t>
          </li>
          <li>
            <t>(H) The Authorization Server verifies the session transfer code and retrieves the session context information needed to resume the session on the Consumption Device.</t>
          </li>
          <li>
            <t>(I) The attacker resumes the session on their own Consumption Device and is able to access the information that the user authorized on their Authorization Device in step (B).</t>
          </li>
        </ul>
      </section>
      <section anchor="examples-of-cross-device-flow-exploits">
        <name>Examples of Cross-Device Flow Exploits</name>
        <t>The following examples illustrate these attacks in practical settings and show how the unauthenticated channel is exploited by attackers who can copy the QR codes and user codes, change the context in which they are presented using social engineering techniques and mislead end-users into granting consent to avail of services, access data and make payments.</t>
        <section anchor="example-b1">
          <name>Example B1: Illicit Access to a Video Streaming Service (User-Transferred Session Data Pattern)</name>
          <t>An attacker obtains a smart TV and attempts to access an online streaming service. The smart TV obtains a QR code from the streaming service authorization server and displays it on screen. The attacker copies the QR code and embeds it in an e-mail that is sent to a large number of recipients. The e-mail contains a message stating that the streaming service wants to thank them for their loyal support and by scanning the QR code, they will be able to add a bonus device to their account for no charge. One of the recipients open the e-mail and scan the QR code to claim the loyalty reward. The user performs multi-factor authentication, and when asked if they want a new device to be added to their account, they authorize the action. The attacker's device is now authorized to access the content and obtains an access and refresh token. The access token allows the attacker to access content and the refresh token allows the attacker to obtain fresh tokens whenever the access token expires.</t>
          <t>The attacker scales up the attack by emulating a new smart TV, obtaining multiple QR codes and widening the audience it sends the QR code to. Whenever a recipient scans the QR code and authorizes the addition of a new device, the attacker obtains an access and refresh token, which they sell for a profit.</t>
        </section>
        <section anchor="example-b2-illicit-access-to-productivity-services-user-transferred-session-data-pattern">
          <name>Example B2: Illicit Access to Productivity Services (User-Transferred Session Data Pattern)</name>
          <t>An attacker emulates an enterprise application (e.g., an interactive whiteboard) and initiates a cross-device flow by requesting a user code and URL from the authorization server. The attacker obtains a list of potential victims and sends an e-mail informing users that their files will be deleted within 24 hours if they don't follow the link, enter the user code and authenticate. The e-mail reminds them that this is the third time that they have been notified and their last opportunity to prevent deletion of their work files. One or more employees respond by following the URL, entering the code and performing multi-factor authentication. Throughout the authentication experience, the user is interacting with a trusted user experience, re-enforcing the legitimacy of the request. Once these employees authorized access, the attacker obtains access and refresh tokens from the authorization server and uses it to access the users' files, perform lateral attacks to obtain access to other information and continuously refresh the session by requesting new access tokens. These tokens may be exfiltrated and sold to third parties.</t>
        </section>
        <section anchor="example-b3-illicit-access-to-physical-assets-user-transferred-session-data-pattern">
          <name>Example B3: Illicit Access to Physical Assets (User-Transferred Session Data Pattern)</name>
          <t>An attacker copies a QR code from a bicycle locked in a bicycle rack in a city, prints it on a label and places the label on a bicycle at the other end of the bicycle rack. A customer approaches the bicycle that contains the replicated QR code and scans the code and authenticates before authorizing payment for renting the bicycle. The bicycle rack unlocks the bicycle containing the original QR code and the attacker removes the bicycle before cycling down the street while the customer is left frustrated that the bicycle they were trying to use is not being unlocked <xref target="NYC.Bike"/>. The customer proceeds to unlock another bicycle and lodges a complaint with the bicycle renting company.</t>
        </section>
        <section anchor="example-b4">
          <name>Example B4.1: Illicit Transaction Authorization (Backchannel-Transferred Session Pattern)</name>
          <t>An attacker obtains a list of user identifiers for a financial institution and triggers a transaction request for each of the users on the list. The financial institution's authorization server sends push notifications to each of the users, requesting authorization of a transaction. The vast majority of users ignore the request to authorize the transaction, but a small percentage grants authorization by approving the transaction.</t>
        </section>
        <section anchor="example-b42-fake-helpdesk-backchannel-transferred-session-pattern">
          <name>Example B4.2: Fake Helpdesk (Backchannel-Transferred Session Pattern)</name>
          <t>An attacker obtains the contact information for a user and contacts them, pretending to be a representative of the user's financial institution. The attacker informs the user that there were a number of fraudulent transactions against their account and asks them to review these transactions by approving or rejecting them. The attacker then triggers a sequence of transactions. The user receives an authorization request for each transaction and declines them as they do not recognize them. The attacker then informs the user that they need to close the users account and transfer all the funds to a new account to prevent further fraudulent transactions. The user receives another authorization request which they approve, or provide additional authorization information to the attacker which enables the attacker to complete their attack and defraud the user.</t>
        </section>
        <section anchor="example-b5">
          <name>Example B5: Illicit Network Join (Cross-Device Session Transfer Pattern)</name>
          <t>An attacker creates a message to all employees of a company, claiming to be from a trusted technology provider investigating a suspected security breach. They ask employees to send them the QR code typically used to join a new device to the network, along with detailed steps on how to obtain the QR code. The employee, eager to assist, initiates the process to add a new mobile device to the network. They authenticate to the network and obtain a QR code. They send the QR code to the attacker. The attacker scans the QR code and adds their own device to the network. They use this device access as an entry point and perform lateral moves to obtain additional privileges and access to restricted resources.</t>
        </section>
        <section anchor="example-b6-illicit-onboarding-user-transferred-session-data-pattern">
          <name>Example B6: Illicit Onboarding (User-Transferred Session Data Pattern)</name>
          <t>An attacker initiates an employee onboarding flow and obtains a QR code from the onboarding portal to invoke a digital wallet and present a verifiable credential attesting to a new employee's identity. The attacker obtains a list of potential new employees and sends an e-mail informing them that it is time to present proof of their background check or government issued ID. The new employee scans the QR code, invokes their digital wallet and presents their credentials. Once the credentials are presented, the employee's account is activated. The employee portal accessed by the attacker to obtain the QR code displays a message to the attacker with instructions on how to access their account.</t>
        </section>
        <section anchor="Example-B7">
          <name>Example B7: Illicit Application Bootstrap (Cross-Device Session Transfer Pattern)</name>
          <t>An attacker creates a message to all employees of a company, claiming to be from the company's IT service provider. They claim that they are trying to resolve an application performance issue and ask employees to send them the QR code typically used to transfer a session. The employee, eager to assist, initiates the process to transfer a session. They authenticate and obtain a QR code and then send the QR code to the attacker. The attacker scans the QR code with their mobile phone and access the users data and resources.</t>
        </section>
        <section anchor="example-b8-account-takeover-user-transferred-session-data-pattern">
          <name>Example B8: Account Takeover (User-Transferred Session Data Pattern)</name>
          <t>An attacker wants to use some website which requires presentation of a verifiable credential for authentication. The attacker creates a phishing website which will in real time capture log-in QR Codes from the original website and present these to the user. The attacker tries to get the user to use the phishing website by sending messages by e-mail or other messaging technologies. The user scans the QR code on the phishing website, invokes their digital wallet and presents their credentials. Once the credentials are presented, the original session from the attackers device is authorized with the user's credentials.</t>
        </section>
        <section anchor="example-b9-illicit-access-to-administration-capabilities-through-consent-request-overload-backchannel-transferred-session-pattern">
          <name>Example B9: Illicit Access to Administration Capabilities Through Consent Request Overload (Backchannel-Transferred Session Pattern)</name>
          <t>An attacker attempts to access an adminstration portal repeatedly, generating a stream of authorization requests to the network administrator. The attempts are timed to occur while the administrator is asleep. The administrator is woken by the incoming requests on their phone, and, in an attempt to stop the notifications, they accidentally approve access and the attacker gains access to the portal.</t>
        </section>
        <section anchor="out-of-scope">
          <name>Out of Scope</name>
          <t>In all of the attack scenarios listed above, a user is misled or exploited. For other attacks, where the user is willingly colluding with the attacker, the threat model, security implications and potential mitigations are very different. For example, a cooperating user can bypass software mitigations on their device, share access to hardware tokens with the attacker, and install additional devices to forward radio signals to circumvent proximity checks.</t>
          <t>This document only considers scenarios where a user does not collude with an attacker.</t>
        </section>
      </section>
    </section>
    <section anchor="cross-device-protocols-and-standards">
      <name>Cross-Device Protocols and Standards</name>
      <t>Cross-device flows that are subject to the attacks described earlier typically share the following characteristics:</t>
      <ol spacing="normal" type="1"><li>
          <t>The attacker can initiate the flow and manipulate the context of an authorization request.
 E.g., the attacker can obtain a QR code or user code, or can request an authentication/authorization decision from the user.</t>
        </li>
        <li>
          <t>The interaction between the Consumption Device and Authorization Device is unauthenticated.
 I.e., it is left to the user to decide if the QR code, user code, or authentication request is being presented in a legitimate context.</t>
        </li>
      </ol>
      <t>A number of protocols that have been standardized, or are in the process of being standardized that share these characteristics include:</t>
      <ul spacing="normal">
        <li>
          <t><strong>IETF OAuth 2.0 Device Authorization Grant (<xref target="RFC8628"/>):</strong> A standard to enable authorization on devices with constrained input capabilities (smart TVs, printers, kiosks). In this protocol, the user code or QR code is displayed on the Consumption Device and entered on a second device (e.g., a mobile phone).</t>
        </li>
        <li>
          <t><strong>Open ID Foundation Client Initiated Back-Channel Authentication (CIBA) <xref target="CIBA"/>:</strong> A standard developed in the OpenID Foundation that allows a device or service (e.g., a personal computer, smart TV, Kiosk) to request the OpenID Provider to initiate an authentication flow if it knows a valid identifier for the user. The user completes the authentication flow using a second device (e.g., a mobile phone). In this flow the user does not scan a QR code or obtain a user code from the Consumption Device, but is instead contacted by the OpenID Provider to complete the authentication using a push notification, e-mail, text message or any other suitable mechanism.</t>
        </li>
        <li>
          <t><strong>OpenID for Verifiable Credential Protocol Suite (Issuance, Presentation):</strong> The OpenID for Verifiable Credentials enables cross-device scenarios by allowing users to scan QR codes to retrieve credentials (Issuance - see <xref target="OpenID.VCI"/>) or present credentials (Presentation - see <xref target="OpenID.VP"/>). The QR code is presented on a device that initiates the flow.</t>
        </li>
        <li>
          <t><strong>Self-Issued OpenID Provider v2 (SIOP V2):</strong> A standard that allows end-user to present self-attested or third party attested attributes when used with OpenID for Verifiable Credential protocols. The user scans a QR code presented by the relying party to initiate the flow.</t>
        </li>
      </ul>
      <t>Cross-device protocols SHOULD not be used for same-device scenarios. If the Consumption Device and Authorization Device are the same device, protocols like OpenID Connect Core <xref target="OpenID.Core"/> and OAuth 2.0 Authorization Code Grant as defined in <xref target="RFC6749"/> are more appropriate. If a protocol supports both same-device and cross-device modes (e.g., <xref target="OpenID.SIOPV2"/>), the cross-device mode SHOULD not be used for same-device scenarios. An authorization server MAY choose to block cross-device protocols used in same-device scenarios if it detects that the same device is used. An authorization server may use techniques such as device fingerprinting, network address or other techniques to detect if a cross-device protocol is being used on the same device. If an implementor decides to use a cross-device protocol or a protocol with a cross-device mode in a same-device scenario, the mitigations recommended in this document SHOULD be implemented to reduce the risks that the unauthenticated channel is exploited.</t>
    </section>
    <section anchor="mitigating-against-cross-device-flow-attacks">
      <name>Mitigating Against Cross-Device Flow Attacks</name>
      <t>The unauthenticated channel between the Consumption Device and the Authorization Device allows attackers to change the context in which the authorization request is presented to the user. This shifts responsibility of authenticating the channel between the two devices to the end-user. End-users have "expertise elsewhere", are typically not security experts, and don't understand the protocols and systems they interact with. As a result, end-users are poorly equipped to authenticate the channel between the two devices. Mitigations should focus on:</t>
      <ol spacing="normal" type="1"><li>
          <t>Minimizing reliance on the user to make decisions to authenticate the channel.</t>
        </li>
        <li>
          <t>Providing better information with which to make decisions to authenticate the channel.</t>
        </li>
        <li>
          <t>Recovering from incorrect channel authentication decisions by users.</t>
        </li>
      </ol>
      <t>To achieve the above outcomes, mitigating against Cross-Device Consent Phishing attacks require a three-pronged approach:</t>
      <ol spacing="normal" type="1"><li>
          <t>Reduce risks of deployed protocols with practical mitigations.</t>
        </li>
        <li>
          <t>Adopt or develop protocols that are less susceptible to these attacks where possible.</t>
        </li>
        <li>
          <t>Provide analytical tools to assess vulnerabilities and effectiveness of mitigations.</t>
        </li>
      </ol>
      <section anchor="practical-mitigations">
        <name>Practical Mitigations</name>
        <t>A number of protocols that enable cross-device flows that are susceptible to Cross-Device Consent Phishing attacks are already deployed. The security profile of these protocols can be improved through practical mitigations that provide defense in depth that either:</t>
        <ol spacing="normal" type="1"><li>
            <t>Prevents the attack from being initiated.</t>
          </li>
          <li>
            <t>Disrupts the attack once it is initiated.</t>
          </li>
          <li>
            <t>Remediates or reduces the impact if the attack succeeds.</t>
          </li>
        </ol>
        <t>It is RECOMMENDED that one or more of the mitigations are applied whenever implementing a cross-device flow. Every mitigation provides an additional layer of security that makes it harder to initiate the attack, disrupts attacks in progress or reduces the impact of a successful attack.</t>
        <section anchor="establish-proximity">
          <name>Establish Proximity</name>
          <t>The unauthenticated channel between the Consumption Device and Authorization Device allows attackers to obtain a QR code or user code in one location and display it in another location. Consequently, proximity-enforced cross-device flows are more resistant to Cross-Device Consent Phishing attacks than proximity-less cross-device flows. Establishing proximity between the location of the Consumption Device and the Authorization Device limits an attacker's ability to launch attacks by sending the user or QR codes to large numbers of users that are geographically distributed. There are a couple of ways to establish proximity:</t>
          <ul spacing="normal">
            <li>
              <t>Physical connectivity: This is a good indicator of proximity, but requires specific ports, cables and hardware and may be challenging from a user experience perspective or may not be possible in certain settings (e.g., when USB ports are blocked or removed for security purposes). Physical connectivity may be better suited to dedicated hardware like FIDO devices that can be used with protocols that are resistant to the exploits described in this document. The authorization server does not directly establish proximity, but relies on the deployed system and selected protocols and devices to establish proximity.</t>
            </li>
            <li>
              <t>Wireless proximity: Near Field Communications (NFC), Bluetooth Low Energy (BLE), and Ultra Wideband (UWB) services can be used to prove proximity between the two devices. NFC technology is widely deployed in mobile phones as part of payment solutions, but NFC readers are less widely deployed. BLE presents another alternative for establishing proximity, but may present user experience challenges when setting up. UWB standards such as IEEE  802.15.4 and the IEEE 802.15.4z-2020 Amendment 1 enable secure ranging between devices and allow devices to establish proximity relative to each other <xref target="IEEE802154"/>. The authorization server does not directly establish proximity, but relies on the deployed system and selected protocols and devices to establish proximity using these wireless proximity protocols.</t>
            </li>
            <li>
              <t>Shared network: Device proximity can be inferred by verifying that both devices are on the same network. This check may be performed by the authorization server by comparing the network addresses of the device where the code is displayed (Consumption Device) with that of the Authorization Device. Alternatively the check can be performed on the device, provided that the network address is available. This could be achieved if the authorization server encodes the Consumption Device's network address in the QR code and uses a digital signature to prevent tampering with the code. This does require the wallet to be aware of the countermeasure and effectively enforce it. Note that it is common for a Consumption Device (e.g., a TV) to use a Wi-Fi connection while the Authorization Device (e.g., a phone) uses a mobile network. Though physically in close proximity, they don't share a network, so other proximity checks are needed.</t>
            </li>
            <li>
              <t>Geolocation: Proximity can be established by comparing geo-location information derived from global navigation satellite-system (GNSS) co-ordinates or geolocation lookup of IP addresses and comparing proximity. Geolocation based on GNSS may vary in accuracy depending on the users location, and when mapped to national or regional boundaries may show a Consumption and Authorization Device in different locations if those devices are close to a border. Since relative position is more important than absolute location, implementations should consider relative location to both devices rather than absolute location when determining proximity. Geolocation based on IP addresses may be inaccurate along regional or national borders due to overlapping coverage by different network providers from the respective regions. This may result in the Consumption device being mapped to one region, while the Authorization Device may be on another network from another provider and mapped to another region. These inaccuracies may require restrictions to be at a more granular level (e.g., same city, country, region or continent). Similar to the shared network checks, these checks may be performed by the authorization server or on the users device, provided that the information encoded in a QR code is integrity protected using a digital signature.</t>
            </li>
          </ul>
          <t>Depending on the risk profile and the threat model in which a system is operating, it MAY be necessary to use more than one mechanism to establish proximity to raise the bar for any potential attackers.</t>
          <t>Note: There are scenarios that require that an authorization takes place in a different location than the one in which the transaction is authorized. For example, there may be a primary and secondary credit card holder and both can initiate transactions, but only the primary holder can authorize it. There is no guarantee that the primary and secondary holders are in the same location at the time of the authorization. In such cases, proximity (or lack of proximity) may be an indicator of risk and the system may deploy additional controls (e.g., transaction value limits, transaction velocity limits) or use the proximity information as input to a risk management system.</t>
          <t><strong>Limitations:</strong> Proximity mechanisms make it harder to perform Cross-Device Consent Phishing (CDCP) attacks. However, depending on how the proximity check is performed, an attacker may be able to circumvent the protection: The attacker can use a VPN to simulate a shared network or spoof a GNSS position. For example, the attacker can try to request the location of the end-user's Authorization Device through browser APIs and then simulate the same location on their Consumption Device using standard debugging features available on many platforms.</t>
        </section>
        <section anchor="Short-Lived-Timebound-Codes">
          <name>Short Lived/Timebound QR or User Codes</name>
          <t>The impact of an attack can be reduced by making QR or user codes short lived. If an attacker obtains a short lived code, the duration during which the unauthenticated channel can be exploited is reduced, potentially increasing the cost of a successful attack. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> There is a practical limit to how short a user code can be valid due to network latency and user experience limitations (time taken to enter a code, or incorrectly entering a code). More sophisticated Cross-Device Consent Phishing attacks counter the effectiveness of short lived codes by convincing a user to respond to a phishing e-mail and only request the QR or user code once the user clicks on the link in the phishing e-mail <xref target="Exploit6"/>.</t>
        </section>
        <section anchor="one-time-or-limited-use-codes">
          <name>One-Time or Limited Use Codes</name>
          <t>By enforcing one-time use or limited use of user or QR codes, the authorization server can limit the impact of attacks where the same user code or QR code is sent to multiple victims. One-time use may be achieved by including a nonce or date-stamp in the user code or QR code which is validated by the authorization server when the user scans the QR code against a list of previously issued codes. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Enforcing one-time use may be difficult in large globally distributed systems with low latency requirements, in which case short lived tokens may be more practical. One-time use codes may also have an impact on the user experience. For example, a user may enter a code, but their session may be interrupted before the access request is completed. If the code is a one-time use code, they would need to restart the session and obtain a new code since they won't be allowed to enter the same code a second time. To avoid this, implementers MAY allow the same code to be presented a small number of times.</t>
        </section>
        <section anchor="unique_codes">
          <name>Unique Codes</name>
          <t>By issuing unique user or QR codes, an authorization server can detect if the same codes are being repeatedly submitted. This may be interpreted as anomalous behavior and the authorization server MAY choose to decline issuing access and refresh tokens if it detects the same codes being presented repeatedly. This may be achieved by maintaining a deny list that contains QR codes or user codes that were previously used. The authorization server MAY use a sliding window equal to the lifetime of a token if short lived/timebound tokens are used (see <xref target="Short-Lived-Timebound-Codes"/>). This will limit the size of the deny list. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Maintaining a deny list of previously redeemed codes, even for a sliding window, may have an impact on the latency of globally distributed systems. One alternative is to segment user codes by geography or region and maintain local deny lists.</t>
        </section>
        <section anchor="content-filtering">
          <name>Content Filtering</name>
          <t>Attackers exploit the unauthenticated channel by changing the context of the user code or QR code and then sending a message to a user (e-mail, text messaging, instant messaging or other communication mechanisms). By deploying content filtering (e.g., anti-spam filter), these messages can be blocked and prevented from reaching the end-users. It may be possible to fine-tune content filtering solutions to detect artefacts like QR codes or user codes that are included in a message that is sent to multiple recipients in the expectation that at least one of the recipients will be convinced by the message and grant authorization to access restricted resources.</t>
          <t><strong>Limitations:</strong> Some scenarios may require legitimate re-transmission of user, QR and authorization data (e.g., retries). To prevent the disruption of legitimate scenarios, content filters may use a threshold and allow a limited number of messages with the same QR or user codes to be transmitted before interrupting the delivery of those messages. Content filtering may also be fragmented across multiple communications systems and communication channels (e-mail, text messaging, instant messaging or other communication mechanisms), making it harder to detect or interrupt attacks that are executed over multiple channels, unless here is a high degree of integration between content filtering systems.</t>
        </section>
        <section anchor="detect-and-remediate">
          <name>Detect and Remediate</name>
          <t>The authorization server may be able to detect misuse of the codes due to repeated use as described in <xref target="unique_codes"/>, as an input from a content filtering engine as described in <xref target="content-filtering"/>, or through other mechanisms such as reports from end-users. If an authorization server determines that a user code or QR code is being used in an attack it may choose to invalidate all tokens issued in response to these codes and make that information available through a token introspection endpoint (see <xref target="RFC7662"/>). In addition it may notify resource servers to stop accepting these tokens or to terminate existing sessions associated with these tokens using Continuous Access Evaluation Protocol (CAEP) messages <xref target="CAEP"/> using the Shared Signals Framework (SSF) <xref target="SSF"/> framework or an equivalent notification system.</t>
          <t><strong>Limitations:</strong> Detection and remediation requires that resource servers are integrated with security eventing systems or token introspection services. This may not always be practical for existing systems and may need to be targeted to the most critical resource services in an environment.</t>
        </section>
        <section anchor="trusted_devices">
          <name>Trusted Devices</name>
          <t>If an attacker is unable to initiate the protocol, they are unable to obtain a QR code or user code that can be leveraged for the attacks described in this document. By restricting the protocol to only be executed on devices trusted by the authorization server, it prevents attackers from using arbitrary devices, or by mimicking devices to initiate the protocol.</t>
          <t>Authorization Servers MAY use different mechanisms to establish which devices it trusts. This includes limiting cross-device flows to specific device types such as intractive whiteboards or smart TVs, pre-registering devices with the authorization server or only allow cross-device flows on devices managed through device management systems. Device management systems may enforce policies that govern patching, version updates, on-device anti-malware deployment, revocation status and device location amongst others. Trusted devices MAY have their identities rooted in hardware (e.g., a TPM or equivalent technology).</t>
          <t>By only allowing trusted devices to initiate cross-device flows, it requires the attacker to have access to such a device and maintain access in a way that does not result in the device's trust status from being revoked.</t>
          <t><strong>Limitations:</strong> An attacker may still be able to obtain access to a trusted device and use it to initiate authorization requests, making it necessary to apply additional controls and integrating with other threat detection and management systems that can detect suspicious behaviour such as repeated requests to initiate authorization or high volume of service activation on the same device.</t>
        </section>
        <section anchor="trusted-networks">
          <name>Trusted Networks</name>
          <t>An attacker can be prevented from initiating a cross-device flow protocol by only allowing the protocol to be initiated on a trusted network or within a security perimeter (e.g., a corporate network). A trusted network may be defined as a set of IP addresses and joining the network is subject to security controls managed by the network operator, which may include only allowing trusted devices on the network, device management, user authentication and physical access policies and systems. By limiting protocol initiation to a specific network, the attacker needs to have access to a device on the network. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Network level controls may not always be feasible, especially when dealing with consumer scenarios where the network may not be under control of the service provider. Even if it is possible to deploy network level controls, it SHOULD be used in conjunction with other controls outlined in this document to achieve defence in-depth.</t>
        </section>
        <section anchor="limited-scopes">
          <name>Limited Scopes</name>
          <t>Authorization servers MAY choose to limit the scopes they include in access tokens issued through cross-device flows where the unauthenticated channel between two devices are susceptible to being exploited. Including limited scopes lessens the impact in case of a successful attack. The decision about which scopes are included may be further refined based on whether the protocol is initiated on a trusted device or the user's location relative to the location of the Consumption Device. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Limiting scopes reduces the impact of a compromise, but does not avoid it. It SHOULD be used in conjunction with other mitigations described in this document.</t>
        </section>
        <section anchor="short-lived-tokens">
          <name>Short Lived Tokens</name>
          <t>Another mitigation strategy includes limiting the life of the access and refresh tokens. The lifetime can be lengthened or shortened, depending on the user's location, the resources they are trying to access or whether they are using a trusted device. Short lived tokens do not prevent or disrupt the attack, but serve as a remedial mechanism in case the attack succeeded. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Short lived tokens reduces the time window during which an attacker can benefit from a successful attack. This is most effective for access tokens. However, once an attacker obtains a refresh token, they can continue to request new access tokens, as well as refresh tokens. Forcing the expiry of refresh tokens may cause the user to re-authorize an action more frequently, which results in a negative user experience.</t>
        </section>
        <section anchor="rate-limits">
          <name>Rate Limits</name>
          <t>An attacker that engages in a scaled attack may need to request a large number of user codes (see exploit <xref target="example-b1"/>) or initiate a large number of authorization requests (see exploit <xref target="example-b4"/>) in a short period of time. An authorization server MAY apply rate limits to minimize the number of requests it would accept from a client in a limited time period.</t>
          <t><strong>Limitations:</strong> Rate limits are effective at slowing an attacker down and help to degrade scaled attacks, but do not prevent more targeted attacks that are executed with lower volumes and velocity. Therefore, it should be used along with other techniques to provide a defence-in-depth defence against cross-device attacks.</t>
        </section>
        <section anchor="sender-constrained-tokens">
          <name>Sender-Constrained Tokens</name>
          <t>Sender-constrained tokens limit the impact of a successful attack by preventing the tokens from being moved from the device on which the attack was successfully executed. This makes attacks where an attacker gathers a large number of access and refresh tokens on a single device and then sells them for profit more difficult, since the attacker would also have to export the cryptographic keys used to sender-constrain the tokens or be able to access them and generate signatures for future use. If the attack is being executed on a trusted device to a device with anti-malware, any attempts to exfiltrate tokens or keys may be detected and the device's trust status may be changed. Using hardware keys for sender-constraining tokens will further reduce the ability of the attacker to move tokens to another device.</t>
          <t><strong>Limitations:</strong> Sender-constrained tokens, especially sender-constrained tokens that require proof-of-posession, raise the bar for executing the attack and profiting from exfiltrating tokens. Although a software proof-of-posession key is better than no proof-of-posession key, an attacker may still exfiltrate the software key. Hardware keys are harder to exfiltrate, but come with additional implementation complexity. An attacker that controls the Consumption Device may still be able to excercise the key, even if it is in hardware. Consequently the main protection derived from sender-constrained tokens is preventing tokens from being moved from the Consumption Device to another device, thereby making it harder sell stolen tokens and profit from the attack.</t>
        </section>
        <section anchor="user_education">
          <name>User Education</name>
          <t>Research shows that user education is effective in reducing the risk of phishing attacks <xref target="Baki2023"/>. The service provider MAY educate users on the risks of cross-device consent phishing and provide out-of-band reinforcement to the user on the context and conditions under which an authorization grant may be requested. For example, if the service provider does not send e-mails with QR codes requesting users to grant authorization, this may be reinforced in marketing messages and anti-fraud awareness campaigns. The service provider MAY also choose to reinforce these user education messages through in-app experiences. In <xref target="PCRSM2023"/>, it is proposed to advise users to verify the trustworthiness of the source of a QR code, for instance by checking that the connection is protected through TLS or by verifying that the URL really belongs to the Authorization Server.</t>
          <t><strong>Limitations:</strong> Although user education helps to raise awareness and reduce the overall risk to users, it is insufficient on its own to mitigate cross-device consent phishing attacks. In particular, carefully designed phishing attacks can be practically indistinguishable from benign authorization flows even for well-trained users. User education SHOULD therefore be used in conjunction with other controls described in this document.</t>
        </section>
        <section anchor="user-experience">
          <name>User Experience</name>
          <t>The user experience SHOULD preserve the context within which the protocols were initiated and communicate this clearly to the user when they are asked to authorize, authenticate or present a credential. In preserving the context, it should be clear to the user who invoked the flow, why it was invoked and what the consequence of completing the authorization, authentication or credential presentation is. The user experience SHOULD reinforce the message that unless the user initiated the authorization request, or was expecting it, they should decline the request.</t>
          <t>This information MAY be communicated graphically or in a simple message (e.g., "It looks like you are trying to access your files on a digital whiteboard in your city center office. Click here to grant access to your files. If you are not trying to access your files, you should decline this request and notify the security department").</t>
          <t>It SHOULD be clear to the user how to decline the request. To avoid accidental authorization grants, the "decline" option SHOULD be the default option or given similar prominence in the user experience as the "grant" option.</t>
          <t>If the user uses an application on a mobile device to scan a QR code, the application MAY display information advising the user under which conditions they should expect to be asked to scan a QR code and under which circumstances they should never scan a QR code (e.g., display a message that the QR code will only be displayed on kiosks within trusted locations or on trusted websites hosted on a specific domain, and never in e-mail or other media and locations).</t>
          <t>The user experience MAY include information to further educate the user on cross-device consent phishing attacks and reinforce the conditions under which authorization grants may be requested.</t>
          <t><strong>Limitations:</strong> Improvements to user experience on their own is unlikely to be sufficient and SHOULD be used in conjunction with other controls described in this document.</t>
        </section>
        <section anchor="authenticate-then-initiate">
          <name>Authenticate-then-Initiate</name>
          <t>By requiring a user to authenticate on the Consumption Device with a phishing resistant authentication method before initiating a cross-device flow, the server can prevent an attacker from initiating a cross-device flow and obtaining QR codes or user codes. This prevents the attacker from obtaining a QR code or user code that they can use to mislead an unsuspecting user. This requires that the Consumption Device has sufficient input capabilities to support a phishing resistant authentication mechanism, which may in itself negate the need for a cross-device flow.</t>
          <t><strong>Limitations:</strong> Authenticating on the Consumption Device before starting a cross-device flow does not prevent the attacks described in <xref target="example-b5"/> and <xref target="Example-B7"/> and it is RECOMMENDED that additional mitigations described in this document is used if the cross-device flows are used in scenarios such as <xref target="example-a5"/> and <xref target="example-a7"/>.</t>
        </section>
        <section anchor="request-verification">
          <name>Request Initiation Verification</name>
          <t>The user MAY be asked to confirm if they initiated an authentication or authorization request by sending a one-time password (OTP) or PIN to the user's Authorization Device and asking them to enter it on the Consumption Device to confirm the request. If the request was initiated without the users' consent, they would receive an OTP or PIN out of context which may raise suspicion for the user. In addition, they would not have information on where to enter the OTP or PIN. The user experience on the Authorization Device MAY reinforce the risk of receiving an out-of-context OTP or PIN and provide information to the user on how to report an unauthorized authentication or authorization request.</t>
          <t><strong>Limitations:</strong> The additional verification step may reduce the overall usability of the system as it is one more thing users need to do right. Attackers may combine traditional phishing attacks and target users who respond to those messages with an interactive attack that sets the expectation with the user that they will have to provide the OTP or PIN, in addition to granting authorization for the request.</t>
        </section>
        <section anchor="request-binding">
          <name>Request Binding with Out-of-Band Data</name>
          <t>In the User-Transferred Session Data Pattern, users MAY enter out-of-band information on the Consumption Device to start the authorization process. The out-of-band data entered by the user MAY then be included in the QR code which is displayed on the Consumption Device. When the QR code is scanned by the Authorization Device, the out-of-band data is verified by the user or by the Authorization Device. The out-of-band data could be any attribute that the user or Authorization Device can retrieve during the authorization process. Examples include a serial number, one-time password or PIN, location or any other data that the user or the Authorization Device can recall or retrieve during the authorization process (<xref target="MPRCS2020"/>, <xref target="PCRSM2023"/>).</t>
          <t><strong>Limitations:</strong> A sophistacted attacker may include an additional step in their attack where they create a phishing attack that gathers the out-of-band data from the user before initiating the authorization request. The additional step could also have a negative impact on the usability level of the solution.</t>
        </section>
        <section anchor="practical-mitigation-summary">
          <name>Practical Mitigation Summary</name>
          <t>The practical mitigations described in this section can prevent the attacks from being initiated, disrupt attacks once they start or reduce the impact or remediate an attack if it succeeds. When combining one or more of these mitigations the overall security profile of a cross-device flow improves significantly. The following table provides a summary view of these mitigations:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Mitigation</th>
                <th align="center">Prevent</th>
                <th align="center">Disrupt</th>
                <th align="center">Recover</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Establish Proximity</td>
                <td align="center">X</td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Short Lived/Timebound Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">One-Time or Limited Use Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Unique Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Content Filtering</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Detect and remediate</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Trusted Devices</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Trusted Networks</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Limited Scopes</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Short Lived Tokens</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Rate Limits</td>
                <td align="center">X</td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Sender-Constrained Tokens</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">User Education</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">User Experience</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Authenticate-then-Initiate</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Request Initiation Verification</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Request Binding with Out-of-Band Data</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
            </tbody>
          </table>
          <t>Table: Practical Mitigation Summary</t>
        </section>
      </section>
      <section anchor="protocol-selection">
        <name>Protocol Selection</name>
        <t>Some cross-device protocols are more susceptible to the exploits described in this document than others. In this section we will compare three different cross-device protocols in terms of their susceptibility to exploits focused on the unauthenticated channel, the prerequisites to implement and deploy them, along with guidance on when it is appropriate to use them.</t>
        <section anchor="ietf-oauth-20-device-authorization-grant-rfc8628">
          <name>IETF OAuth 2.0 Device Authorization Grant <xref target="RFC8628"/>:</name>
          <section anchor="description">
            <name>Description</name>
            <t>A standard to enable authorization on devices with constrained input capabilities (smart TVs, printers, kiosks). In this protocol, the user code or QR code is displayed or made available on the Consumption Device (smart TV) and entered on a second device (e.g., a mobile phone).</t>
          </section>
          <section anchor="susceptibility">
            <name>Susceptibility</name>
            <t>There are several reports in the public domain outlining how the unauthenticated channel may be exploited to execute a Cross-Device Consent Phishing attack (<xref target="Exploit1"/>, <xref target="Exploit2"/>, <xref target="Exploit3"/>, <xref target="Exploit4"/>, <xref target="Exploit5"/>, <xref target="Exploit6"/>).</t>
          </section>
          <section anchor="device-capabilities">
            <name>Device Capabilities</name>
            <t>There are no assumptions in the protocol about underlying capabilities of the device, making it a "least common denominator" protocol that is expected to work on the broadest set of devices and environments.</t>
          </section>
          <section anchor="mitigations">
            <name>Mitigations</name>
            <t>In addition to the security considerations section in the standard, it is RECOMMENDED that one or more of the mitigations outlined in this document be considered, especially mitigations that can help establish proximity or prevent attackers from obtaining QR or user codes.</t>
          </section>
          <section anchor="when-to-use">
            <name>When to use</name>
            <t>Only use this protocol if other cross-device protocols are not viable due to device or system constraints. Avoid using if the protected resources are sensitive, high value, or business critical. Always deploy additional mitigations like proximity or only allow with pre-registered devices. Do not use for same-device scenarios (e.g., if the Consumption Device and Authorization Device is the same device).</t>
          </section>
        </section>
        <section anchor="openid-foundation-client-initiated-back-channel-authentication-ciba">
          <name>OpenID Foundation Client Initiated Back-Channel Authentication (CIBA):</name>
          <section anchor="description-1">
            <name>Description</name>
            <t>Client Initiated Back-Channel Authentication (CIBA) <xref target="CIBA"/>: A standard developed in the OpenID Foundation that allows a device or service (e.g., a personal computer, smart TV, Kiosk) to request the OpenID Provider to initiate an authentication flow if it knows a valid identifier for the user. The user completes the authentication flow using a second device (e.g., a mobile phone). In this flow the user does not scan a QR code or obtain a user code from the Consumption Device, but is instead contacted by the OpenID Provider to complete the authentication using a push notification, e-mail, text message or any other suitable mechanism.</t>
          </section>
          <section anchor="susceptibility-1">
            <name>Susceptibility</name>
            <t>Less susceptible to unauthenticated channel attacks, but still vulnerable to attackers who know or can guess the user identifier and initiate an attack as described in <xref target="example-b4"/>.</t>
          </section>
          <section anchor="device-capabilities-1">
            <name>Device Capabilities</name>
            <t>There is no requirement on the Consumption Device to support specific hardware. The Authorization Device must be registered/associated with the user and it must be possible for the Authorization Server to trigger an authorization on this device.</t>
          </section>
          <section anchor="mitigations-1">
            <name>Mitigations</name>
            <t>In addition to the security considerations section in the standard, it is RECOMMENDED that one or more of the mitigations outlined in this document be considered, especially mitigations that can help establish proximity or prevent attackers from initiating authorization requests.</t>
          </section>
          <section anchor="when-to-use-1">
            <name>When to Use</name>
            <t>Use CIBA instead of Device Authorization Grant if it is possible for the Consumption Device to obtain a user identifier on the Consumption Device (e.g., through an input or selection mechanism) and if the Authorization Server can trigger an authorization on the Authorization Device. Do not use for same-device scenarios (e.g., if the Consumption Device and Authorization Device is the same device).</t>
          </section>
        </section>
        <section anchor="fido2webauthn">
          <name>FIDO2/WebAuthn</name>
          <section anchor="description-2">
            <name>Description</name>
            <t>FIDO2/WebAuthn is a stack of standards developed in the FIDO Alliance and W3C respectively which allow for origin-bound, phishing-resistant user authentication using asymmetric cryptography that can be invoked from a web browser or native client. Version 2.2 of the FIDO Client to Authenticator Protocol (CTAP) supports a new cross-device authentication protocol, called "hybrid transports", which enables an external device, such as a phone or tablet, to be used as a roaming authenticator for signing into the primary device, such as a personal computer. This is commonly called FIDO Cross-Device Authentication (CDA). CTAP 2.2 hybrid transports is implemented by the client and authenticator platforms.</t>
            <t>When a user wants to authenticate using their mobile device (authenticator) for the first time, they need to link their authenticator to their main device. This is done using a scan of a QR code. When the authenticator scans the QR code, the device sends an encrypted BLE advertisement containing keying material and a tunnel ID. The main device (CTAP client) and authenticator both establish connections to the web service, and the normal CTAP protocol exchange occurs.</t>
            <t>If the user chooses to keep their authenticator linked with the main device, the QR code link step is not necessary for subsequent use. The user will receive a push notification on the authenticator.</t>
          </section>
          <section anchor="susceptibility-2">
            <name>Susceptibility</name>
            <t>The Cross-Device Authentication flow proves proximity by leveraging BLE advertisements for service establishment, significantly reducing the susceptibility to any of the exploits described in Examples 1-6.</t>
          </section>
          <section anchor="device-capabilities-2">
            <name>Device Capabilities</name>
            <t>Both the Consumption Device and the authenticator require BLE support and access to the internet. The Consumption Device must support both the WebAuthn API <xref target="W3CWebAuthn"/> (or a platform-specific WebAuthn abstraction for native apps) and the FIDO Client to Authenticator Protocol (CTAP), specifically version 2.2 with hybrid transports <xref target="FIDOCTAP22"/>. The device serving as the FIDO authenticator must also support CTAP 2.2 or later to be used as a cross-device authenticator.</t>
          </section>
          <section anchor="mitigations-2">
            <name>Mitigations</name>
            <t>FIDO Cross-Device Authentication (CDA) establishes proximity through the use of BLE, reducing the need for additional mitigations. An implementer MAY still choose to implement additional mitigation as described in this document.</t>
          </section>
          <section anchor="when-to-use-2">
            <name>When to Use</name>
            <t>FIDO2/WebAuthn SHOULD be used for cross-device authentication scenarios whenever the devices are capable of doing so and a suitable FIDO credential is not available on the Consumption Device. It MAY be used as an authentication method with the Authorization Code Grant <xref target="RFC6749"/> and PKCE <xref target="RFC7636"/>, to grant authorization to a Consumption Device (e.g., smart TV or interactive whiteboard) using a device serving as the FIDO authenticator (e.g. a mobile phone) for authentication. This combination of FIDO2/WebAuthn and Authorization Code Flow with PKCE enables cross device authorization flows, without the risks posed by the Device Authorization Grant <xref target="RFC8628"/>.</t>
          </section>
        </section>
        <section anchor="protocol-selection-summary">
          <name>Protocol Selection Summary</name>
          <t>The FIDO Cross-Device Authentication (CDA) flow provides the best protection against attacks on the unauthenticated channel for cross device flows. It can be combined with OAuth 2.0 and OpenID Connect protocols for standards-based authorization and authentication flows. If FIDO2/WebAuthn support is not available, Client Initiated Backchannel Authentication (CIBA) provides an alternative, provided that there is a channel through which the authorization server can contact the end user. Examples of such a channel include device push notifications, e-mail or text messages which the user can access from their device. If CIBA is used, additional mitigations to enforce proximity and initiate transactions from trusted devices or trusted networks SHOULD be considered. The OAuth 2.0 Device Authorization Grant provides the most flexibility and has the lowest requirements on devices used, but it is RECOMMENDED that it is only used when additional mitigations are deployed to prevent attacks that exploit the unauthenticated channel between devices.</t>
        </section>
      </section>
      <section anchor="foundational-pillars">
        <name>Foundational Pillars</name>
        <t>Experience with web authorization and authentication protocols such as OAuth and OpenID Connect has shown that securing these protocols can be hard. The major reason for this is that the landscape in which they are operating - the web infrastructure with browsers, servers, and the underlying network - is complex, diverse, and ever-evolving.</t>
        <t>As is the case with other kinds of protocols, it can be easy to overlook vulnerabilities in this environment. One way to reduce the chances of hidden security problems is to use mathematical-logical models to describe the protocols, their environments and their security goals, and then use these models to try to prove security. This approach is what is usually subsumed as "formal security analysis".</t>
        <t>There are two major strengths of formal analysis: First, finding new vulnerabilities does not require creativity - i.e., new classes of attacks can be uncovered even if no one thought of these attacks before. In a faithful model, vulnerabilities become clear during the proof process or even earlier. Second, formal analysis can exclude the existence of any attacks within the boundaries of the model (e.g., the protocol layers modeled, the level of detail and functionalities covered, the assumed attacker capabilities, and the formalized security goals). As a downside, there is usually a gap between the model (which necessarily abstracts away from details) and implementations. In other words, implementations can introduce flaws where the model does not have any. Nonetheless, for protocol standards, formal analysis can help to ensure that the specification is secure when implemented correctly.</t>
        <t>There are various different approaches to formal security analysis and each brings its own strengths and weaknesses. For example, models differ in the level of detail in which they can capture a protocol (granularity, expressiveness), in the kind of statements they can produce, and whether the proofs can be assisted by tools or have to be performed manually.</t>
        <t>The following works have been identified as relevant to the analysis of cross-device flows:</t>
        <ul spacing="normal">
          <li>
            <t>In "Formal analysis of self-issued OpenID providers" <xref target="Bauer2022"/>,
the protocol of <xref target="OpenID.SIOPV2"/> was analyzed using the Web
Infrastructure Model (WIM). The WIM is specifically designed for the
analysis of web authentication and authorization protocols. While it
is a manual (pen-and-paper) model, it captures details of browsers
and web interactions to a degree that is hard to match in automated
models. In previous works, previously unknown flaws in OAuth, OpenID
Connect, and FAPI were discovered using the WIM. In the analysis of a
cross-device SIOP V2 flow in <xref target="Bauer2022"/>, the request replay attack
already described in Section 13.3 of <xref target="OpenID.SIOPV2"/> was confirmed
in the model. A mitigation was implemented based on a so-called
Cross-Device Stub, essentially a component that serves to link the
two devices before the protocol flow starts. This can be seen as an
implementation of a trusted device relationship as described in
<xref target="trusted_devices"/>. The mitigation was shown to be effective in the
model.</t>
          </li>
          <li>
            <t>In "Security analysis of the Grant Negotiation and Authorization
Protocol" <xref target="Helmschmidt2022"/>, an analysis of a draft of the Grant
Negotiation and Authorization Protocol (GNAP)
<xref target="RFC9635"/> was performed using the Web
Infrastructure Model. The same attack as in <xref target="Bauer2022"/> was found to
apply to GNAP as well. In this case, a model of a "careful user" (see
<xref target="user_education"/> was used to show that the attack can be prevented
(at least in theory) by the user.</t>
          </li>
          <li>
            <t>In "The Good, the Bad and the (Not So) Ugly of Out-of-Band
Authentication with eID Cards and Push Notifications: Design, Formal
and Risk Analysis" <xref target="MPRCS2020"/>, Pernpruner et al. formally
analysed an authentication protocol relying on push notifications
delivered to an out-of-band device to approve the authentication
attempt on the primary device (Backchannel-Transferred Session
Pattern, <xref target="btsp"/>). The analysis was performed using the specification
language ASLan++ and the model checker SATMC. According to the
results of the analysis, they identified and defined the category of
<em>implicit attacks</em>, which manage to deceive users into approving a
malicious authentication attempt through social engineering
techniques, thus not compromising all the authentication factors
involved; these attacks are aligned with the definition of
Cross-Device Consent Phishing (CDCP) attacks.</t>
          </li>
          <li>
            <t>In "An Automated Multi-Layered Methodology to Assist the Secure and
Risk-Aware Design of Multi-Factor Authentication Protocols"
<xref target="PCRSM2023"/>, Pernpruner et al. defined a multi-layered methodology
to analyze multi-factor authentication protocols at different levels
of granularity. They leveraged their methodology to formally analyze
a protocol relying on a QR code that has to be scanned on a secondary
device to approve the authentication attempt on the primary device
(User-Transferred Session Data Pattern, <xref target="utsdp"/>). Given the results
of the analysis, they proposed some practical mitigations either to
prevent or reduce the risk of successful attacks, such as those
described in <xref target="user_education"/>, <xref target="request-verification"/> and
<xref target="request-binding"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="conclusion">
      <name>Conclusion</name>
      <t>Cross-device flows enable authorization on devices with limited input capabilities, allow for secure authentication when using public or shared devices, provide a path towards multi-factor authentication and, provide the convenience of a single, portable credential store.</t>
      <t>The popularity of cross-device flows attracted the attention of attackers that exploit the unauthenticated channel between the Consumption Device and Authorization Device using techniques commonly used in phishing attacks. These Cross-Device Consent Phishing (CDCP) attacks allow attackers to obtain access and refresh tokens, rather than authentication credentials, resulting in access to resources even if the user used multi-factor authentication.</t>
      <t>To address these attacks, we propose a three pronged approach that includes the deployment of practical mitigations to safeguard protocols that are already deployed, provide guidance on when to use different protocols, including protocols that are not susceptible to these attacks, and the introduction of formal methods to evaluate the impact of mitigations and find additional issues.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>The authors would like to thank Tim Cappalli, Nick Ludwig, Adrian Frei, Nikhil Reddy Boreddy, Bjorn Hjelm, Joseph Heenan, Brian Campbell, Damien Bowden, Kristina Yasuda, Tim Würtele, Karsten Meyer zu Selhausen, Maryam Mehrnezhad, Marco Pernpruner, Giada Sciarretta, Dean H. Saxe, Roy Williams, Dan Moore and others (please let us know, if you've been mistakenly omitted) for their valuable input, feedback and general support of this work.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
          <front>
            <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
            <author initials="G. F." surname="Rodriguez" fullname="Gonzalo Fernandez Rodriguez">
              <organization>Telefonica</organization>
            </author>
            <author initials="F." surname="Walter" fullname="Florian Walter">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="A." surname="Nennker" fullname="Axel Nennker">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="D." surname="Tonge" fullname="Dave Tonge">
              <organization>Moneyhub</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="Brian Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
        </reference>
        <reference anchor="CAEP" target="https://openid.net/specs/openid-caep-specification-1_0-01.html">
          <front>
            <title>OpenID Continuous Access Evaluation Profile 1.0 - draft 01</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>Google</organization>
            </author>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Microsoft</organization>
            </author>
            <date year="2021" month="June"/>
          </front>
        </reference>
        <reference anchor="SSF" target="https://openid.net/specs/openid-sse-framework-1_0-01.html">
          <front>
            <title>OpenID Shared Signals and Events Framework Specification 1.0</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>Google</organization>
            </author>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Microsoft</organization>
            </author>
            <author initials="M." surname="Scurtescu" fullname="Marius Scurtescu">
              <organization>Coinbase</organization>
            </author>
            <author initials="A." surname="Backman" fullname="Annabelle Backman">
              <organization>Amazon</organization>
            </author>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization>Yubico</organization>
            </author>
            <date year="2021" month="June"/>
          </front>
        </reference>
        <reference anchor="W3CWebAuthn" target="https://www.w3.org/TR/2025/WD-webauthn-3-20250127/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 3</title>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Okta</organization>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author initials="E." surname="Lundberg" fullname="Emil Lundberg">
              <organization>Yubico</organization>
            </author>
            <author initials="M." surname="Miller" fullname="Matthew Miller">
              <organization>Cisco</organization>
            </author>
            <date year="2025" month="January"/>
          </front>
        </reference>
        <reference anchor="FIDOCTAP22" target="https://fidoalliance.org/specs/fido-v2.2-ps-20250228/fido-client-to-authenticator-protocol-v2.2-ps-20250228.html">
          <front>
            <title>Client to Authenticator Protocol (CTAP)</title>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization>Yubico</organization>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author initials="R." surname="Lindemann" fullname="Rolf Lindemann">
              <organization>Nok Nok Labs</organization>
            </author>
            <author initials="S." surname="Verrept" fullname="Johan Verrept">
              <organization>OneSpan</organization>
            </author>
            <author initials="D." surname="Waite" fullname="David Waite">
              <organization>Ping Identity</organization>
            </author>
            <date year="2025" month="February"/>
          </front>
        </reference>
        <reference anchor="IEEE802154" target="https://standards.ieee.org/standard/802_15_4-2020.html">
          <front>
            <title>IEEE Std 802.15.4-2020: IEEE Standard for Low-Rate Wireless Networks</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date year="2020"/>
          </front>
          <seriesInfo name="{&quot;name&quot; =&gt; &quot;IEEE&quot;, &quot;value&quot; =&gt; &quot;802.15.4-2020&quot;}" value=""/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </reference>
        <reference anchor="Exploit1" target="https://0xboku.com/2021/07/12/ArtOfDeviceCodePhish.html">
          <front>
            <title>The Art of the Device Code Phish</title>
            <author initials="B." surname="Cooke" fullname="Bobby Cooke">
              <organization/>
            </author>
            <date year="2021" month="July"/>
          </front>
        </reference>
        <reference anchor="Exploit2" target="https://www.optiv.com/insights/source-zero/blog/microsoft-365-oauth-device-code-flow-and-phishing">
          <front>
            <title>Microsoft 365 OAuth Device Code Flow and Phishing</title>
            <author initials="D." surname="Min" fullname="Daniel Min">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
        <reference anchor="Exploit3" target="https://o365blog.com/post/phishing/#new-phishing-technique-device-code-authentication">
          <front>
            <title>Introducing a new phishing technique for compromising Office 365 accounts</title>
            <author initials="N." surname="Syynimaa" fullname="Nestori Syynimaa">
              <organization/>
            </author>
            <date year="2020" month="October"/>
          </front>
        </reference>
        <reference anchor="Exploit4" target="https://www.youtube.com/watch?v=9slRYvpKHp4">
          <front>
            <title>New Phishing Attacks Exploiting OAuth Authentication Flows (DEFCON 29)</title>
            <author initials="J." surname="Hwong" fullname="Jenko Hwong">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
        <reference anchor="Exploit5" target="https://www.secureworks.com/blog/oauths-device-code-flow-abused-in-phishing-attacks">
          <front>
            <title>OAuth's Device Code Flow Abused in Phishing Attacks</title>
            <author>
              <organization>Secureworks Counter Threat Unit (CTU)</organization>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
        <reference anchor="Exploit6" target="https://www.helpnetsecurity.com/2022/08/11/squarephish-video/">
          <front>
            <title>SquarePhish: Advanced phishing tool combines QR codes and OAuth 2.0 device code flow</title>
            <author initials="K." surname="Talebzadeh" fullname="Kam Talebzadeh">
              <organization/>
            </author>
            <author initials="N." surname="Romsdah" fullname="Nevada Romsdah">
              <organization/>
            </author>
            <date year="2022" month="August"/>
          </front>
        </reference>
        <reference anchor="NYC.Bike" target="https://nypost.com/2021/08/07/citi-bikes-being-swiped-by-joyriding-scammers-who-have-cracked-the-qr-code/">
          <front>
            <title>Citi Bikes being swiped by joyriding scammers who have cracked the QR code</title>
            <author initials="K. J." surname="Byrne" fullname="Kerry J. Byrne">
              <organization/>
            </author>
            <date year="2021" month="August"/>
          </front>
        </reference>
        <reference anchor="OpenID.SIOPV2" target="https://bitbucket.org/openid/connect/src/master/openid-connect-self-issued-v2/openid-connect-self-issued-v2-1_0.md">
          <front>
            <title>Self-Issued OpenID Provider v2</title>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="M. B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID.VP" target="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Presentations</title>
            <author initials="O." surname="Terbu" fullname="Oliver Terbu">
              <organization>Mattr</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization>Mattr</organization>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID.VCI" target="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Issuance</title>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization>Mattr</organization>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="Bauer2022" target="https://elib.uni-stuttgart.de/handle/11682/12417">
          <front>
            <title>Formal analysis of self-issued OpenID providers</title>
            <author initials="C." surname="Bauer" fullname="C Bauer">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M. B." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
        <reference anchor="PCRSM2023" target="https://doi.org/10.1109/TDSC.2023.3296210">
          <front>
            <title>An Automated Multi-Layered Methodology to Assist the Secure and Risk-Aware Design of Multi-Factor Authentication Protocols, IEEE Transactions on Dependable and Secure Computing (TDSC)</title>
            <author initials="M." surname="Pernpruner" fullname="Marco Pernpruner">
              <organization/>
            </author>
            <author initials="R." surname="Carbone" fullname="Roberto Carbone">
              <organization/>
            </author>
            <author initials="G." surname="Sciarretta" fullname="Giada Sciarretta">
              <organization/>
            </author>
            <author initials="S." surname="Ranise" fullname="Silvio Ranise">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="MPRCS2020" target="https://doi.org/10.1145/3374664.3375727">
          <front>
            <title>The Good, the Bad and the (Not So) Ugly of Out-of-Band Authentication with eID Cards and Push Notifications: Design, Formal and Risk Analysis, Proceedings of the Tenth ACM Conference on Data and Application Security and Privacy, Pages 223–234, Association for Computing Machinery</title>
            <author initials="M." surname="Pernpruner" fullname="Marco Pernpruner">
              <organization/>
            </author>
            <author initials="R." surname="Carbone" fullname="Roberto Carbone">
              <organization/>
            </author>
            <author initials="S." surname="Ranise" fullname="Silvio Ranise">
              <organization/>
            </author>
            <author initials="G." surname="Sciarretta" fullname="Giada Sciarretta">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="Helmschmidt2022" target="https://elib.uni-stuttgart.de/handle/11682/12220">
          <front>
            <title>Security analysis of the Grant Negotiation and Authorization Protocol</title>
            <author initials="F." surname="Helmschmidt">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Baki2023" target="https://doi.org/10.1109/TDSC.2022.3151103">
          <front>
            <title>Sixteen Years of Phishing User Studies: What Have We Learned?, IEEE Transactions on Dependable and Secure Computing, Volume 20, Number 2, Pages 1200–1212</title>
            <author initials="S." surname="Baki">
              <organization/>
            </author>
            <author initials="R. M." surname="Verma">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
      </references>
    </references>
    <?line 1155?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-latest</t>
      <ul spacing="normal">
        <li>
          <t>Fixed malformed labels</t>
        </li>
        <li>
          <t>Clarified common use case for when phone and TVs do not use the same network.</t>
        </li>
        <li>
          <t>Clarified role of authorization server in establishing proximity.</t>
        </li>
        <li>
          <t>Clarified which mitigations can be implented by the authorization server only.</t>
        </li>
        <li>
          <t>Add Dan Moore to acknowledgements</t>
        </li>
      </ul>
      <t>-10</t>
      <ul spacing="normal">
        <li>
          <t>Shepherd feedback: Describe unauthenticated channel.</t>
        </li>
        <li>
          <t>Shepherd feedback: Seperate normative and informative references.</t>
        </li>
        <li>
          <t>Shepherd feedback: Update FIDO/WebAuthn references</t>
        </li>
      </ul>
      <t>-09</t>
      <ul spacing="normal">
        <li>
          <t>Affiliation change to allow publication to Datatracker.</t>
        </li>
        <li>
          <t>No content changes - re-published to avoid expiry while waiting on shepherd review.</t>
        </li>
      </ul>
      <t>-08</t>
      <ul spacing="normal">
        <li>
          <t>Editorial updates.</t>
        </li>
      </ul>
      <t>-07</t>
      <ul spacing="normal">
        <li>
          <t>Clarification of FIDO\WebAuthn section.</t>
        </li>
        <li>
          <t>Updated langugage in section on FIDO to allow for use of FIDO keys on consumption devices.</t>
        </li>
        <li>
          <t>Clarified origin of QR Code.</t>
        </li>
        <li>
          <t>Editorial updates</t>
        </li>
        <li>
          <t>Updated examples to be consistent.</t>
        </li>
        <li>
          <t>Made diagram description clearer.</t>
        </li>
        <li>
          <t>Added CTAP 2.2 Draft.</t>
        </li>
        <li>
          <t>Added additional guidance on geolocation inaccuracies.</t>
        </li>
        <li>
          <t>Added Roy Williams to acknowledgements</t>
        </li>
        <li>
          <t>Clarified that authorization servers can detect</t>
        </li>
        <li>
          <t>Consistent use of "smart TV"</t>
        </li>
        <li>
          <t>Fixed references</t>
        </li>
      </ul>
      <t>-06</t>
      <ul spacing="normal">
        <li>
          <t>Corrected typos.</t>
        </li>
      </ul>
      <t>-05</t>
      <ul spacing="normal">
        <li>
          <t>Added section to provide actionable guidance to implementers on how to use this document.</t>
        </li>
        <li>
          <t>Expanded section on formal analysis to include completed research projects.</t>
        </li>
        <li>
          <t>Added reference to OpenID for Verifiable Presentations.</t>
        </li>
      </ul>
      <t>-04</t>
      <ul spacing="normal">
        <li>
          <t>Corrected formatting issue that prevented history from showing correctly.</t>
        </li>
      </ul>
      <t>-03</t>
      <ul spacing="normal">
        <li>
          <t>Introduced normative SHOULD, RECOMMENDED and MAY when applied to actions the Authorization Server, Resource Server or Client may implement.</t>
        </li>
        <li>
          <t>Added User Education as a standalone mitigation.</t>
        </li>
        <li>
          <t>Added Maryam Mehrnezhad, Marco Pernpruner and Giada Sciarretta to the contributors list.</t>
        </li>
        <li>
          <t>Added Request Binding with Out-of-Band Data as an additional mitigation.</t>
        </li>
        <li>
          <t>Adopted the OpenID Foundation terminology from <xref target="CIBA"/> and changed Initiating Device to Consumption Device</t>
        </li>
        <li>
          <t>Added Fake Helpdesk and Consent Request Overload examples</t>
        </li>
        <li>
          <t>Replaced "Authenticated Flow" mitigation name with "Authenticate-then-Intitiate"</t>
        </li>
        <li>
          <t>Added Cross-Device Session Transfer pattern</t>
        </li>
      </ul>
      <t>-02</t>
      <ul spacing="normal">
        <li>
          <t>Fixed typos and grammar edits</t>
        </li>
        <li>
          <t>Capitalised Initiating Device and Authorization Device</t>
        </li>
        <li>
          <t>Introduced Cross-Device Consent Phishing as a label for the types of attacks described in this document.</t>
        </li>
        <li>
          <t>Updated labels for different types of flows (User-Transferred Session Data Pattern, Backchannel-Transferred Session Pattern, User-Transferred Authorization Data Pattern)</t>
        </li>
        <li>
          <t>Adopted consistent use of hyphenation in using "cross-device"</t>
        </li>
        <li>
          <t>Consistent use of "Authorization Device"</t>
        </li>
        <li>
          <t>Update Reference to Secure Signals Framework to reflect name change from Secure Signals and Events</t>
        </li>
        <li>
          <t>Described difference between proximity enforced and proximity-less cross-device flows</t>
        </li>
        <li>
          <t>General editorial pass</t>
        </li>
      </ul>
      <t>-01</t>
      <ul spacing="normal">
        <li>
          <t>Added additional diagrams and descriptions to distinguish between different cross-device flow patterns.</t>
        </li>
        <li>
          <t>Added short description on limitations of each mitigation.</t>
        </li>
        <li>
          <t>Added acknowledgement of additional contributors.</t>
        </li>
        <li>
          <t>Fixed document history format.</t>
        </li>
      </ul>
      <t>-00 (Working Group Draft)</t>
      <ul spacing="normal">
        <li>
          <t>Initial WG revision (content unchanged from draft-kasselman-cross-device-security-03)</t>
        </li>
      </ul>
      <t>-03 draft-kasselman-cross-device-security</t>
      <ul spacing="normal">
        <li>
          <t>Minor edits and typos</t>
        </li>
      </ul>
      <t>-02 draft-kasselman-cross-device-security</t>
      <ul spacing="normal">
        <li>
          <t>Minor edits and typos</t>
        </li>
        <li>
          <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-02</t>
        </li>
      </ul>
      <t>-01 draft-kasselman-cross-device-security</t>
      <ul spacing="normal">
        <li>
          <t>Updated draft based on feedback from version circulated to OAuth working group</t>
        </li>
        <li>
          <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-01</t>
        </li>
      </ul>
      <t>-00 draft-kasselman-cross-device-security</t>
      <ul spacing="normal">
        <li>
          <t>Initial draft adopted from document circulated to the OAuth Security Workshop Slack Channel</t>
        </li>
        <li>
          <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-00</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
