<?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.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-cross-device-security-16" 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-16"/>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization>Defakto Security</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="2026" month="March" day="02"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <keyword>security</keyword>
    <keyword>oauth2</keyword>
    <keyword>best current practice</keyword>
    <abstract>
      <?line 333?>

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

<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 unauthenticated 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 distinguishes 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 are 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 commonly used in phishing attacks to gain unauthorized access to the
user's data.</t>
        <t>Several publications have emerged in the public domain (<xref target="ARTDCPHISH"/>, <xref target="DCFLOWPHISH"/>, <xref target="NEWDCPHISH"/>, <xref target="DEFCON29"/>,
<xref target="DCATTACK"/>, <xref target="SQPHISH"/>), 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 artifacts that allow them to set up 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 (e.g. system designers, architects, product managers, security specialists, fraud analysts, and engineers) of cross-device flows to defend against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks.</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>
        <t>This document uses the terms "social engineering" and "phishing" as
described in the NIST Computer Security Resource Center Glossary <xref target="NISTGlossary"/>.</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 CDCP and CDSP 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 select appropriate mitigations from <xref target="practical-mitigations"/> to address risks identified in the risk assessment.</t>
        </li>
        <li>
          <t>Implementers SHOULD include proximity as one of the selected mitigations 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 enable a user to initiate an interaction on one device (e.g., a smart TV) and complete or continue it on a second device (e.g., a mobile phone). This specification addresses two distinct cross-device use cases:</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 and 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 follows 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 Authorization 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 Authorization Device (e.g., mobile phone) that they enter on Consumption Device. Note: The use of a 6-digit code is illustrative and reflects common practice at the time of writing. Code length may vary based on usability and risk considerations, and specifying the appropriate length is out of scope for this document.</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. Figure 1 shows a typical example of this flow:</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
             |  Consumption |--(B) Request -------->|               |
             |    Device    |      QR/User Code     |               |
             |              |                       |               |
             |              |<-(C) Return ----------|               |
    +------->|              |      QR/User Code     |               |
    |        |              |                       |               |
    |        |              |--(D) Poll for ------->|               |
   (A) User  |              |      Authorization    |               |
    |  Start |              |                       |               |
    |  Flow  |              |<-(J) Grant -----------| Authorization |
    |        |              |      Authorization    |     Server    |
    |        +--------------+                       |               |
    |                                               |               |
+------+                                            |               |
| User |                                            |               |
+------+                                            |               |
 |   |                                              |               |
 |  (E) Scan QR code or enter User Code             |               |
 |   |                                              |               |
 |   |       +--------------+                       |               |
 |   +------>| Authorization|                       |               |
 |           |    Device    |--(F) Send QR code --->|               |
 |           |              |      or user code     |               |
 |           |              |                       |               |
 |           |              |<-(G) Request user ----|               |
 |           |              |     Authentication and|               |
 |           |              |     Authorization     |               |
 +-(H) User->|              |                       |               |
Authenticates|              |                       |               |
and grants   |              |                       |               |
Authorization|              |                       |               |
             |              |--(I) Authentication ->|               |
             |              |      and Authorization|               |
             |              |      Completes        |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 1: 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 requests a QR code or user code from an Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server returns a QR code or user code to the Consumption Device, which displays it to the user with instructions to scan the QR code or enter the user code using the Authorization Device.</t>
            </li>
            <li>
              <t>(D) The Consumption Device starts polling the Authorization Server to find out if the user granted authorization.</t>
            </li>
            <li>
              <t>(E) The user scans the QR code or enters the user code on the Authorization Device.</t>
            </li>
            <li>
              <t>(F) The QR code or user code is sent to the Authorization Server</t>
            </li>
            <li>
              <t>(G) The Authorization Server validates the QR code or user code and prompts the user to authenticate and accept or decline the authorization request.</t>
            </li>
            <li>
              <t>(H) The user authenticates and grants authorization using the Authorization Device.</t>
            </li>
            <li>
              <t>(I) The user is authenticated and authorization is granted to access the user's resources (there may be several additional messages, depending on the authentication protocol, user interface and other implementation details).</t>
            </li>
            <li>
              <t>(J) The Authorization Server grants authorization (e.g. by issuing tokens) 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. Figure 2 shows an example of this flow.</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
    +------->|  Consumption |--(B) Backchannel ---->|               |
    |        |     Device   |      Authorization    |               |
    |        |              |      Request          |               |
    |        |              |                       | Authorization |
    |        |              |<-(F) Grant------------|     Server    |
    |        +--------------+      Authorization    |               |
   (A) User                                         |               |
    |  Start                                        |               |
    |  Flow                                         |               |
    |                                               |               |
+------+                                            |               |
| User |                                            |               |
+------+                                            |               |
    |                                               |               |
   (D) User Authenticate                            |               |
    |  and Authorize Action                         |               |
    |                                               |               |
    |        +--------------+                       |               |
    |        | Authorization|                       |               |
    |        |    Device    |<-(C) Request User ----|               |
    +------->|              |      Authentication   |               |
             |              |      and Authorization|               |
             |              |                       |               |
             |              |--(E) Authentication ->|               |
             |              |      and Authorization|               |
             |              |      Completes        |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 2: 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 and instructs the user to authorize the request on the Authorization Device and waits for a response from the Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server requests user authentication and authorization on the user's Authorization Device.</t>
            </li>
            <li>
              <t>(D) If the user is unauthenticated, they use their Authorization Device to authenticate and grant authorization to the Authorization Server.</t>
            </li>
            <li>
              <t>(E) The user is authenticated and authorization is granted to access the user's resources (there may be several additional messages, depending on the authentication protocol, user interface and other implementation details).</t>
            </li>
            <li>
              <t>(F) The Authorization Server grants authorization (e.g., by issuing tokens) 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. Figure 3 shows an example of this flow.</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
    +------->|  Consumption |--(B) Backchannel ---->|               |
    |        |     Device   |      Authorization    |               |
    |        |              |      Request          |               |
    |        |              |                       |               |
    |        |              |--(F) Send------------>|               |
    |        |              |      Authorization    |               |
    |        |              |      Data             |               |
    |        |              |                       | Authorization |
    |        |              |<-(G) Grant------------|     Server    |
    |        +--------------+      Authorization    |               |
   (A) User       ^                                 |               |
    |  Start      |                                 |               |
    |  Flow      (E) User Enters                    |               |
    |             |  Authorization                  |               |
