<?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-13" category="bcp" consensus="true" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="CDFS">Cross-Device Flows: Security Best Current Practice</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-oauth-cross-device-security-13"/>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization>Defakto</organization>
      <address>
        <email>prkasselman@gmail.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="December" day="02"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <keyword>security</keyword>
    <keyword>oauth2</keyword>
    <keyword>best current practice</keyword>
    <abstract>
      <?line 317?>

<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 326?>

<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 use cases where the cross-device flow is used to authorize access to a resource (cross-device authorization flows) and use 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 protocols against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks that the OAuth working group considers best practices at the time of writing this specification.</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, <xref target="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 a second device (e.g., a mobile phone). This specification focus on two use cases for transferring the session:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Cross-Device Authorization:</strong> In the cross-device authorization use case, the second device is used to authenticate the user or grant authorization before passing control back to the first device as described in <xref target="cda"/>.</t>
        </li>
        <li>
          <t><strong>Cross-Device Session Transfer</strong> In the cross-device session transfer use case, the user is already authenticated on the first device, before the session is transferred to the second device without requiring the user to re-authenticate as described in <xref target="cdst"/>.</t>
        </li>
      </ul>
      <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="cda">
        <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="cdst">
        <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 typically 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. Note that the authorization server typically cannot directly determine whether the Consumption Device and Authorization Device are physically close to each other. Instead, it must rely on the surrounding systems, protocols in use, device capabilities, or information it obtains from other systems to establish or verify proximity. The authorization server can validate information it receives, but it cannot independently measure or enforce proximity on its own. There are a number 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.</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"/>.</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 user's 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 authorization takes place in a different location than the one in which the transaction is initiated. 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 interactive 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> This mitigation is limited to Consumption Devices capable of supporting phishing resistant authentication mechanisms. 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="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations are described in <xref target="best-practices"/> and <xref target="mitigating-against-cross-device-flow-attacks"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </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-1_0-final.html">
          <front>
            <title>OpenID Continuous Access Evaluation Profile 1.0</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Microsoft</organization>
            </author>
            <date year="2025" month="August"/>
          </front>
        </reference>
        <reference anchor="SSF" target="https://openid.net/specs/openid-sharedsignals-framework-1_0-final.html">
          <front>
            <title>OpenID Shared Signals Framework Specification 1.0</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</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>
            <author initials="S." surname="Miel" fullname="Shayne Miel">
              <organization>Cisco</organization>
            </author>
            <date year="2025" month="August"/>
          </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="">
          <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="July"/>
          </front>
        </reference>
        <reference anchor="IEEE802154" target="https://standards.ieee.org/ieee/802.15.4/11041/">
          <front>
            <title>IEEE Std 802.15.4-2024: IEEE Standard for Low-Rate Wireless Networks</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date year="2024"/>
          </front>
        </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 1165?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <t>-latest
   * Fixed reference for protocol selection (see issue #189)
   * Change affiliation
   * AD Feedback: Add Security Consideration
   * AD Feedback: Add IANA Consideration
   * AD Feedback: Capitalise SHOULD not -&gt; SHOULD NOT (issue #185)
   * AD Feedback: AD Nits (see https://github.com/oauth-wg/oauth-cross-device-security/issues/195)
   * AD Feedback: Clarify limitations on consumption device (see https://github.com/oauth-wg/oauth-cross-device-security/issues/194)
   * AD Feedback: Remove repetitive text (see https://github.com/oauth-wg/oauth-cross-device-security/issues/193)
   * AD Feedback: Clrify seperate use cases (see https://github.com/oauth-wg/oauth-cross-device-security/issues/192)</t>
      <t>-12</t>
      <ul spacing="normal">
        <li>
          <t>Fixed FIDO CTAP V2.2 URL</t>
        </li>
        <li>
          <t>Update SSF Reference</t>
        </li>
        <li>
          <t>CAEP Reference Update</t>
        </li>
        <li>
          <t>Fix IEEE reference</t>
        </li>
        <li>
          <t>Update IEEE Reference</t>
        </li>
      </ul>
      <t>-11</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>
        <li>
          <t>Updated outdated references.</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>