+------+          |  Data                           |               |
| User |----------+                                 |               |
+------+                                            |               |
    ^                                               |               |
   (D) User Copies                                  |               |
    |  Authorization Data                           |               |
    |                                               |               |
    |        +--------------+                       |               |
    |        | Authorization|                       |               |
    |        |    Device    |<-(C) Send ------------|               |
    +--------|              |      Authorization    |               |
             |              |      Data             |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 3: 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 reads and copies the authorization data (e.g., the 6-digit authorization code) received on the Authorization Device.</t>
            </li>
            <li>
              <t>(E) The user enters the authorization data on the Consumption Device.</t>
            </li>
            <li>
              <t>(F) The Consumption Device sends the authorization data to the Authorization Server.</t>
            </li>
            <li>
              <t>(G) The Authorization Server issues tokens or grants authorization to the Consumption Device to access the user's resources if the authorization data is the same as that send in step (C).</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. Figure 4 below shows a typical flow.</t>
          <artwork type="ascii-art"><![CDATA[
            +---------------+                       +---------------+
  +-------->| Authorization |                       | Authorization |
  |         |    Device     |--(B) Session -------->|     Server    |
  |         |               |      Transfer Request |               |
  |         |               |                       |               |
  |         |               |<-(C) Session ---------|               |
  |         |               |      Transfer Code    |               |
  |         |               |                       |               |
  |         +---------------+                       |               |
 (A) User      |                                    |               |
  |  Start    (D) User Views                        |               |
  |  Flow      |  Session Transfer Code             |               |
  |            v  or QR Code                        |               |
+---------------------------+                       |               |
|           User            |                       |               |
+---------------------------+                       |               |
                   |                                |               |
                  (E) Enter Session Transfer Code   |               |
                   |  or Scan QR code               |               |
                   |                                |               |
                   v                                |               |
            +---------------+                       |               |
            |  Consumption  |                       |               |
            |     Device    |--(F) Present -------->|               |
            |               |      Session Transfer |               |
            |               |      Code             |               |
            |               |                       |               |
            |               |<-(G) Return Session --|               |
            |               |      Context          |               |
            +---------------+                       +---------------+
]]></artwork>
          <t>Figure 4: Cross-Device 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 user starts the flow and is authenticated on their Authorization Device before they authorize the transfer of the session to the Consumption Device.</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 views the session transfer code, which may be rendered as a QR code.</t>
            </li>
            <li>
              <t>(E) The user enters the session transfer code the Consumption Device (e.g., their mobile phone). If the session transfer code is rendered as a QR code, the user scans the QR code with the target Consumption Device.</t>
            </li>
            <li>
              <t>(F) The client on the Consumption Device presents the session transfer code to the Authorization Server.</t>
            </li>
            <li>
              <t>(G) The Authorization Server verifies the session transfer code and returns the session context information needed to resume the session on the Consumption Device. The user resumes the session they initiated and authorized on the Authorization Device and proceeds to access the information on the Consumption Device.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="example-flows">
        <name>Examples of Cross-Device Flows</name>
        <t>The following examples illustrate the above flows in a diverse range of practical settings. Corresponding examples of how these flows may be exploited by attackers are documented in <xref target="example-exploits"/>.</t>
        <section anchor="example-a1">
          <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. <xref target="example-b1"/> illustrates an exploit that applies to this scenario.</t>
        </section>
        <section anchor="example-a2">
          <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. <xref target="example-b2"/> describes an exploit relevant to this example.</t>
        </section>
        <section anchor="example-a3">
          <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 bicycle 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. <xref target="example-b3"/> outlines an exploit relevant to this situation.</t>
        </section>
        <section anchor="example-a4">
          <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. <xref target="example-b4"/> describes two exploits relevant to this example.</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. <xref target="example-b5"/> gives an example of how this flow may be exploited.</t>
        </section>
        <section anchor="example-a6">
          <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. <xref target="example-b6"/> provides an example of an exploit for this use case.</t>
        </section>
        <section anchor="example-a7">
          <name>Example A7: Application Bootstrap (Cross-Device Session Transfer Pattern)</name>
          <t>An employee is signed in to 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 in to the application on the mobile phone. <xref target="Example-B7"/> describes an exploit that applies to this scenario.</t>
        </section>
        <section anchor="example-a8">
          <name>Example A8: Access a Productivity Application ()</name>
          <t>A user is accessing a Computer Aided 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. <xref target="example-b8"/> outlines an attack relevant to this scenario.</t>
        </section>
        <section anchor="example-a9">
          <name>Example A9: Administer a System (Backchannel-Transferred Session Pattern)</name>
          <t>A network administrator wants to access an administration 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. <xref target="example-b9"/> describes how an attacker might exploit this flow.</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 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 possession of this session transfer code, they present it to the Authorization Server to transfer the session and access the user's resources. These attacks are referred to as 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 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 user's resources. The Figure 5 shows an example of such an attack.</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
             |  Attacker's  |--(B) Request -------->|               |
             |  Consumption |      QR/User Code     |               |
             |    Device    |                       |               |
             |              |<-(C) Return ----------|               |
    +------->|              |      QR/User Code     |               |
    |        |              |                       |               |
    |        |              |--(D) Poll for ------->|               |
    |        |              |      Authorization    |               |
    |        |              |                       |               |
    |        |              |<-(L) Grant -----------| Authorization |
    |        |              |      Authorization    |     Server    |
    |        +--------------+                       |               |
    |              |                                |               |
   (A) Attacker   (E) Attacker Copies               |               |
    |  Starts      |  QR or User Code               |               |
    |  Flow        |                                |               |
+--------------+   |                                |               |
|   Attacker   |<--+                                |               |
+--------------+                                    |               |
       |                                            |               |
       (F) Attacker Changes                         |               |
       |   QR Code/User Code                        |               |
       v   Context                                  |               |
+--------------+                                    |               |
|     User     |                                    |               |
+--------------+                                    |               |
 |   |                                              |               |
 |  (G) User is convinced by the                    |               |
 |   |  attacker and scans QR code                  |               |
 |   |  or enters User Code                         |               |
 |   |       +--------------+                       |               |
 |   +------>| Authorization|                       |               |
 |           |    Device    |--(H) Send QR code --->|               |
 |           |              |      or user code     |               |
 |           |              |                       |               |
 |           |              |<-(I) Request user ----|               |
 |           |              |     Authentication and|               |
 |           |              |     Authorization     |               |
 +-(J) User->|              |                       |               |
Authenticates|              |                       |               |
and grants   |              |                       |               |
Authorization|              |                       |               |
             |              |--(K) Authentication ->|               |
             |              |      and Authorization|               |
             |              |      Completes        |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 5: User-Transferred Session Data Pattern Exploit</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 requests a QR code or user code from an Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server returns a QR code or user code to the Consumption Device, which displays it to the user with instructions to scan the QR code or enter the user code using the Authorization Device.</t>
            </li>
            <li>
              <t>(D) The Consumption Device starts polling the Authorization Server to find out if the user granted authorization.</t>
            </li>
            <li>
              <t>(E) The attacker copies the QR code or user code.</t>
            </li>
            <li>
              <t>(F) 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>(G) 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>(H) The QR code or user code is sent to the Authorization Server</t>
            </li>
            <li>
              <t>(I) The Authorization Server validates the QR code or user code and prompts the user to authenticate and accept or decline the authorization request.</t>
            </li>
            <li>
              <t>(J) The user authenticates and grants authorization using the Authorization Device.</t>
            </li>
            <li>
              <t>(K) The user is authenticated with the Authorization Server and authorization is granted to access the user's resources (there may be several additional messages, depending on the authentication protocol, user interface and other implementation details).</t>
            </li>
            <li>
              <t>(L) 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.</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 grant 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. Figure 6 shows an example of such an attack.</t>
          <t>The ability to trigger authorization requests without user involvement can be exploited an attacker to overwhelm users with a high volume of requests in a short period, increasing the likelihood of inadvertent approval.</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
     +------>|  Attacker's  |--(C) Backchannel ---->|               |
     |       |  Consumption |      Authorization    |               |
     |       |  Device      |      Request          |               |
     |       |              |                       | Authorization |
     |       |              |<-(G) Grant------------|     Server    |
     |       +--------------+      Authorization    |               |
    (B) Attacker                                    |               |
     |  Start                                       |               |
     |  Flow                                        |               |
     |                                              |               |
+----------+                                        |               |
| Attacker |                                        |               |
+----------+                                        |               |
     |                                              |               |
    (A) Attacker Sends                              |               |
     |  Social Engineering                          |               |
     v  Message to User (optional)                  |               |
+----------+                                        |               |
|   User   |                                        |               |
+----------+                                        |               |
     |                                              |               |
    (E) User Authenticate                           |               |
     |  and Authorize Action                        |               |
     |                                              |               |
     |       +--------------+                       |               |
     |       | Authorization|                       |               |
     |       |    Device    |<-(D) Request User ----|               |
     +------>|              |      Authentication   |               |
             |              |      and Authorization|               |
             |              |                       |               |
             |              |--(F) Authentication ->|               |
             |              |      and Authorization|               |
             |              |      Completes        |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 6: Backchannel-Transferred Session Pattern Exploit</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 mimics 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 and waits for a response from the Authorization Server.</t>
            </li>
            <li>
              <t>(D) The Authorization Server requests user authentication and authorization on the user's Authorization Device.</t>
            </li>
            <li>
              <t>(E) If the user is unauthenticated, they use their Authorization Device to authenticate and grant authorization to the Authorization Server.</t>
            </li>
            <li>
              <t>(F) The user is authenticated and authorization is granted to access the user's resources (there may be several additional messages, depending on the authentication protocol, user interface and other implementation details).</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 provide 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[
             +--------------+                       +---------------+
    +------->|  Consumption |--(C) Backchannel ---->| Authorization |
    |        |    Device    |      Authorization    |    Server     |
    |        |              |      Request          |               |
    |        |              |                       |               |
    |        |              |--(H) Send------------>|               |
    |        |              |      Authorization    |               |
    |        |              |      Data             |               |
    |        |              |                       |               |
    |        |              |<-(I) Grant------------|               |
    |        +--------------+      Authorization    |               |
    |                    ^                          |               |
    |                    |                          |               |
   (B) Attacker         (G) Attacker Enters         |               |
    |  Start             |  Authorization           |               |
    |  Flow              |  Data                    |               |
    |                    |                          |               |
+------------------------------------------+        |               |
|                 Attacker                 |        |               |
+------------------------------------------+        |               |
  |                   ^                             |               |
 (A) Attacker        (F) User                       |               |
  |  Sends            |  Sends                      |               |
  |  Social           |  Authorization              |               |
  |  Engineering      |  Data                       |               |
  v  Message          |                             |               |
+------------------------------------------+        |               |
|                   User                   |        |               |
+------------------------------------------+        |               |
                  ^                                 |               |
                  |                                 |               |
                 (E) User Copies                    |               |
                  |  Authorization Data             |               |
                  |                                 |               |
             +--------------+                       |               |
             | Authorization|                       |               |
             |    Device    |<-(D) Send ------------|               |
             |              |      Authorization    |               |
             |              |      Data             |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure 7: User-Transferred Authorization Data Pattern Exploit</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 Authorization Device. Examples of mechanisms that may be used to distribute the authorization data include text messages, email or a mobile application. The authorization data may be presented as text or a QR code.</t>
            </li>
            <li>
              <t>(E) The user is convinced by the social engineering message received from the attacker in step (A) and copies the authorization data received on the Authorization Device.</t>
            </li>
            <li>
              <t>(F) The user forwards the authorization data to the attacker.</t>
            </li>
            <li>
              <t>(G) The attacker enters the authorization data (e.g., a 6-digit authorization code) on the Consumption Device.</t>
            </li>
            <li>
              <t>(H) The attacker's Consumption Device sends the authorization data to the Authorization Server.</t>
            </li>
            <li>
              <t>(I) 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 if there is no session maintained in the channel for steps C and G. In that case a 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, instead of using it themselves. The authorization data may be represented as a QR code or text string (e.g., 6-digit authorization code). The attacker then starts the flow and uses 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 CDSP attacks.</t>
        <artwork type="ascii-art"><![CDATA[
            +---------------+                       +---------------+
    +------>| Authorization |                       | Authorization |
    |       |    Device     |--(C) Session -------->|     Server    |
    |       |               |      Transfer Request |               |
    |       |               |                       |               |
    |       |               |<-(D) Session ---------|               |
    |       |               |      Transfer Code    |               |
    |       |               |                       |               |
    |       +---------------+                       |               |
   (B) User      |                                  |               |
    |  Start    (E) User Views                      |               |
    |  Flow      |  Session Transfer Code           |               |
    |            v  or QR Code                      |               |
+--------------------------------+                  |               |
|             User               |                  |               |
+--------------------------------+                  |               |
  ^                |                                |               |
  |                |                                |               |
 (A) Attacker     (F) User sends Session            |               |
  |  Sends         |  Transfer or QR Code           |               |
  |  Social        |  to Attacker                   |               |
  |  Engineering   |                                |               |
  |  Message       v                                |               |
+-------------------------------+                   |               |
|            Attacker           |                   |               |
+-------------------------------+                   |               |
                     |                              |               |
                    (G) Attacker Enter              |               |
                     |  Session Transfer Code       |               |
                     |  or Scan QR Code             |               |
                     v                              |               |
            +---------------+                       |               |
            |  Consumption  |                       |               |
            |     Device    |--(H) Present -------->|               |
            |               |      Session Transfer |               |
            |               |      Code             |               |
            |               |                       |               |
            |               |<-(I) Return Session --|               |
            |               |      Context          |               |
            +---------------+                       +---------------+
]]></artwork>
        <t>Figure 8: Cross-Device Session Transfer Pattern Exploit</t>
        <ul spacing="normal">
          <li>
            <t>(A) The attacker sends a social engineering message 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 obtained it.</t>
          </li>
          <li>
            <t>(B) The user starts the flow and is authenticated on their Authorization Device before they authorize 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 views the session transfer code, which may be rendered as a QR code.</t>
          </li>
          <li>
            <t>(F) 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>(G) Once the attacker receives the QR code, they scan it or enter it on their own Consumption Device.</t>
          </li>
          <li>
            <t>(H) The client on the Consumption Device presents the session transfer code to the Authorization Server.</t>
          </li>
          <li>
            <t>(I) The Authorization Server verifies the session transfer code and returns the session context information needed to resume the session on the Consumption Device. 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="example-exploits">
        <name>Examples of Cross-Device Flow Exploits</name>
        <t>The following examples illustrate these attacks in practical settings applied to the use cases described in <xref target="example-flows"/>. These examples 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 to grant 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>This exploit applies to the use case described in <xref target="example-a1"/>.</t>
          <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">
          <name>Example B2: Illicit Access to Productivity Services (User-Transferred Session Data Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a2"/>.</t>
          <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">
          <name>Example B3: Illicit Access to Physical Assets (User-Transferred Session Data Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a3"/>.</t>
          <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: Illicit Transaction Authorization (Backchannel-Transferred Session Pattern)</name>
          <t>These exploits apply to the use case described in <xref target="example-a4"/>.</t>
          <section anchor="example-b4-1">
            <name>Example B4.1: Bulk Authorization Request (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-b4-2">
            <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>
        <section anchor="example-b5">
          <name>Example B5: Illicit Network Join (Cross-Device Session Transfer Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a5"/>.</t>
          <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">
          <name>Example B6: Illicit Onboarding (User-Transferred Session Data Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a6"/>.</t>
          <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>This exploit applies to the use case described in <xref target="example-a7"/>.</t>
          <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">
          <name>Example B8: Account Takeover (User-Transferred Session Data Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a8"/>.</t>
          <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">
          <name>Example B9: Illicit Access to Administration Capabilities Through Consent Request Overload (Backchannel-Transferred Session Pattern)</name>
          <t>This exploit applies to the use case described in <xref target="example-a9"/>.</t>
          <t>An attacker attempts to access an administration 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"/> and <xref target="OpenID.VP"/>), 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. Implementors should take into account that in environments that use Network Address Translation (NAT), multiple devices may appear to originate from the same network address, increasing the risk of incorrectly inferring that a cross-device flow is occurring on a single device.</t>
      <t>The W3C Digital Credentials API <xref target="W3C.DCAPI"/> is a standard that defines a browser API for requesting and presenting verifiable credentials. The API is designed to be used in both same-device and cross-device scenarios. In cross-device scenarios, the API can be used to secure flows against the attacks presented in this document by ensuring proximity between the Consumption Device and Authorization Device (e.g., by leveraging Bluetooth Low Energy (BLE)). In same-device scenarios, the API can be used without proximity checks.</t>
      <t>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 CDCP 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 CDCP 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 be applied when implementing a cross-device flow. Each mitigation, despite limitations in its effectiveness, provides an additional layer of security that may increase the difficulty of initiating an attack, disrupt attacks in progress, or reduce 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, each with its own implementation benefits and limitations:</t>
          <ul spacing="normal">
            <li>
              <t>Physical connectivity: This is a good indicator of proximity, but requires specific ports, cables and hardware and may be challenging from a user experience perspective or may not be possible in certain settings (e.g., when USB ports are blocked or removed for security purposes). Physical connectivity may be better suited to dedicated hardware like FIDO devices that can be used with protocols that are resistant to the exploits described in this document. The use of physically connected devices may introduce additional security risks (e.g., data access or device compromise through malicious peripherals), the assessment and mitigation of which are beyond the scope of 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"/>. FIDO and WebAuthn-based cross-device flows leverage wireless proximity using BLE and are the RECOMMENDED approach for performing secure cross-device flows (see <xref target="fido"/>). For the presentation of digital credentials, the W3C Digital Credentials API <xref target="W3C.DCAPI"/> can be used.</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 proximity, they don't share a network, so other proximity checks are needed.</t>
            </li>
            <li>
              <t>Geolocation: Proximity can be established by comparing geolocation 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. Proximity mechanisms that rely on establishing user's location or identifying a user's device SHOULD be evaluated for their privacy impliciations within the context of a specific application or deployment.</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 can still serve as a risk signal. For example, while the primary and secondary holders may normally be located in the same city, a sudden presence in different continents may prompt the system to apply additional controls (e.g., transaction value limits or transaction velocity limits) or incorporate proximity information into a broader risk management decision.</t>
          <t><strong>Limitations:</strong> Proximity mechanisms make it harder to perform 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. Relying on IP address mapping can degrade user experience when a VPN is used on the Consumption or Authorization Device. In such cases, the devices may appear to be in different locations, requiring additional user guidance or alternative mechanisms to establish proximity.</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, time to complete authentication, or time needed to re-enter codes or re-authenticate due to an error). 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="SQPHISH"/>.</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 few 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 artifacts 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 for cross-device flows. 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>Mechanisms that identify a specific device SHOULD be evaluated for their privacy impliciations within the context of a specific application or deployment.</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. An attacker may also spoof device identities or device types that are not cryptographically established or verified through attestation mechanisms.</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. In some deployments a trusted network may also be inferred using SIM or network operator supplied information. 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 described in <xref target="example-b1"/>) or initiate a large number of authorization requests (see exploits described in <xref target="example-b4-1"/> and <xref target="example-b9"/>) 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 or send to a user 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-possession, raise the bar for executing the attack and profiting from exfiltrating tokens. Although a software proof-of-possession key is better than no proof-of-possession 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, as part of broader anti-phishing education, such as guidance to avoid clicking on links in emails or other unsolicited messages, as described by NIST in <xref target="NISTPhishing"/>. In addition, the service provider MAY provide out-of-band reinforcement on the context and conditions under which an authorization grant may be requested. For example, if the service provider does not send emails containing QR codes that request users to grant authorization, this expectation may be reinforced through marketing communications and anti-fraud awareness campaigns. The service provider MAY also reinforce these user education messages through in-app experiences. In <xref target="PCRSM2023"/>, it is proposed that users be advised to verify the trustworthiness of the source of a QR code, for example by confirming that the connection is protected using TLS or that the URL 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>The user interface SHOULD provide an obvious and unambiguous way for the user to decline or cancel a 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. For example, a banking application may initiate a cross-device authorization request using the Backchannel-Transferred Session pattern only after the user is already authenticated and attempts a high-value transaction. This prevents the attacker from initiating a cross-device authorization request, obtaining a QR code or a 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 sophisticated 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, within the limitations described, prevent or substantially increase the difficulty of initiating attacks, disrupt attacks once they start or reduce the impact of, or remediate, an attack if it succeeds. When one or more of these mitigations are combined, the overall security profile of a cross-device flow improves significantly. The following table provides a summary 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><xref target="RFC8628"/> is a standard to enable authorization on devices with constrained input capabilities (e.g., smart TVs, printers, and 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 CDCP attack (<xref target="ARTDCPHISH"/>, <xref target="DCFLOWPHISH"/>, <xref target="NEWDCPHISH"/>, <xref target="DEFCON29"/>, <xref target="DCATTACK"/>, <xref target="SQPHISH"/>).</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-1"/>.</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="fido">
          <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 in to 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
analyzed 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
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 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, Aaron Parecki, George Fletcher, Hannes Tschofenig, Dan Moore, Deb Cooley, Paul Kyzivat, David Mandelberg, Jim Fenton, Bing Liu, Mohamed Boucadair, Mike Bishop, Roman Danyliw and others 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="https://fidoalliance.org/specs/fido-v2.2-ps-20250714/fido-client-to-authenticator-protocol-v2.2-ps-20250714.html">
          <front>
            <title>Client to Authenticator Protocol (CTAP), Version 2.2, July 2025, FIDO Alliance</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="ARTDCPHISH" 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="DCFLOWPHISH" 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="NEWDCPHISH" 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="DEFCON29" 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="DCATTACK" 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="SQPHISH" 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://openid.net/specs/openid-connect-self-issued-v2-1_0.html">
          <front>
            <title>Self-Issued OpenID Provider v2 - Draft 13</title>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="M. B." surname="Jones" fullname="Michael B. Jones">
              <organization>Self-Issued Consulting</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>SPRIND</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 Presentations 1.0</title>
            <author initials="O." surname="Terbu" fullname="Oliver Terbu">
              <organization>Mattr</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>SPRIND</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>SPRIND</organization>
            </author>
            <author initials="D." surname="Fett" fullname="Daniel Fett">
              <organization>Authlete</organization>
            </author>
            <author initials="J." surname="Heenan" fullname="Joseph Heenan">
              <organization>Authlete</organization>
            </author>
            <date year="2025" month="September"/>
          </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 1.0</title>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>SPRIND</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>SPRIND</organization>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization>Mattr</organization>
            </author>
            <author initials="P." surname="Bastian" fullname="Paul Bastian">
              <organization>Bundesdruckerei</organization>
            </author>
            <date year="2025" month="September"/>
          </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="Christina Bauer">
              <organization>University of Stuttgart</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>
        <reference anchor="NISTPhishing" target="https://www.nist.gov/system/files/documents/2024/03/12/Phishing_SMB%20FactSheet_2024_Final.pdf">
          <front>
            <title>NIST Small Business Cybersecurity Fact Sheet: Phishing</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="NISTGlossary" target="https://csrc.nist.gov/glossary">
          <front>
            <title>NIST Computer Security Resource Center Glossary</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="W3C.DCAPI" target="https://w3c-fedid.github.io/digital-credentials/">
          <front>
            <title>Digital Credentials API - W3C Editor's Draft</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 1336?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <ul spacing="normal">
        <li>
          <t>latest</t>
        </li>
        <li>
          <t>Updated reference</t>
        </li>
        <li>
          <t>Added reference to use of W3C Digital Credential API as a mechanism that use BLE to establish proximity for credential presentation (https://github.com/oauth-wg/oauth-cross-device-security/issues/148)</t>
        </li>
      </ul>
      <t>-13</t>
      <ul spacing="normal">
        <li>
          <t>Secdir Feedback: Additional information on allowing time to authenticate (https://github.com/oauth-wg/oauth-cross-device-security/issues/203)</t>
        </li>
        <li>
          <t>Secdir Feedback: Provide additional guidance on user impact of using a VPN (see https://github.com/oauth-wg/oauth-cross-device-security/issues/202)</t>
        </li>
        <li>
          <t>Secdir Feedback: Clarify section 4.1.3 (https://github.com/oauth-wg/oauth-cross-device-security/issues/201)</t>
        </li>
        <li>
          <t>Art Feedback: Add reference defining social engineering and phishing (https://github.com/oauth-wg/oauth-cross-device-security/issues/207)</t>
        </li>
        <li>
          <t>Art Feedback: Clarify diagrams (https://github.com/oauth-wg/oauth-cross-device-security/issues/208)</t>
        </li>
        <li>
          <t>ARTART Feedback: Cross-link to reference "consent fatigue" attacks (https://github.com/oauth-wg/oauth-cross-device-security/issues/211)</t>
        </li>
        <li>
          <t>ARTART Feedback: Editorial updates (https://github.com/oauth-wg/oauth-cross-device-security/issues/212, https://github.com/oauth-wg/oauth-cross-device-security/issues/218, https://github.com/oauth-wg/oauth-cross-device-security/issues/217, https://github.com/oauth-wg/oauth-cross-device-security/issues/213)</t>
        </li>
        <li>
          <t>ARTART Feedback: Clarify that 6-digit codes are examples only (https://github.com/oauth-wg/oauth-cross-device-security/issues/214)</t>
        </li>
        <li>
          <t>ARTART Feedback: Make limitations of proximity schemes clearer (https://github.com/oauth-wg/oauth-cross-device-security/issues/215)</t>
        </li>
        <li>
          <t>ARTART Feedback: Add note on risks of device type spoofing (https://github.com/oauth-wg/oauth-cross-device-security/issues/216)</t>
        </li>
        <li>
          <t>ARTART Feedback: Provide examples of authenticate-then-initiate mitigations and limitations (https://github.com/oauth-wg/oauth-cross-device-security/issues/219)</t>
        </li>
        <li>
          <t>OPSDIR Feedback: Editorial updates (https://github.com/oauth-wg/oauth-cross-device-security/issues/231)</t>
        </li>
        <li>
          <t>OPSDIR Feedback: Add example cross references to ease navigation (https://github.com/oauth-wg/oauth-cross-device-security/issues/232)</t>
        </li>
        <li>
          <t>Added Aaron Parecki, George Fletcher, Hannes Tschofenig, Dan Moore, Deb Cooley, Paul Kyzivat, David Mandelberg, Jim Fenton, Mohamed Boucadair and Bing Liu to the list of people who proivded input and made contributions.</t>
        </li>
        <li>
          <t>Updated with feedback from Mohamed Boucadair (https://mailarchive.ietf.org/arch/msg/oauth/ylRSRkQYgdoYJF1SqwBIHPcEZ4k/)</t>
        </li>
        <li>
          <t>Updated with feedback from Mike bishop (https://mailarchive.ietf.org/arch/msg/oauth/TBK_FZJHAJKddwxUvZP1X4gBdOc/)</t>
        </li>
        <li>
          <t>Updated with feedback from Roman Danyliw (https://mailarchive.ietf.org/arch/msg/oauth/A_RXNCKI1HFB8Z3f-izvAj3pszo/)</t>
        </li>
      </ul>
      <t>-13</t>
      <ul spacing="normal">
        <li>
          <t>Fixed reference for protocol selection (see issue #189)</t>
        </li>
        <li>
          <t>Change affiliation</t>
        </li>
        <li>
          <t>AD Feedback: Add Security Consideration</t>
        </li>
        <li>
          <t>AD Feedback: Add IANA Consideration</t>
        </li>
        <li>
          <t>AD Feedback: Capitalise SHOULD not -&gt; SHOULD NOT (issue #185)</t>
        </li>
        <li>
          <t>AD Feedback: AD Nits (see https://github.com/oauth-wg/oauth-cross-device-security/issues/195)</t>
        </li>
        <li>
          <t>AD Feedback: Clarify limitations on consumption device (see https://github.com/oauth-wg/oauth-cross-device-security/issues/194)</t>
        </li>
        <li>
          <t>AD Feedback: Remove repetitive text (see https://github.com/oauth-wg/oauth-cross-device-security/issues/193)</t>
        </li>
        <li>
          <t>AD Feedback: Clarify separate use cases (see https://github.com/oauth-wg/oauth-cross-device-security/issues/192)</t>
        </li>
      </ul>
      <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 implemented 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: Separate 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:
H4sIAAAAAAAAA+y9e3PbVrYv+D8/BcqpqVhpUrZlx05cd+69smQn6vihYynJ
dE3NdIEkKKFFAmwAlMJ2fGu+w3zD+SSznnuvDWyQlOx0+vSJ65yOTYIb+7H2
evzWazQaDeomLaZ/TedlkT1PmmqVDfJlRX+rm4OHD799eDCYpM3zZDxZDurV
eJHXdV4WzXoJj5+8PH81SKssfZ7U2WRwc/E8KdNVczkYTMtJkS7gkWmVzppR
njWzEX01mlRlXY+m2XU+yUbwq1WVN+vRo6eDQZM3c/jFvSN64pieSF7Ny5v6
eXImDyYvsrpJjlZVlRVNclqlkwaeujdIx+Mqu8YfH786uzeYpwXMJSsGVzfP
k//znr7m3jC5R7M4wL+NcaiJDLXUof6vwRfJNG1gIgcPDw5GD/H/ktGIPkvy
Opnl83k2TfIigYHKRQo/SufzdTJeJ78s5gfVbJLks6Qom+Qiv4YZ4OvK6vlg
lPCGnMJeZFXyQ1rX2XyRFoMkKSuY7HE2S6+a0q0UPs8WaT5/DlO70of/5wV+
tD8pF26847TIs3nyKmsaHeoQXjmHt/gh8H//55SenMGD+9PM/f5VPs+XydlV
eeXn8u6qSc370+I63c+X5uWDoqxw6dfZ80Hy/tXRwaNH3z5Pvkh+yNbJTVlN
YZvKKlnVGe4TfF8nsLKTYgp7Bbv4Pvv7Kq+yBe776+w6m9c0yNNnT2iQdzj/
5GD/IS2krPJ/wJvKInlVwYRh9Ct6+tnTx0/x6dOqLGf0YnzlUTnNkpe/TC6B
ADI8Ex7sdDWe55PkaJ7DO/lt3zx69gR/f7gY5xcrJC0Y5sflMqsmKcz7uk5e
lzfyD15EgqukN/2MS+RRnh58E85Z6Dac+ndVWjQy7acH4Q/Oy6usgM1pgOyX
2QSfHyRHJy8OYWvhj96Kd8usODmGBRYFPCRLGZ0UeZPDnk6TF+nkCpddADHg
2PAt7jZtHNyhZAQ/rbLk0f7DezSu0mVCf5QaviuLfwAvAHKqCuAL2T+S9+W0
gg3K/iFPComcZ/NsVhbwitYI8LIqT4vk53QOdB7+6DhbNfXkMqNfX5WL5PC7
1q8Pf4Hpv82K4ur2vz1Or+HbEg4+/OUbYG3ry9W49fgLmuZRuliOs/k8/Mlp
XlwkJ1PcQ7qJiWcJj0YPv+WDSauLDBjjZdMs6+cPHpRwQPl0v8iaB3iOtXww
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
FU+sv/1t7/DuRfk97WjzAUE18yLaZba25p07GIHFTMS2bSrXTz9i9vkGa0wM
nFlTcDl9brVFmtcWD/j9tuq81x9crvM0aVZuwsIJpiWQtGvalxZrsSgdKNBX
6ZL1fN9QQ3RF+NfE9Yhk4m8w4oK81RY/VRfpfnJCl2G1DG4BZqNlk5xMjay5
zCrL8blvWO/0KJkmm83Qg+yvlbHc0W4DwxtZsfrLbivGdznnjRfAJLeFpzmI
Khp0de+uacDml+NGKjzIntXBptW2FItnll2OQHeE8dX1Z+KLnbo3wnVaikHm
Os9trE6b360tjxOtzl8hve1iCX2hCauqcyCYby69xJ+6IWyXvXZWqdOQ6aTq
rZU4kLdL9N3X0WocnGumevFvWRDTRhoq+cJkP6HtRlDXgz+9U9uNTvOOzp9b
ZmP/12678c+pDvKpK4Izev3v0HbjbuHkGF6rlzDhAHn3z2gZid65nHFkrD4E
rLbsa1GxYRRb+vQOK4ps6B1GwU/MpgCJbK/xsdNctv7p5S87JbtsHQUDT/3x
kpTtLxOycS6SpPKg74C3j4KJC53g891H+Ty7y5+4dJc7phR9ppP+ddcZbBsF
g35/FEVWNSKnVN9qLk5D8dB+PONl4yg+YXUruWzbl3/xxjPf/9s1njn5T9l4
5s9/NJ7pjLLpa6TdH/4oIfz1jo1nFCWyCUoeOQvcsVokdRPog6Ul80WuAX/d
R/Z+h6JHf/Sr+ZfvV+NIzoB2UZDL5Bz534j614s+96F5AY7HsEFyk66TMEsC
o+jyq2y+7ttuRYj92OSsaQWRhGvvdsc1W4Bg36RKZ9TVWYq2chQiV5DotO+p
3HScRyWkHYmG4KHET1jAi6r0IvTW7EpOeItXFxfOZQqTm5bsuJMaHQzai2On
ym4oaJ5jqrHeb7lO5w3hrvDggktKZNcKPc/LuvbxPVwJyaeAbT/PlmshdXQx
uSxhe1SD1D0Pc106imbqsZ1sNisx9i8aH3LX9krff3p7pZN/0fZKf/5N2iv9
sCmTdnPznX+PiuOvf7uqaUPvqVkVU7n45gbgTapw4lsKkoc8+iKC7fqNpUMp
1q0popIAe9Iw//WxJ9RVG358KWu8ZR8o5xc76dQzDEp9q9836AAvia5B9e5W
vR4nCuN13+iACetuuxgQGndFzH3ZoMt0ucwKztzl2DOuj6NkI149R/axIx2v
uIwTuRbHrkO93BYU1zo/jfXdfWyeE/fi7rqZFd6Pu3317cYbe3NJ/bbRkeBn
2Xgfcr+raI6hUzCCDrZrMAl6PfOFOSI9iehCxL9VZRgFsoOnWvI0N06Bc2VR
CSkxkMVxCVJDlamA3K6rTPZRWWSVpbXQDgc/RX39MvchxzbQprIePcfk7uS6
nK+4Db3XixvO/sMVZgXRPLWqV88h7tNQ3Z+X2EE+VJqoxl1PuwjMiLEniqXn
yqUr4PR0N68OsZdxPsfgRr+s+MJrR2hybWDF18RbKZ4/yC+2EVVYdQsuM6hz
84XcDvGHX4IOFds3UjZg/qAjYG2uckpF9PCU9MRIl8wvy3KKP8yLdApvaCjw
nALH0vlv6rLywFHHZXW0cxF5Z8HGXVY7ukPsKKbUlX68YxF5O0rwbc++xN0h
vaPcqlj6FnBvx31Bu9WA9lv/9O/LbZq49Y9ymyZuW87ozqP8qbOZdxnlV7+v
O8/ot5pL9OM7jRJ4vs6oGO8d53LGUuqlkVK3HeU6Sd5IaxfgnoSS3y+XrB/v
7TLK5zpp5wz5dzrpl7dr19c/l9u06/stV/QZ3CH2408qix/KgLAs/vHO3fqs
hI28swVM3xre5v/8y3Tre/UH1P505259G8F2KYYfsxQWnqGC+r9Mq5atQv9Y
TsqFFpT1SobnvRYR/wwI/+cH+G3qkeL7vROxIPw/v6/gHXsBHv/TewG+/Nfq
Bfjq378X4G/Yz2BHZG4H5K2zf4T/lnD7xvP1pyNxHc9ji6iiUert5BTNRUkb
qULmZr5jQ74AsOtnDiEL7MFNxitbNqtBcOMyrTupIpHJbCwMHv0FEjH2kEmm
+YzqK1F+8KIOOzEWqwUIB6yqdp3OV7bDQn/eY+yVCmv985HGL28LNfYgf7fr
0kio3WKcu5T5zcicJjTWmQcpZ+I60W4uhAHi71yYtpZCIFiQEaPujIxbp4fv
1rGgbYlCb+WMAHsBsQuCeZ4SbNXOhxvChpHnxsF0PiAKT+pSWkxEELXea0Fp
31knN1dOFRiJuM/i4uD3aZQYx7i2B8h2AqrjWI4HhHYLs/2XaZT4/X+RRom3
GoWDxnqwv95RPgn7i858Q0+9W4yywV6PjhKFIVG/cR+2eib2zqULQ/7a3y+x
d5QuDPlrf7/E32pfNlWFbzOj/lG6r+zFe/uI87PNJb4Bm9s4RkZphd/TH9T3
XUTyTqMQtbQRzNhn20dhsR4810dy/aN0kNANJNczigFEe5/bNspvRXXd/gjt
H/92VNf+c9emsJufudMoDmbtbz+641wihs8dRtny5/NgXFvxtk9BVoOvO8jq
jg1H+15yO81jyyi/R8PRZ7dqOPpZUMROvMMGLZ/K+1dU6nvVcO1VKrNiDdIg
LBXNODIzSsy0dhZdxAYqXaleGTPJm88HVIL9wdHIauv914Mrt+KO/9Y9WDdB
LOPMxCSh9UvxR9WGxg2x0NAN98x1aHUHZKhZ2oge7u3QEXbnVq8WXoU7jSG3
2/qyughYg126aW5uF7sTgWy+Ed+HL/yy/uztZTfFxUbRVy7JRDhtL8z5GSDa
dz4+vCy0CIlgWq148F0AXImHaoH7rkCCBeR8pBNQ4XVa5akwbSmEQv0ctN6Y
RPFXFIdclC4mEm5dgSGMvgSG40ZlRbQNR0k79500eU0bKmyo1UPuw40rl8uy
9gGBuuC9FrO3lf8aDqzXS7hLeB9MtNzSZfdWvE6nOSSZl6VT362Q4chFnc2v
XQBsL/NxoXyd/jQV8yLkiFjClee2YWYtwJ/2KNbdR0s59dwjCUpl+ZpfAy/l
pAo4OY7ov0yvsQI0IcRS6tCmGOzQqnjXckY9hak+W3Ww3mJVujPdLkZpUAeK
91gqV/U0nDFZGW1mywd2u8omdVjbhNs6t4p1SRX1DXPSEiFYXMgrNhqPHPCY
DXWvak7JuHXFq9+q+2ZvPuwGJHAT5tsyUxQ53qn7ZmuU4J30Z6fum1tHiazo
VqOo5bVD983dV7Sp++bnXtEn9ftD+8JDH9tN7B2wTQcabOi/uQO2+ev2/ps7
YJs79N+8A7IT2eJtKFMEX4rs9m81lwiqtPWsd0JI7zJKByF18ChruHrs2+cS
oqG/mgsYPfSdEFL4AFj2hrDjnRDSu+5uiJDeoRPoNnqJcYcttBvZi9jyfqu5
RB7aur+7jdL14dx1Lps41e6jmA60t+xK6v5soZjNo/yrd479/o/OsVH95eQ/
c+fYb3bsHPvJaC9Z3mLr2OReiQNx1SW96ROpw3s7oNdYsn1miMK+bHmgldb8
J+pQG0K40TebChPxPfjUcNF/Vjtci4B+rna4Fqj08N5WsukgML49KX4elsYw
ToWpBVwV6ewWlXbV481kJD6WyiLkTbzcJtrSmwHOf0Z73I0VAP512uOa3e62
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
1SECAA==

-->

</rfc>
