<?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.7) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-oauth-cross-device-security-14" 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-14"/>
    <author initials="P." surname="Kasselman" fullname="Pieter Kasselman">
      <organization>Defakto</organization>
      <address>
        <email>prkasselman@gmail.com</email>
      </address>
    </author>
    <author initials="D." surname="Fett" fullname="Daniel Fett">
      <organization>Authlete</organization>
      <address>
        <email>mail@danielfett.de</email>
      </address>
    </author>
    <author initials="F." surname="Skokan" fullname="Filip Skokan">
      <organization>Okta</organization>
      <address>
        <email>panva.ip@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="January" day="05"/>
    <area>sec</area>
    <workgroup>oauth</workgroup>
    <keyword>security</keyword>
    <keyword>oauth2</keyword>
    <keyword>best current practice</keyword>
    <abstract>
      <?line 321?>

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

<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>Note: This document uses the terms "social engineering" and "phishing" as
described in the NIST Computer Security Resource Center Glossary <xref target="NISTGlossary"/>.</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 artefacts that allow them to setup a session and then use it to access a user's data.</t>
      </section>
      <section anchor="defending-against-cross-device-attacks">
        <name>Defending Against Cross-Device Attacks</name>
        <t>This document provides guidance to implementers to defend against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks. This guidance includes:</t>
        <ol spacing="normal" type="1"><li>
            <t>Practical mitigations for susceptible protocols (<xref target="practical-mitigations"/>).</t>
          </li>
          <li>
            <t>Protocol selection guidance to avoid using susceptible protocols (<xref target="protocol-selection"/>).</t>
          </li>
          <li>
            <t>Results from formal analysis of susceptible protocols (<xref target="foundational-pillars"/>).</t>
          </li>
        </ol>
      </section>
      <section anchor="conventions-and-terminology">
        <name>Conventions and Terminology</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <t>This specification uses the terms "access token", "refresh token",
"authorization server", "resource server", "authorization endpoint",
"authorization request", and
"client" defined by The OAuth 2.0 Authorization Framework <xref target="RFC6749"/>.</t>
      </section>
    </section>
    <section anchor="best-practices">
      <name>Best Practices</name>
      <t>This section describes the set of security mechanisms and measures to secure cross-device protocols against Cross-Device Consent Phishing and Cross-Device Session Phishing attacks that the OAuth working group considers best practices at the time of writing this specification.</t>
      <ol spacing="normal" type="1"><li>
          <t>Implementers MUST perform a risk assessment before implementing cross-device flows, weighing the risks from Cross-Device Consent Phishing and Cross-Device Session Phishing attacks against benefits for users.</t>
        </li>
        <li>
          <t>Implementers SHOULD avoid cross-device flows if risks cannot be sufficiently mitigated.</t>
        </li>
        <li>
          <t>Implementers SHOULD follow the guidance provided in <xref target="protocol-selection"/> for protocol selection.</t>
        </li>
        <li>
          <t>Implementers MUST implement practical mitigations as listed in <xref target="practical-mitigations"/> that are appropriate for the use case, architecture, and selected protocols.</t>
        </li>
        <li>
          <t>Implementers SHOULD implement proximity checks as defined in <xref target="establish-proximity"/> if possible.</t>
        </li>
      </ol>
      <t>These best practices apply to the Device Authorization Grant (<xref target="RFC8628"/>) as well as other cross-device protocols such as the Client Initiated Backchannel Authentication <xref target="CIBA"/>, Self-Issued OpenID Provider v2 <xref target="OpenID.SIOPV2"/>, OpenID for Verifiable Presentations <xref target="OpenID.VP"/>, the Pre-Authorized Code Flow in (<xref target="OpenID.VCI"/>) and other cross-device protocols that rely on the user to authenticate the channel between devices.</t>
      <t><xref target="cross-device-flow-patterns"/> provides details about susceptible protocols and <xref target="cross-device-flow-exploits"/> provides attack descriptions. <xref target="practical-mitigations"/> provides details about the security mechanisms and mitigations, <xref target="protocol-selection"/> provides protocol selection guidance and <xref target="foundational-pillars"/> provides details from formal analysis of protocols that apply to cross device flows.</t>
    </section>
    <section anchor="cross-device-flow-patterns">
      <name>Cross-Device Flow Patterns</name>
      <t>Cross-device flows 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. The figure below 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: 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. The figure below 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: 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. The figure below 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      (E) User Enters                    |               |
    |             |  Authorization                  |               |
+------+          |  Data                           |               |
| User |----------+                                 |               |
+------+                                            |               |
    ^                                               |               |
   (D) User Copies                                  |               |
    |  Authorization Data                           |               |
    |                                               |               |
    |        +--------------+                       |               |
    |        | Authorization|                       |               |
    |        |    Device    |<-(C) Send ------------|               |
    +--------|              |      Authorization    |               |
             |              |      Data             |               |
             +--------------+                       +---------------+
]]></artwork>
          <t>Figure: User-Transferred Authorization Data Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user takes an action on the Consumption Device by starting a purchase, adding a device to a network or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The client on the Consumption Device requests user authorization on the backchannel from the Authorization Server.</t>
            </li>
            <li>
              <t>(C) The Authorization Server sends authorization data (e.g., a 6 digit authorization code) to the Authorization Device. Examples of mechanisms that may be used to distribute the authorization data include text messages, email or a mobile application.</t>
            </li>
            <li>
              <t>(D) The user 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 Authorization Server issues tokens or grants authorization to the Consumption Device to access the user's resources.</t>
            </li>
          </ul>
          <t>The Authorization Server may choose to authenticate the user before sending the authorization data.</t>
        </section>
      </section>
      <section anchor="cdst">
        <name>Cross-Device Session Transfer</name>
        <t>Session transfer flows enable a user to transfer access to a service or network from a device on which the user is already authenticated to a second device such as a mobile phone. In these flows, the user is authenticated and then authorizes the session transfer on one device, referred to as the Authorization Device (e.g., a personal computer, web portal or application), and transfers the session to the device where they will continue to consume the session, referred to as the Consumption Device (e.g., a mobile phone or portable device).</t>
        <t>The session transfer preserves state information, including authentication state, at the second device to avoid additional configuration and optimize the user experience. These flows are often used to add new devices to a network, onboard customers to a mobile application, or provision new credentials (e.g., <xref target="OpenID.SIOPV2"/>).</t>
        <section anchor="cross-device-session-transfer-pattern">
          <name>Cross-Device Session Transfer Pattern</name>
          <t>In this flow, the user is authenticated and starts the flow by authorizing the transfer of the session on the Authorization Device. The Authorization Device requests a session transfer code that may be rendered as a QR code on the Authorization Device. When the user scans the QR code or enters it on the Consumption Device where they would like the session to continue, the Consumption Device presents it to the Authorization Server. The Authorization Server then transfers the session to the Consumption Device. This may include transferring authentication and authorization state to optimize the user experience. This type of flow is used, for example, for adding new devices to networks, bootstrapping new applications, or provisioning new credentials. The Pre-Authorized Code Flow in (<xref target="OpenID.VCI"/>) is an instance of using this pattern to provision a new credential. The figure below shows a typical flow.</t>
          <artwork type="ascii-art"><![CDATA[
            +---------------+                       +---------------+
  +-------->| 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: Cross-Dvice Session Transfer Pattern</t>
          <ul spacing="normal">
            <li>
              <t>(A) The user is authenticated on the Authorization Device and authorizes the transfer of the session to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The 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 off how these flows may be exploited 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 into an application on their personal computer and wants to bootstrap the mobile application on their mobile phone. The employee initiates the cross-device flow and is shown a QR code in their application. The employee launches the mobile application on their phone and scans the QR code which results in the user being signed into the application on the mobile phone. <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 (User-Transferred Authorization Data Pattern)</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 adminstration portal used to configure network assets and deploy new applications. When attempting to access the service, the network administrator receives a notification in an app on their mobile device, requesting them to confirm access to the portal. The network administrator approves the request on their mobile phone and is granted access to the portal. <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 Cross-Device Consent Phishing (CDCP) attacks.</t>
      <t>In cross-device session transfer flows the attacker uses these social engineering techniques to convince the user to initiate a session transfer and send them a session transfer code. Once the attacker is in posession of this session transfer code, they present it to the Authorization Server to transfer the session and access the user's resources. These attacks are referred to as Cross-Device Session Phishing (CDSP) attacks.</t>
      <section anchor="cross-device-authorization-flow-exploits">
        <name>Cross-Device Authorization Flow Exploits</name>
        <t>Attackers exploit cross-device authorization flows by initiating an authorization flow on the Consumption Device and then use social engineering techniques to change the context in which the request is presented to the user in order to convince them to grant authorization on the Authorization Device. The attacker is able to change the context of the authorization request because the channel between the Consumption Device and the Authorization Device is unauthenticated. These attacks are also known as Cross-Device Consent Phishing (CDCP) attacks.</t>
        <section anchor="user-transferred-session-data-pattern-exploits">
          <name>User-Transferred Session Data Pattern Exploits</name>
          <t>A common action in cross-device flows is to present the user with a QR code or a user code on the Consumption Device (e.g., smart TV) which is then scanned or entered on the Authorization Device (the mobile phone). When the user scans the code or copies the user code, they do so without any proof that the QR code or user code is being displayed in the place or context intended by the service provider. It is up to the user to decide whether they should trust the QR code or user code. In effect the user is asked to compensate for the absence of an authenticated channel between the Consumption Device (e.g., smart TV) and the Authorization Device (e.g., the mobile phone).</t>
          <t>Attackers exploit this absence of an authenticated channel between the two devices by obtaining QR codes or user codes (e.g., by initiating the authorization flows). They then use social engineering techniques to change the context in which authorization is requested to convince end-users to scan the QR code or enter it on their Authorization Device (e.g., mobile phone). Once the end-user performs the authorization on the mobile device, the attacker who initiated the authentication or authorization request obtains access to the user's resources. The figure below 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: User-Transferred Session Data Pattern Exploits</t>
          <ul spacing="normal">
            <li>
              <t>(A) The attacker initiates the protocol on the Consumption Device (or mimicks the Consumption Device) by starting a purchase, adding a device to a network or connecting a service to the Consumption Device.</t>
            </li>
            <li>
              <t>(B) The Consumption Device 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 granting authorization. The social engineering techniques range in sophistication from messages misrepresenting the reason for receiving an authorization request, to triggering a large volume of requests at an inconvenient time for the user, in the hope that the user will grant authorization to make the requests stop. The figure below shows an example of such an attack.</t>
          <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: Backchannel-Transferred Session Pattern Exploits</t>
          <ul spacing="normal">
            <li>
              <t>(A) The attacker sends a social engineering message to prepare the user for the upcoming authorization (optional).</t>
            </li>
            <li>
              <t>(B) The attacker initiates the protocol on the Consumption Device (or 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 providing them with authorization data sent to their Authorization Devices (e.g., mobile phones). These attacks are very similar to phishing attacks, except that the attacker also has the ability to trigger the authorization request to be sent to the user directly by the Authorization Server.</t>
          <artwork type="ascii-art"><![CDATA[
             +--------------+                       +---------------+
    +------->|  Consumption |--(C) Backchannel ---->| Authorization |
    |        |    Device    |      Authorization    |    Server     |
    |        |              |      Request          |               |
    |        |              |                       |               |
    |        |              |<-(H) 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: User-Transferred Authorization Data Pattern</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 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 Cross-Device Session Phishing (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: Cross-Device Session Transfer Pattern</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 into granting consent to avail of services, access data and make payments.</t>
        <section anchor="example-b1">
          <name>Example B1: Illicit Access to a Video Streaming Service (User-Transferred Session Data Pattern)</name>
          <t>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 applies 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 adminstration portal repeatedly, generating a stream of authorization requests to the network administrator. The attempts are timed to occur while the administrator is asleep. The administrator is woken by the incoming requests on their phone, and, in an attempt to stop the notifications, they accidentally approve access and the attacker gains access to the portal.</t>
        </section>
        <section anchor="out-of-scope">
          <name>Out of Scope</name>
          <t>In all of the attack scenarios listed above, a user is misled or exploited. For other attacks, where the user is willingly colluding with the attacker, the threat model, security implications and potential mitigations are very different. For example, a cooperating user can bypass software mitigations on their device, share access to hardware tokens with the attacker, and install additional devices to forward radio signals to circumvent proximity checks.</t>
          <t>This document only considers scenarios where a user does not collude with an attacker.</t>
        </section>
      </section>
    </section>
    <section anchor="cross-device-protocols-and-standards">
      <name>Cross-Device Protocols and Standards</name>
      <t>Cross-device flows that are subject to the attacks described earlier typically share the following characteristics:</t>
      <ol spacing="normal" type="1"><li>
          <t>The attacker can initiate the flow and manipulate the context of an authorization request.
 E.g., the attacker can obtain a QR code or user code, or can request an authentication/authorization decision from the user.</t>
        </li>
        <li>
          <t>The interaction between the Consumption Device and Authorization Device is unauthenticated.
 I.e., it is left to the user to decide if the QR code, user code, or authentication request is being presented in a legitimate context.</t>
        </li>
      </ol>
      <t>A number of protocols that have been standardized, or are in the process of being standardized that share these characteristics include:</t>
      <ul spacing="normal">
        <li>
          <t><strong>IETF OAuth 2.0 Device Authorization Grant (<xref target="RFC8628"/>):</strong> A standard to enable authorization on devices with constrained input capabilities (smart TVs, printers, kiosks). In this protocol, the user code or QR code is displayed on the Consumption Device and entered on a second device (e.g., a mobile phone).</t>
        </li>
        <li>
          <t><strong>Open ID Foundation Client Initiated Back-Channel Authentication (CIBA) <xref target="CIBA"/>:</strong> A standard developed in the OpenID Foundation that allows a device or service (e.g., a personal computer, smart TV, Kiosk) to request the OpenID Provider to initiate an authentication flow if it knows a valid identifier for the user. The user completes the authentication flow using a second device (e.g., a mobile phone). In this flow the user does not scan a QR code or obtain a user code from the Consumption Device, but is instead contacted by the OpenID Provider to complete the authentication using a push notification, e-mail, text message or any other suitable mechanism.</t>
        </li>
        <li>
          <t><strong>OpenID for Verifiable Credential Protocol Suite (Issuance, Presentation):</strong> The OpenID for Verifiable Credentials enables cross-device scenarios by allowing users to scan QR codes to retrieve credentials (Issuance - see <xref target="OpenID.VCI"/>) or present credentials (Presentation - see <xref target="OpenID.VP"/>). The QR code is presented on a device that initiates the flow.</t>
        </li>
        <li>
          <t><strong>Self-Issued OpenID Provider v2 (SIOP V2):</strong> A standard that allows end-user to present self-attested or third party attested attributes when used with OpenID for Verifiable Credential protocols. The user scans a QR code presented by the relying party to initiate the flow.</t>
        </li>
      </ul>
      <t>Cross-device protocols SHOULD NOT be used for same-device scenarios. If the Consumption Device and Authorization Device are the same device, protocols like OpenID Connect Core <xref target="OpenID.Core"/> and OAuth 2.0 Authorization Code Grant as defined in <xref target="RFC6749"/> are more appropriate. If a protocol supports both same-device and cross-device modes (e.g., <xref target="OpenID.SIOPV2"/>), the cross-device mode SHOULD NOT be used for same-device scenarios. An authorization server MAY choose to block cross-device protocols used in same-device scenarios if it detects that the same device is used. An authorization server may use techniques such as device fingerprinting, network address or other techniques to detect if a cross-device protocol is being used on the same device. If an implementor decides to use a cross-device protocol or a protocol with a cross-device mode in a same-device scenario, the mitigations recommended in this document SHOULD be implemented to reduce the risks that the unauthenticated channel is exploited.</t>
    </section>
    <section anchor="mitigating-against-cross-device-flow-attacks">
      <name>Mitigating Against Cross-Device Flow Attacks</name>
      <t>The unauthenticated channel between the Consumption Device and the Authorization Device allows attackers to change the context in which the authorization request is presented to the user. This shifts responsibility of authenticating the channel between the two devices to the end-user. End-users have "expertise elsewhere", are typically not security experts, and don't understand the protocols and systems they interact with. As a result, end-users are poorly equipped to authenticate the channel between the two devices. Mitigations should focus on:</t>
      <ol spacing="normal" type="1"><li>
          <t>Minimizing reliance on the user to make decisions to authenticate the channel.</t>
        </li>
        <li>
          <t>Providing better information with which to make decisions to authenticate the channel.</t>
        </li>
        <li>
          <t>Recovering from incorrect channel authentication decisions by users.</t>
        </li>
      </ol>
      <t>To achieve the above outcomes, mitigating against Cross-Device Consent Phishing attacks require a three-pronged approach:</t>
      <ol spacing="normal" type="1"><li>
          <t>Reduce risks of deployed protocols with practical mitigations.</t>
        </li>
        <li>
          <t>Adopt or develop protocols that are less susceptible to these attacks where possible.</t>
        </li>
        <li>
          <t>Provide analytical tools to assess vulnerabilities and effectiveness of mitigations.</t>
        </li>
      </ol>
      <section anchor="practical-mitigations">
        <name>Practical Mitigations</name>
        <t>A number of protocols that enable cross-device flows that are susceptible to Cross-Device Consent Phishing attacks are already deployed. The security profile of these protocols can be improved through practical mitigations that provide defense in depth that either:</t>
        <ol spacing="normal" type="1"><li>
            <t>Prevents the attack from being initiated.</t>
          </li>
          <li>
            <t>Disrupts the attack once it is initiated.</t>
          </li>
          <li>
            <t>Remediates or reduces the impact if the attack succeeds.</t>
          </li>
        </ol>
        <t>It is RECOMMENDED that one or more of the mitigations 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.</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"/>).</t>
            </li>
            <li>
              <t>Shared network: Device proximity can be inferred by verifying that both devices are on the same network. This check may be performed by the authorization server by comparing the network addresses of the device where the code is displayed (Consumption Device) with that of the Authorization Device. Alternatively the check can be performed on the device, provided that the network address is available. This could be achieved if the authorization server encodes the Consumption Device's network address in the QR code and uses a digital signature to prevent tampering with the code. This does require the wallet to be aware of the countermeasure and effectively enforce it. Note that it is common for a Consumption Device (e.g., a TV) to use a Wi-Fi connection while the Authorization Device (e.g., a phone) uses a mobile network. Though physically in close proximity, they don't share a network, so other proximity checks are needed.</t>
            </li>
            <li>
              <t>Geolocation: Proximity can be established by comparing geo-location information derived from global navigation satellite-system (GNSS) co-ordinates or geolocation lookup of IP addresses and comparing proximity. Geolocation based on GNSS may vary in accuracy depending on the user's location, and when mapped to national or regional boundaries may show a Consumption and Authorization Device in different locations if those devices are close to a border. Since relative position is more important than absolute location, implementations should consider relative location to both devices rather than absolute location when determining proximity. Geolocation based on IP addresses may be inaccurate along regional or national borders due to overlapping coverage by different network providers from the respective regions. This may result in the Consumption Device being mapped to one region, while the Authorization Device may be on another network from another provider and mapped to another region. These inaccuracies may require restrictions to be at a more granular level (e.g., same city, country, region or continent). Similar to the shared network checks, these checks may be performed by the authorization server or on the users device, provided that the information encoded in a QR code is integrity protected using a digital signature.</t>
            </li>
          </ul>
          <t>Depending on the risk profile and the threat model in which a system is operating, it MAY be necessary to use more than one mechanism to establish proximity to raise the bar for any potential attackers.</t>
          <t>Note: There are scenarios that require that authorization takes place in a different location than the one in which the transaction is initiated. For example, there may be a primary and secondary credit card holder and both can initiate transactions, but only the primary holder can authorize it. There is no guarantee that the primary and secondary holders are in the same location at the time of the authorization. In such cases, proximity (or lack of proximity) may be an indicator of risk and the system may deploy additional controls (e.g., transaction value limits, transaction velocity limits) or use the proximity information as input to a risk management system.</t>
          <t><strong>Limitations:</strong> Proximity mechanisms make it harder to perform Cross-Device Consent Phishing (CDCP) attacks. However, depending on how the proximity check is performed, an attacker may be able to circumvent the protection: The attacker can use a VPN to simulate a shared network or spoof a GNSS position. For example, the attacker can try to request the location of the end-user's Authorization Device through browser APIs and then simulate the same location on their Consumption Device using standard debugging features available on many platforms. 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 small number of times.</t>
        </section>
        <section anchor="unique_codes">
          <name>Unique Codes</name>
          <t>By issuing unique user or QR codes, an authorization server can detect if the same codes are being repeatedly submitted. This may be interpreted as anomalous behavior and the authorization server MAY choose to decline issuing access and refresh tokens if it detects the same codes being presented repeatedly. This may be achieved by maintaining a deny list that contains QR codes or user codes that were previously used. The authorization server MAY use a sliding window equal to the lifetime of a token if short lived/timebound tokens are used (see <xref target="Short-Lived-Timebound-Codes"/>). This will limit the size of the deny list. This mitigation can be implemented on the authorization server without changes to other system components.</t>
          <t><strong>Limitations:</strong> Maintaining a deny list of previously redeemed codes, even for a sliding window, may have an impact on the latency of globally distributed systems. One alternative is to segment user codes by geography or region and maintain local deny lists.</t>
        </section>
        <section anchor="content-filtering">
          <name>Content Filtering</name>
          <t>Attackers exploit the unauthenticated channel by changing the context of the user code or QR code and then sending a message to a user (e-mail, text messaging, instant messaging or other communication mechanisms). By deploying content filtering (e.g., anti-spam filter), these messages can be blocked and prevented from reaching the end-users. It may be possible to fine-tune content filtering solutions to detect artefacts like QR codes or user codes that are included in a message that is sent to multiple recipients in the expectation that at least one of the recipients will be convinced by the message and grant authorization to access restricted resources.</t>
          <t><strong>Limitations:</strong> Some scenarios may require legitimate re-transmission of user, QR and authorization data (e.g., retries). To prevent the disruption of legitimate scenarios, content filters may use a threshold and allow a limited number of messages with the same QR or user codes to be transmitted before interrupting the delivery of those messages. Content filtering may also be fragmented across multiple communications systems and communication channels (e-mail, text messaging, instant messaging or other communication mechanisms), making it harder to detect or interrupt attacks that are executed over multiple channels, unless here is a high degree of integration between content filtering systems.</t>
        </section>
        <section anchor="detect-and-remediate">
          <name>Detect and Remediate</name>
          <t>The authorization server may be able to detect misuse of the codes due to repeated use as described in <xref target="unique_codes"/>, as an input from a content filtering engine as described in <xref target="content-filtering"/>, or through other mechanisms such as reports from end-users. If an authorization server determines that a user code or QR code is being used in an attack it may choose to invalidate all tokens issued in response to these codes and make that information available through a token introspection endpoint (see <xref target="RFC7662"/>). In addition it may notify resource servers to stop accepting these tokens or to terminate existing sessions associated with these tokens using Continuous Access Evaluation Protocol (CAEP) messages <xref target="CAEP"/> using the Shared Signals Framework (SSF) <xref target="SSF"/> framework or an equivalent notification system.</t>
          <t><strong>Limitations:</strong> Detection and remediation requires that resource servers are integrated with security eventing systems or token introspection services. This may not always be practical for existing systems and may need to be targeted to the most critical resource services in an environment.</t>
        </section>
        <section anchor="trusted_devices">
          <name>Trusted Devices</name>
          <t>If an attacker is unable to initiate the protocol, they are unable to obtain a QR code or user code that can be leveraged for the attacks described in this document. By restricting the protocol to only be executed on devices trusted by the authorization server, it prevents attackers from using arbitrary devices, or by mimicking devices to initiate the protocol.</t>
          <t>Authorization Servers MAY use different mechanisms to establish which devices it trusts 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><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. 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 and provide out-of-band reinforcement to the user on the context and conditions under which an authorization grant may be requested. For example, if the service provider does not send e-mails with QR codes requesting users to grant authorization, this may be reinforced in marketing messages and anti-fraud awareness campaigns. The service provider MAY also choose to reinforce these user education messages through in-app experiences. In <xref target="PCRSM2023"/>, it is proposed to advise users to verify the trustworthiness of the source of a QR code, for instance by checking that the connection is protected through TLS or by verifying that the URL really belongs to the Authorization Server.</t>
          <t><strong>Limitations:</strong> Although user education helps to raise awareness and reduce the overall risk to users, it is insufficient on its own to mitigate cross-device consent phishing attacks. In particular, carefully designed phishing attacks can be practically indistinguishable from benign authorization flows even for well-trained users. User education SHOULD therefore be used in conjunction with other controls described in this document.</t>
        </section>
        <section anchor="user-experience">
          <name>User Experience</name>
          <t>The user experience SHOULD preserve the context within which the protocols were initiated and communicate this clearly to the user when they are asked to authorize, authenticate or present a credential. In preserving the context, it should be clear to the user who invoked the flow, why it was invoked and what the consequence of completing the authorization, authentication or credential presentation is. The user experience SHOULD reinforce the message that unless the user initiated the authorization request, or was expecting it, they should decline the request.</t>
          <t>This information MAY be communicated graphically or in a simple message (e.g., "It looks like you are trying to access your files on a digital whiteboard in your city center office. Click here to grant access to your files. If you are not trying to access your files, you should decline this request and notify the security department").</t>
          <t>It SHOULD be clear to the user how to decline the request. To avoid accidental authorization grants, the "decline" option SHOULD be the default option or given similar prominence in the user experience as the "grant" option.</t>
          <t>If the user uses an application on a mobile device to scan a QR code, the application MAY display information advising the user under which conditions they should expect to be asked to scan a QR code and under which circumstances they should never scan a QR code (e.g., display a message that the QR code will only be displayed on kiosks within trusted locations or on trusted websites hosted on a specific domain, and never in e-mail or other media and locations).</t>
          <t>The user experience MAY include information to further educate the user on cross-device consent phishing attacks and reinforce the conditions under which authorization grants may be requested.</t>
          <t><strong>Limitations:</strong> Improvements to user experience on their own is unlikely to be sufficient and SHOULD be used in conjunction with other controls described in this document.</t>
        </section>
        <section anchor="authenticate-then-initiate">
          <name>Authenticate-then-Initiate</name>
          <t>By requiring a user to authenticate on the Consumption Device with a phishing resistant authentication method before initiating a cross-device flow, the server can prevent an attacker from initiating a cross-device flow and obtaining QR codes or user codes. 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 inititiating 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 sophistacted attacker may include an additional step in their attack where they create a phishing attack that gathers the out-of-band data from the user before initiating the authorization request. The additional step could also have a negative impact on the usability level of the solution.</t>
        </section>
        <section anchor="practical-mitigation-summary">
          <name>Practical Mitigation Summary</name>
          <t>The practical mitigations described in this section can prevent the attacks from being initiated, disrupt attacks once they start or reduce the impact or remediate an attack if it succeeds. When combining one or more of these mitigations the overall security profile of a cross-device flow improves significantly. The following table provides a summary view of these mitigations:</t>
          <table>
            <thead>
              <tr>
                <th align="left">Mitigation</th>
                <th align="center">Prevent</th>
                <th align="center">Disrupt</th>
                <th align="center">Recover</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">Establish Proximity</td>
                <td align="center">X</td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Short Lived/Timebound Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">One-Time or Limited Use Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Unique Codes</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Content Filtering</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Detect and remediate</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Trusted Devices</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Trusted Networks</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Limited Scopes</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Short Lived Tokens</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">Rate Limits</td>
                <td align="center">X</td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Sender-Constrained Tokens</td>
                <td align="center"> </td>
                <td align="center"> </td>
                <td align="center">X</td>
              </tr>
              <tr>
                <td align="left">User Education</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">User Experience</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Authenticate-then-Initiate</td>
                <td align="center">X</td>
                <td align="center"> </td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Request Initiation Verification</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
              <tr>
                <td align="left">Request Binding with Out-of-Band Data</td>
                <td align="center"> </td>
                <td align="center">X</td>
                <td align="center"> </td>
              </tr>
            </tbody>
          </table>
          <t>Table: Practical Mitigation Summary</t>
        </section>
      </section>
      <section anchor="protocol-selection">
        <name>Protocol Selection</name>
        <t>Some cross-device protocols are more susceptible to the exploits described in this document than others. In this section we will compare three different cross-device protocols in terms of their susceptibility to exploits focused on the unauthenticated channel, the prerequisites to implement and deploy them, along with guidance on when it is appropriate to use them.</t>
        <section anchor="ietf-oauth-20-device-authorization-grant-rfc8628">
          <name>IETF OAuth 2.0 Device Authorization Grant <xref target="RFC8628"/>:</name>
          <section anchor="description">
            <name>Description</name>
            <t>A standard to enable authorization on devices with constrained input capabilities (smart TVs, printers, kiosks). In this protocol, the user code or QR code is displayed or made available on the Consumption Device (smart TV) and entered on a second device (e.g., a mobile phone).</t>
          </section>
          <section anchor="susceptibility">
            <name>Susceptibility</name>
            <t>There are several reports in the public domain outlining how the unauthenticated channel may be exploited to execute a Cross-Device Consent Phishing attack (<xref target="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 into the primary device, such as a personal computer. This is commonly called FIDO Cross-Device Authentication (CDA). CTAP 2.2 hybrid transports is implemented by the client and authenticator platforms.</t>
            <t>When a user wants to authenticate using their mobile device (authenticator) for the first time, they need to link their authenticator to their main device. This is done using a scan of a QR code. When the authenticator scans the QR code, the device sends an encrypted BLE advertisement containing keying material and a tunnel ID. The main device (CTAP client) and authenticator both establish connections to the web service, and the normal CTAP protocol exchange occurs.</t>
            <t>If the user chooses to keep their authenticator linked with the main device, the QR code link step is not necessary for subsequent use. The user will receive a push notification on the authenticator.</t>
          </section>
          <section anchor="susceptibility-2">
            <name>Susceptibility</name>
            <t>The Cross-Device Authentication flow proves proximity by leveraging BLE advertisements for service establishment, significantly reducing the susceptibility to any of the exploits described in Examples 1-6.</t>
          </section>
          <section anchor="device-capabilities-2">
            <name>Device Capabilities</name>
            <t>Both the Consumption Device and the authenticator require BLE support and access to the internet. The Consumption Device must support both the WebAuthn API <xref target="W3CWebAuthn"/> (or a platform-specific WebAuthn abstraction for native apps) and the FIDO Client to Authenticator Protocol (CTAP), specifically version 2.2 with hybrid transports <xref target="FIDOCTAP22"/>. The device serving as the FIDO authenticator must also support CTAP 2.2 or later to be used as a cross-device authenticator.</t>
          </section>
          <section anchor="mitigations-2">
            <name>Mitigations</name>
            <t>FIDO Cross-Device Authentication (CDA) establishes proximity through the use of BLE, reducing the need for additional mitigations. An implementer MAY still choose to implement additional mitigation as described in this document.</t>
          </section>
          <section anchor="when-to-use-2">
            <name>When to Use</name>
            <t>FIDO2/WebAuthn SHOULD be used for cross-device authentication scenarios whenever the devices are capable of doing so and a suitable FIDO credential is not available on the Consumption Device. It MAY be used as an authentication method with the Authorization Code Grant <xref target="RFC6749"/> and PKCE <xref target="RFC7636"/>, to grant authorization to a Consumption Device (e.g., smart TV or interactive whiteboard) using a device serving as the FIDO authenticator (e.g. a mobile phone) for authentication. This combination of FIDO2/WebAuthn and Authorization Code Flow with PKCE enables cross device authorization flows, without the risks posed by the Device Authorization Grant <xref target="RFC8628"/>.</t>
          </section>
        </section>
        <section anchor="protocol-selection-summary">
          <name>Protocol Selection Summary</name>
          <t>The FIDO Cross-Device Authentication (CDA) flow provides the best protection against attacks on the unauthenticated channel for cross device flows. It can be combined with OAuth 2.0 and OpenID Connect protocols for standards-based authorization and authentication flows. If FIDO2/WebAuthn support is not available, Client Initiated Backchannel Authentication (CIBA) provides an alternative, provided that there is a channel through which the authorization server can contact the end user. Examples of such a channel include device push notifications, e-mail or text messages which the user can access from their device. If CIBA is used, additional mitigations to enforce proximity and initiate transactions from trusted devices or trusted networks SHOULD be considered. The OAuth 2.0 Device Authorization Grant provides the most flexibility and has the lowest requirements on devices used, but it is RECOMMENDED that it is only used when additional mitigations are deployed to prevent attacks that exploit the unauthenticated channel between devices.</t>
        </section>
      </section>
      <section anchor="foundational-pillars">
        <name>Foundational Pillars</name>
        <t>Experience with web authorization and authentication protocols such as OAuth and OpenID Connect has shown that securing these protocols can be hard. The major reason for this is that the landscape in which they are operating - the web infrastructure with browsers, servers, and the underlying network - is complex, diverse, and ever-evolving.</t>
        <t>As is the case with other kinds of protocols, it can be easy to overlook vulnerabilities in this environment. One way to reduce the chances of hidden security problems is to use mathematical-logical models to describe the protocols, their environments and their security goals, and then use these models to try to prove security. This approach is what is usually subsumed as "formal security analysis".</t>
        <t>There are two major strengths of formal analysis: First, finding new vulnerabilities does not require creativity - i.e., new classes of attacks can be uncovered even if no one thought of these attacks before. In a faithful model, vulnerabilities become clear during the proof process or even earlier. Second, formal analysis can exclude the existence of any attacks within the boundaries of the model (e.g., the protocol layers modeled, the level of detail and functionalities covered, the assumed attacker capabilities, and the formalized security goals). As a downside, there is usually a gap between the model (which necessarily abstracts away from details) and implementations. In other words, implementations can introduce flaws where the model does not have any. Nonetheless, for protocol standards, formal analysis can help to ensure that the specification is secure when implemented correctly.</t>
        <t>There are various different approaches to formal security analysis and each brings its own strengths and weaknesses. For example, models differ in the level of detail in which they can capture a protocol (granularity, expressiveness), in the kind of statements they can produce, and whether the proofs can be assisted by tools or have to be performed manually.</t>
        <t>The following works have been identified as relevant to the analysis of cross-device flows:</t>
        <ul spacing="normal">
          <li>
            <t>In "Formal analysis of self-issued OpenID providers" <xref target="Bauer2022"/>,
the protocol of <xref target="OpenID.SIOPV2"/> was analyzed using the Web
Infrastructure Model (WIM). The WIM is specifically designed for the
analysis of web authentication and authorization protocols. While it
is a manual (pen-and-paper) model, it captures details of browsers
and web interactions to a degree that is hard to match in automated
models. In previous works, previously unknown flaws in OAuth, OpenID
Connect, and FAPI were discovered using the WIM. In the analysis of a
cross-device SIOP V2 flow in <xref target="Bauer2022"/>, the request replay attack
already described in Section 13.3 of <xref target="OpenID.SIOPV2"/> was confirmed
in the model. A mitigation was implemented based on a so-called
Cross-Device Stub, essentially a component that serves to link the
two devices before the protocol flow starts. This can be seen as an
implementation of a trusted device relationship as described in
<xref target="trusted_devices"/>. The mitigation was shown to be effective in the
model.</t>
          </li>
          <li>
            <t>In "Security analysis of the Grant Negotiation and Authorization
Protocol" <xref target="Helmschmidt2022"/>, an analysis of a draft of the Grant
Negotiation and Authorization Protocol (GNAP)
<xref target="RFC9635"/> was performed using the Web
Infrastructure Model. The same attack as in <xref target="Bauer2022"/> was found to
apply to GNAP as well. In this case, a model of a "careful user" (see
<xref target="user_education"/> was used to show that the attack can be prevented
(at least in theory) by the user.</t>
          </li>
          <li>
            <t>In "The Good, the Bad and the (Not So) Ugly of Out-of-Band
Authentication with eID Cards and Push Notifications: Design, Formal
and Risk Analysis" <xref target="MPRCS2020"/>, Pernpruner et al. formally
analysed an authentication protocol relying on push notifications
delivered to an out-of-band device to approve the authentication
attempt on the primary device (Backchannel-Transferred Session
Pattern, <xref target="btsp"/>). The analysis was performed using the specification
language ASLan++ and the model checker SATMC. According to the
results of the analysis, they identified and defined the category of
<em>implicit attacks</em>, which manage to deceive users into approving a
malicious authentication attempt through social engineering
techniques, thus not compromising all the authentication factors
involved; these attacks are aligned with the definition of
Cross-Device Consent Phishing (CDCP) attacks.</t>
          </li>
          <li>
            <t>In "An Automated Multi-Layered Methodology to Assist the Secure and
Risk-Aware Design of Multi-Factor Authentication Protocols"
<xref target="PCRSM2023"/>, Pernpruner et al. defined a multi-layered methodology
to analyze multi-factor authentication protocols at different levels
of granularity. They leveraged their methodology to formally analyze
a protocol relying on a QR code that has to be scanned on a secondary
device to approve the authentication attempt on the primary device
(User-Transferred Session Data Pattern, <xref target="utsdp"/>). Given the results
of the analysis, they proposed some practical mitigations either to
prevent or reduce the risk of successful attacks, such as those
described in <xref target="user_education"/>, <xref target="request-verification"/> and
<xref target="request-binding"/>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security considerations are described in <xref target="best-practices"/> and <xref target="mitigating-against-cross-device-flow-attacks"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
    <section anchor="conclusion">
      <name>Conclusion</name>
      <t>Cross-device flows enable authorization on devices with limited input capabilities, allow for secure authentication when using public or shared devices, provide a path towards multi-factor authentication and, provide the convenience of a single, portable credential store.</t>
      <t>The popularity of cross-device flows attracted the attention of attackers that exploit the unauthenticated channel between the Consumption Device and Authorization Device using techniques commonly used in phishing attacks. These Cross-Device Consent Phishing (CDCP) attacks allow attackers to obtain access and refresh tokens, rather than authentication credentials, resulting in access to resources even if the user used multi-factor authentication.</t>
      <t>To address these attacks, we propose a three pronged approach that includes the deployment of practical mitigations to safeguard protocols that are already deployed, provide guidance on when to use different protocols, including protocols that are not susceptible to these attacks, and the introduction of formal methods to evaluate the impact of mitigations and find additional issues.</t>
    </section>
    <section anchor="contributors">
      <name>Contributors</name>
      <t>The authors would like to thank Tim Cappalli, Nick Ludwig, Adrian Frei, Nikhil Reddy Boreddy, Bjorn Hjelm, Joseph Heenan, Brian Campbell, Damien Bowden, Kristina Yasuda, Tim Würtele, Karsten Meyer zu Selhausen, Maryam Mehrnezhad, Marco Pernpruner, Giada Sciarretta, Dean H. Saxe, Roy Williams, Aaron Parecki, George Fletcher, Hannes Tschofenig, Dan Moore, Deb Cooley, Paul Kyzivat, David Mandelberg, Jim Fenton and Bing Liu and others (please let us know, if you've been mistakenly omitted) for their valuable input, feedback and general support of this work.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC6749">
          <front>
            <title>The OAuth 2.0 Authorization Framework</title>
            <author fullname="D. Hardt" initials="D." role="editor" surname="Hardt"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>The OAuth 2.0 authorization framework enables a third-party application to obtain limited access to an HTTP service, either on behalf of a resource owner by orchestrating an approval interaction between the resource owner and the HTTP service, or by allowing the third-party application to obtain access on its own behalf. This specification replaces and obsoletes the OAuth 1.0 protocol described in RFC 5849. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6749"/>
          <seriesInfo name="DOI" value="10.17487/RFC6749"/>
        </reference>
        <reference anchor="RFC7636">
          <front>
            <title>Proof Key for Code Exchange by OAuth Public Clients</title>
            <author fullname="N. Sakimura" initials="N." role="editor" surname="Sakimura"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="N. Agarwal" initials="N." surname="Agarwal"/>
            <date month="September" year="2015"/>
            <abstract>
              <t>OAuth 2.0 public clients utilizing the Authorization Code Grant are susceptible to the authorization code interception attack. This specification describes the attack as well as a technique to mitigate against the threat through the use of Proof Key for Code Exchange (PKCE, pronounced "pixy").</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7636"/>
          <seriesInfo name="DOI" value="10.17487/RFC7636"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8628">
          <front>
            <title>OAuth 2.0 Device Authorization Grant</title>
            <author fullname="W. Denniss" initials="W." surname="Denniss"/>
            <author fullname="J. Bradley" initials="J." surname="Bradley"/>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <date month="August" year="2019"/>
            <abstract>
              <t>The OAuth 2.0 device authorization grant is designed for Internet- connected devices that either lack a browser to perform a user-agent- based authorization or are input constrained to the extent that requiring the user to input text in order to authenticate during the authorization flow is impractical. It enables OAuth clients on such devices (like smart TVs, media consoles, digital picture frames, and printers) to obtain user authorization to access protected resources by using a user agent on a separate device.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8628"/>
          <seriesInfo name="DOI" value="10.17487/RFC8628"/>
        </reference>
        <reference anchor="RFC7662">
          <front>
            <title>OAuth 2.0 Token Introspection</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <date month="October" year="2015"/>
            <abstract>
              <t>This specification defines a method for a protected resource to query an OAuth 2.0 authorization server to determine the active state of an OAuth 2.0 token and to determine meta-information about this token. OAuth 2.0 deployments can use this method to convey information about the authorization context of the token from the authorization server to the protected resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7662"/>
          <seriesInfo name="DOI" value="10.17487/RFC7662"/>
        </reference>
        <reference anchor="CIBA" target="https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html">
          <front>
            <title>OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0</title>
            <author initials="G. F." surname="Rodriguez" fullname="Gonzalo Fernandez Rodriguez">
              <organization>Telefonica</organization>
            </author>
            <author initials="F." surname="Walter" fullname="Florian Walter">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="A." surname="Nennker" fullname="Axel Nennker">
              <organization>Deutsche Telekom AG</organization>
            </author>
            <author initials="D." surname="Tonge" fullname="Dave Tonge">
              <organization>Moneyhub</organization>
            </author>
            <author initials="B." surname="Campbell" fullname="Brian Campbell">
              <organization>Ping Identity</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
        </reference>
        <reference anchor="CAEP" target="https://openid.net/specs/openid-caep-1_0-final.html">
          <front>
            <title>OpenID Continuous Access Evaluation Profile 1.0</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Microsoft</organization>
            </author>
            <date year="2025" month="August"/>
          </front>
        </reference>
        <reference anchor="SSF" target="https://openid.net/specs/openid-sharedsignals-framework-1_0-final.html">
          <front>
            <title>OpenID Shared Signals Framework Specification 1.0</title>
            <author initials="A." surname="Tulshibagwale" fullname="Atul Tulshibagwale">
              <organization>SGNL</organization>
            </author>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Microsoft</organization>
            </author>
            <author initials="M." surname="Scurtescu" fullname="Marius Scurtescu">
              <organization>Coinbase</organization>
            </author>
            <author initials="A." surname="Backman" fullname="Annabelle Backman">
              <organization>Amazon</organization>
            </author>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization>Yubico</organization>
            </author>
            <author initials="S." surname="Miel" fullname="Shayne Miel">
              <organization>Cisco</organization>
            </author>
            <date year="2025" month="August"/>
          </front>
        </reference>
        <reference anchor="W3CWebAuthn" target="https://www.w3.org/TR/2025/WD-webauthn-3-20250127/">
          <front>
            <title>Web Authentication: An API for accessing Public Key Credentials Level 3</title>
            <author initials="T." surname="Cappalli" fullname="Tim Cappalli">
              <organization>Okta</organization>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author initials="E." surname="Lundberg" fullname="Emil Lundberg">
              <organization>Yubico</organization>
            </author>
            <author initials="M." surname="Miller" fullname="Matthew Miller">
              <organization>Cisco</organization>
            </author>
            <date year="2025" month="January"/>
          </front>
        </reference>
        <reference anchor="FIDOCTAP22" target="">
          <front>
            <title>Client to Authenticator Protocol (CTAP)</title>
            <author initials="J." surname="Bradley" fullname="John Bradley">
              <organization>Yubico</organization>
            </author>
            <author initials="M.B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="A." surname="Kumar" fullname="Akshay Kumar">
              <organization>Microsoft</organization>
            </author>
            <author initials="R." surname="Lindemann" fullname="Rolf Lindemann">
              <organization>Nok Nok Labs</organization>
            </author>
            <author initials="S." surname="Verrept" fullname="Johan Verrept">
              <organization>OneSpan</organization>
            </author>
            <author initials="D." surname="Waite" fullname="David Waite">
              <organization>Ping Identity</organization>
            </author>
            <date year="2025" month="July"/>
          </front>
        </reference>
        <reference anchor="IEEE802154" target="https://standards.ieee.org/ieee/802.15.4/11041/">
          <front>
            <title>IEEE Std 802.15.4-2024: IEEE Standard for Low-Rate Wireless Networks</title>
            <author>
              <organization>Institute of Electrical and Electronics Engineers</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9635">
          <front>
            <title>Grant Negotiation and Authorization Protocol (GNAP)</title>
            <author fullname="J. Richer" initials="J." role="editor" surname="Richer"/>
            <author fullname="F. Imbault" initials="F." surname="Imbault"/>
            <date month="October" year="2024"/>
            <abstract>
              <t>The Grant Negotiation and Authorization Protocol (GNAP) defines a mechanism for delegating authorization to a piece of software and conveying the results and artifacts of that delegation to the software. This delegation can include access to a set of APIs as well as subject information passed directly to the software.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9635"/>
          <seriesInfo name="DOI" value="10.17487/RFC9635"/>
        </reference>
        <reference anchor="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://bitbucket.org/openid/connect/src/master/openid-connect-self-issued-v2/openid-connect-self-issued-v2-1_0.md">
          <front>
            <title>Self-Issued OpenID Provider v2</title>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="M. B." surname="Jones" fullname="Michael B. Jones">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <date year="2022" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID.VP" target="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Presentations</title>
            <author initials="O." surname="Terbu" fullname="Oliver Terbu">
              <organization>Mattr</organization>
            </author>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization>Mattr</organization>
            </author>
            <date year="2023" month="November"/>
          </front>
        </reference>
        <reference anchor="OpenID.VCI" target="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html">
          <front>
            <title>OpenID for Verifiable Credential Issuance</title>
            <author initials="T." surname="Lodderstedt" fullname="Torsten Lodderstedt">
              <organization>yes.com</organization>
            </author>
            <author initials="K." surname="Yasuda" fullname="Kristina Yasuda">
              <organization>Microsoft</organization>
            </author>
            <author initials="T." surname="Looker" fullname="Tobias Looker">
              <organization>Mattr</organization>
            </author>
            <date year="2023" month="October"/>
          </front>
        </reference>
        <reference anchor="Bauer2022" target="https://elib.uni-stuttgart.de/handle/11682/12417">
          <front>
            <title>Formal analysis of self-issued OpenID providers</title>
            <author initials="C." surname="Bauer" fullname="C Bauer">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="OpenID.Core" target="https://openid.net/specs/openid-connect-core-1_0.html">
          <front>
            <title>OpenID Connect Core 1.0</title>
            <author initials="N." surname="Sakimura">
              <organization/>
            </author>
            <author initials="J." surname="Bradley">
              <organization/>
            </author>
            <author initials="M. B." surname="Jones">
              <organization/>
            </author>
            <author initials="B." surname="de Medeiros">
              <organization/>
            </author>
            <author initials="C." surname="Mortimore">
              <organization/>
            </author>
            <date year="2014" month="November"/>
          </front>
        </reference>
        <reference anchor="PCRSM2023" target="https://doi.org/10.1109/TDSC.2023.3296210">
          <front>
            <title>An Automated Multi-Layered Methodology to Assist the Secure and Risk-Aware Design of Multi-Factor Authentication Protocols, IEEE Transactions on Dependable and Secure Computing (TDSC)</title>
            <author initials="M." surname="Pernpruner" fullname="Marco Pernpruner">
              <organization/>
            </author>
            <author initials="R." surname="Carbone" fullname="Roberto Carbone">
              <organization/>
            </author>
            <author initials="G." surname="Sciarretta" fullname="Giada Sciarretta">
              <organization/>
            </author>
            <author initials="S." surname="Ranise" fullname="Silvio Ranise">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <reference anchor="MPRCS2020" target="https://doi.org/10.1145/3374664.3375727">
          <front>
            <title>The Good, the Bad and the (Not So) Ugly of Out-of-Band Authentication with eID Cards and Push Notifications: Design, Formal and Risk Analysis, Proceedings of the Tenth ACM Conference on Data and Application Security and Privacy, Pages 223–234, Association for Computing Machinery</title>
            <author initials="M." surname="Pernpruner" fullname="Marco Pernpruner">
              <organization/>
            </author>
            <author initials="R." surname="Carbone" fullname="Roberto Carbone">
              <organization/>
            </author>
            <author initials="S." surname="Ranise" fullname="Silvio Ranise">
              <organization/>
            </author>
            <author initials="G." surname="Sciarretta" fullname="Giada Sciarretta">
              <organization/>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="Helmschmidt2022" target="https://elib.uni-stuttgart.de/handle/11682/12220">
          <front>
            <title>Security analysis of the Grant Negotiation and Authorization Protocol</title>
            <author initials="F." surname="Helmschmidt">
              <organization/>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        <reference anchor="Baki2023" target="https://doi.org/10.1109/TDSC.2022.3151103">
          <front>
            <title>Sixteen Years of Phishing User Studies: What Have We Learned?, IEEE Transactions on Dependable and Secure Computing, Volume 20, Number 2, Pages 1200–1212</title>
            <author initials="S." surname="Baki">
              <organization/>
            </author>
            <author initials="R. M." surname="Verma">
              <organization/>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        <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>
      </references>
    </references>
    <?line 1308?>

<section anchor="document-history">
      <name>Document History</name>
      <t>[[ To be removed from the final specification ]]</t>
      <ul spacing="normal">
        <li>
          <t>latest
          </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 scehems 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 navvigation (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 and Bing Liu to the list of people who proivded input and made contributions.</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 seperate 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 implented by the authorization server only.</t>
            </li>
            <li>
              <t>Add Dan Moore to acknowledgements.</t>
            </li>
            <li>
              <t>Updated outdated references.</t>
            </li>
          </ul>
          <t>
-10  </t>
          <ul spacing="normal">
            <li>
              <t>Shepherd feedback: Describe unauthenticated channel.</t>
            </li>
            <li>
              <t>Shepherd feedback: Seperate normative and informative references.</t>
            </li>
            <li>
              <t>Shepherd feedback: Update FIDO/WebAuthn references</t>
            </li>
          </ul>
          <t>
-09  </t>
          <ul spacing="normal">
            <li>
              <t>Affiliation change to allow publication to Datatracker.</t>
            </li>
            <li>
              <t>No content changes - re-published to avoid expiry while waiting on shepherd review.</t>
            </li>
          </ul>
          <t>
-08  </t>
          <ul spacing="normal">
            <li>
              <t>Editorial updates.</t>
            </li>
          </ul>
          <t>
-07  </t>
          <ul spacing="normal">
            <li>
              <t>Clarification of FIDO\WebAuthn section.</t>
            </li>
            <li>
              <t>Updated langugage in section on FIDO to allow for use of FIDO keys on consumption devices.</t>
            </li>
            <li>
              <t>Clarified origin of QR Code.</t>
            </li>
            <li>
              <t>Editorial updates</t>
            </li>
            <li>
              <t>Updated examples to be consistent.</t>
            </li>
            <li>
              <t>Made diagram description clearer.</t>
            </li>
            <li>
              <t>Added CTAP 2.2 Draft.</t>
            </li>
            <li>
              <t>Added additional guidance on geolocation inaccuracies.</t>
            </li>
            <li>
              <t>Added Roy Williams to acknowledgements</t>
            </li>
            <li>
              <t>Clarified that authorization servers can detect</t>
            </li>
            <li>
              <t>Consistent use of "smart TV"</t>
            </li>
            <li>
              <t>Fixed references</t>
            </li>
          </ul>
          <t>
-06  </t>
          <ul spacing="normal">
            <li>
              <t>Corrected typos.</t>
            </li>
          </ul>
          <t>
-05  </t>
          <ul spacing="normal">
            <li>
              <t>Added section to provide actionable guidance to implementers on how to use this document.</t>
            </li>
            <li>
              <t>Expanded section on formal analysis to include completed research projects.</t>
            </li>
            <li>
              <t>Added reference to OpenID for Verifiable Presentations.</t>
            </li>
          </ul>
          <t>
-04  </t>
          <ul spacing="normal">
            <li>
              <t>Corrected formatting issue that prevented history from showing correctly.</t>
            </li>
          </ul>
          <t>
-03  </t>
          <ul spacing="normal">
            <li>
              <t>Introduced normative SHOULD, RECOMMENDED and MAY when applied to actions the Authorization Server, Resource Server or Client may implement.</t>
            </li>
            <li>
              <t>Added User Education as a standalone mitigation.</t>
            </li>
            <li>
              <t>Added Maryam Mehrnezhad, Marco Pernpruner and Giada Sciarretta to the contributors list.</t>
            </li>
            <li>
              <t>Added Request Binding with Out-of-Band Data as an additional mitigation.</t>
            </li>
            <li>
              <t>Adopted the OpenID Foundation terminology from <xref target="CIBA"/> and changed Initiating Device to Consumption Device</t>
            </li>
            <li>
              <t>Added Fake Helpdesk and Consent Request Overload examples</t>
            </li>
            <li>
              <t>Replaced "Authenticated Flow" mitigation name with "Authenticate-then-Intitiate"</t>
            </li>
            <li>
              <t>Added Cross-Device Session Transfer pattern</t>
            </li>
          </ul>
          <t>
-02  </t>
          <ul spacing="normal">
            <li>
              <t>Fixed typos and grammar edits</t>
            </li>
            <li>
              <t>Capitalised Initiating Device and Authorization Device</t>
            </li>
            <li>
              <t>Introduced Cross-Device Consent Phishing as a label for the types of attacks described in this document.</t>
            </li>
            <li>
              <t>Updated labels for different types of flows (User-Transferred Session Data Pattern, Backchannel-Transferred Session Pattern, User-Transferred Authorization Data Pattern)</t>
            </li>
            <li>
              <t>Adopted consistent use of hyphenation in using "cross-device"</t>
            </li>
            <li>
              <t>Consistent use of "Authorization Device"</t>
            </li>
            <li>
              <t>Update Reference to Secure Signals Framework to reflect name change from Secure Signals and Events</t>
            </li>
            <li>
              <t>Described difference between proximity enforced and proximity-less cross-device flows</t>
            </li>
            <li>
              <t>General editorial pass</t>
            </li>
          </ul>
          <t>
-01  </t>
          <ul spacing="normal">
            <li>
              <t>Added additional diagrams and descriptions to distinguish between different cross-device flow patterns.</t>
            </li>
            <li>
              <t>Added short description on limitations of each mitigation.</t>
            </li>
            <li>
              <t>Added acknowledgement of additional contributors.</t>
            </li>
            <li>
              <t>Fixed document history format.</t>
            </li>
          </ul>
          <t>
-00 (Working Group Draft)  </t>
          <ul spacing="normal">
            <li>
              <t>Initial WG revision (content unchanged from draft-kasselman-cross-device-security-03)</t>
            </li>
          </ul>
          <t>
-03 draft-kasselman-cross-device-security  </t>
          <ul spacing="normal">
            <li>
              <t>Minor edits and typos</t>
            </li>
          </ul>
          <t>
-02 draft-kasselman-cross-device-security  </t>
          <ul spacing="normal">
            <li>
              <t>Minor edits and typos</t>
            </li>
            <li>
              <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-02</t>
            </li>
          </ul>
          <t>
-01 draft-kasselman-cross-device-security  </t>
          <ul spacing="normal">
            <li>
              <t>Updated draft based on feedback from version circulated to OAuth working group</t>
            </li>
            <li>
              <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-01</t>
            </li>
          </ul>
          <t>
-00 draft-kasselman-cross-device-security  </t>
          <ul spacing="normal">
            <li>
              <t>Initial draft adopted from document circulated to the OAuth Security Workshop Slack Channel</t>
            </li>
            <li>
              <t>Upload as draft-ietf-oauth-cross-device-security-best-practice-00</t>
            </li>
          </ul>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y9a3fbRrYo+J2/Asv50FaalG3ZcRKvM/deWbYTdfzQsZRk
es2aOQskQQotEmADoBS247Puf5h/OL9k9rNqF1AgKdnp7tMnWt2xRAL12LVr
vx+j0WhQN2kx/Y90URbZs6Sp1tkgX1X0W90cPXz47cOjwSRtniXjyWpQr8fL
vK7zsmg2K3j89OXFq0FaZemzpM4mg5v5s6RM183lYDAtJ0W6hEemVTprRnnW
zEb01WhSlXU9mmbX+SQbwVvrKm82o0dPBoMmbxbwxr0TeuIFPZG8WpQ39bPk
XB5Mnmd1k5ysqyormuSsSicNPHVvkI7HVXaNL794dX5vsEgLWEtWDK5uniX/
1z2d5t4wuUerOMLfxjjURIZa6VD/9+CLZJo2sJCjh0dHo4f4v2Q0os+SvE5m
+WKRTZO8SGCgcpnCS+lisUnGm+SX5eKomk2SfJYUZZPM82tYAU5XVs8Go4QB
cgawyKrkh7Sus8UyLQZJUlaw2BfZLL1qSvgzW6b54hms6Eqf+V9z/OhwUi7d
MC/SIs8WyausaXSEY5hpAYP7IfC//2tKT87gwcNp5t5/lS/yVXJ+VV75Jby7
alIzf1pcp4f5ykw+KMoKd3ydPRsk71+dHD169O2z5Ivkh2yT3JTVFKBTVsm6
zhA88H2dNGVyWkwBRAC899lf13mVLRHcr7PrbFHTIE+/fkKDvMP1J0eHD2kj
ZZX/DWYqi+RVBQuG0a/o6a+fPn6KT59VZTmjiXHKk3KaJS9/mVzCuWd4FDzY
2Xq8yCfJySKHOXm2bx59/QTfP16O8/kaMQqG+XG1yqpJCuu+rpPX5Y38wZtI
cJc008+4RR7l6dE34ZoFXcOlf1elRSPLfnoUvnBRXmUFAKcBbF9lE3x+kJyc
Pj8G0MKPXoZ3q6w4fQEbLAp4SLYyOi3yJgeYTpPn6eQKt10AMuDY8C1CmwAH
VycZwatVljw6fHiPxlV0TOhHseG7svgbkABAp6oAcpD9LXlfTisAUPY3eVJQ
5CJbZLOygClaI8BkVZ4Wyc/pAtA7fOlFtm7qyWVGb1+Vy+T4u9bbx7/A8t9m
RXF1+3dfpNfwbQkHH775Bija5nI9bj3+nJZ5ki5X42yxCF85y4t5cjpFGDYb
+spRgkejh9/ywaTVPAN6eNk0q/rZgwclHFA+PSyy5gGeYy0fjCZ8Urme1Gjs
T2qUBic1msARjR79x8PDy2YJSzo5fnmGJ9TFgSYv1uW6To4nk6yuk5fX6WLN
hw33ASiTO2h7zKOEF7EAOnrv+PCe7LleVwyRexfrRX2Zj9P5TbrI9OvZerGQ
74+b9SKJPgRQA+rC2A4Pnn/39vW97pwXkTlP0tUK6GYeme4iXybtr1sTvcmR
jZSzBr93Z/TV6OE3g1ucUJqtEOqjWV6kC4H9+fmrCOjPL4HLTZPzfA5P1p4k
JecwYD7TG/ffEPit2d5EZjsHHttk9WQdme5NWuWAz51HWlOelHkxBpIcmTEG
UySKwDZj0CyKFO99lrSeaU14vEz/VhaR6f4Um65Kp4tsE5nuT+VlkbS+bs30
5/U4n5SRmc4jM70BTh6ZBtBzU2SJ/bYNwLzmSfouy71dt6WmK1DzDRjN9Aa0
LhBM8fPjk5+zMfKiwt4k+KzFoIDsF8nx2Slx8JQoGtJfYdrIcE9gRnwe7xxJ
DMnjrffr8+M6ikRRNH8emepPwHHqGJLnQPdh8c8Pk+CRW9yrGJb/sF6mVQzH
r+CsNknw9S2mehmZ6vW6mI6zah6Z7eUyXyTt7/fF8Ri5eIMCdmxfb9IG0Ocm
CR/YB9EfxRD95ubm8ObxIbz/4OL9A3zwwc8vRjfZGNGrGD0e4UcPHx19/QCG
e3X64t3JxfHZ0ZHFaZbGUMg1mA3IDMy4KSflIrmP7xxsxdm/H0H5V0ba9zGk
zUGSBRIf4wPvy8Us6TzQmvBteZXg/1+n43pPAv1TBurkqomfHMidre/b1KbI
zldpjO28iMz1c5o3MYkBBOJ8mgTftuYJ5Nz2Zfk6dllm+bREMpkWk4yuDPMG
/Hh0fXR4NFrVfF++fvSEPxX5tymtsFtWo5Xcjc5ryj/85PDH6cuXL78B6fur
J/be4afJeTNN4KvDR18dPsFBnjxL5HPQYNJqSmwFlLnRe1Q+fwbNc4Ey89us
Qb5Vdy5lHFSnRQ2zrmEE0BNfLkAHq1DhT2AO+RO1IRDFi3leZFlVB+B8EoNl
LQusD/MsY2jiLw90Mw8ePXr45BFQnUFezEKF+9unj79CNZIUS9jKvETlAkVP
XE+ofHoi9N1bIEKDQXL8/uLFydn3p+ffW2BegHJ1XDW4PzgnVWRJoz67zOvL
NqCMKlWOQdU+KUGTHYSqksUh3fbDX8bl1RrtCEhsHz14+PWDR0cPYOZ3M54T
p6QZWRQfJC9OXr1+93NnwY4OJI+ffiUatV016b0IDxoMUL1/B2JFeZMXrQ3E
9AhkGOUKDoP2kBcgC1029YO6XFeTbPS3rCofjBfl/MFS1zeC9YnVS+xdE1jf
aAbrG8H6RitZH2z17cufI0dD1oHpeoLXNU0K4H36StJkk8si/+s6IzSHBcG9
WuYkQL2bzRAWCByQqsp10XSQ3UPgbVbDrcyT882myJdpauHwcPToYUyfgpFx
owSGVVk3D3RVD76ANbptjdwag+2Hui8e88tXJ+/eHn1rd/4W9qrHlxw3DQjr
cMd+WS1KIIm4Rzr1iMGjTu7zeMnRt23Gq3v+U1Zclcn3NyWAfr9j35TrZj3O
aMc3aTO5/J/X/8e39eL9n69XP3y/ekK4enxxcXzyQ6A84vr+UHeR83i8rtmG
2N5jZ8VtJQ8tmSR41zAeHG1WJReXVZY2yY/ALVDg+PHg3p67qv1gtDPCXsLX
OoKwtOZRXvjzTXnNsPvzf+/g7vlf16Aw0P5A0J9eI+eYGvwtgTLBpGOgmnXy
7+8TnKmma+ttZLwI+irBRfSc5w/pMrkAxXj8t3SaXQ4C7L5Op2nyvlzW0/TS
guWoHyyX2WIF6o8ajZViHT14+A2Q5gc1bYw2MgJGm5UP8P7++eTweX6VBdIh
oGqCH9bJOMM91zf5CmAANPMv5abKp/TZJF0ugW0kN5dlcommrEkFQIXHkBgL
XPr2DcLEJvnTYfJ8UxVtEhzbXbHB62pI8DdIhSewztEY1zmidY54naPxZuTW
OdJ1jmCdI1znSNY5gnWO/loRpiAk2GJyeH767uynQFg+zxaz0Wldr2FvYlYB
FoUQrJLro74tVjnw3yJN/pzW66kYHdm8p1TWPt4WWnc9f1FWdZMVICZMYRnw
67Qxr2wyuhch2jx6FAHsOG/Ga4BGQ9ycNeYHE7bZPqiryYNlCoNXzvLE34xq
BElOIAFxaPu3ZB9cTj2Ef4rZCJEZgIyZz/J0vMiMAg2wzmr4lQhJl8wwON4t
QNIAgpJV47UFHVz06i5gu+sxXpTjPEVLfOnswcFC3HE8jh9Hnw3jyejawQYE
UQMQb3318D05vRWAEbWRyPXA9p8JZlGuvg/MJm67hJi4XQu55+k6q/CWWMC9
QhEWBeZ0sanzGuVMg9lKClZCCvpQ84QHD+5iZBfZIh8frot8VIPM3szTCp1e
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
YG7cSoKQ5Xhb7iqN0xiqbR8QY5aKsZm9vC5kSkxPHPlB/hiU73sPNAo2MsAg
ucJKcVwzFPOnDvov8A5giKFiTxMxxl429eojh+veyR4ZT7cR6O5t0OOgAEnY
3dds3G9yKKK2hsPf0NZgdeqIrcFCcoutoaX1OaH31nqsHSVp/alyZvvz243S
+bmlHvtvJMWTNmyheSc9dj+4eCvBnj87rASfOgpbCT51lFv9/LfQzCOf3mkU
lFVoW1ZHudNarKQOpGzitKpbjXKrnx2jfB570N31+3CUJNDv1ZbJVOrHLdpw
stOW2eJat9bX+J/Po2l1fm6vO778XXfcV7T5O2uPySdpjztdqE6XdDJ5R0Ky
spZz/URlLXbTs4rX1Rx8caDQv92fUHmTalpHqrEC2fYl7KHetve7NabMuMJA
GN6mfJ4ajbGbkyrVJqQ4Qp/XNKZixaKBt2h/Hb30X1QhevXPoBD1rkALYaRU
Ly3jCosmkcAoJd17F6SYdwviMXWYZlM9T67wF4YqU2hSLQeQJlSjSM6G9aU0
AXWdYsdTn6lnKqKxMUAiU0Kd34fXutivHid2f/gHubJTdGW/NHW3dOKRjQIP
j5EcxhIropmzmsNlwyK3kbptuiJlXEem3CMGhCMbLaiHSTbC/r8mwNGWldjm
LJdyLL3kUWI0YqEvuF4TOyc2qHwLFzjsNZ0BNPqmCJIPouBEwi3WJvxUogcx
a4+wMlLNxtyu26vgv+vgye86uHz2//Tso3+nMR18t260hw6O3JhW9pIv4m1G
CZ/pOs92jNLVe+EZIsO32ZHq4Ltvz+3WsvsnDpfdZ7vHKE4HPylXeRY9lX3W
0jmVW0M39umd18I///w6OPnYu5ShPcofe76+HcXsW6r82Tmxf4ifsl9U+l3f
vLOyx+LL3aS5HdKZFVutYI9hlKIeaaInZp1W+XjdxLxjEpHLcqyVHUGFylR2
jBVqsk5PgiVmOdSSSkskrWcy2Tt+u233ImBujWXuKJvG3xmZuV/+3KXRUbuj
WmsAlj0q3m+lyU0uy7LuaudOwhbBVtWt+O73qO1HOZt18/H3Gn+/1/jbv8bf
71XrPqlq3Rc7b6Xy4dPCq5u78FtiTvAhCq8fb4KsOfy8XWS65eHu90v32ANc
TFBPrTjDmbjSIvcE2auc4mHy82VmsgK2BbtsMzQEd4cqfnNl3/Cu6YXqraYu
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
yoowr05OCHLfSafTtKFSf1rI4j7ch3KFpWimbUQ5aJFiWwyv4QBvvSL7hJlR
gbrtrWZvRYl0mUPiSFk69S372Bi2rLPFtQvE7CUNLp6s06WlYkqB9AqLkfDa
tqysZW4mGMV63GhRop7LKsGRzP3ya6B0HNwPJ8eR5ZfpNYaHkX1Sqv/ZUPc9
+vXuW3mnp8TSZ6uD1Vt2SSHT7eWTBiWNGMZSg6mn7YrJDmiTQj6w2xXZqMMy
G9zbuFV2SuqKb1mTVqvAOjhe7NC42IDGbCnhVHNqwGcv3vRbNajsTdu8ZYha
T3SCWjX3alDZGiWYk372alC5c5TIjm41impLezSo3H9H2xpUfu4dfVJLPNQO
vLlijzCb3fZIp+hvaVG5hz3y190tKvewR+7RovIO1pgIiHdZhiI2oQi0f6u1
RCxBO896L6vmXUbpWDWdSZM1KD323WsJLZi/mgsYPfS9rJrwAZD0LTGxe1k1
7wrd0Kp5h2aZu/AlRh124G4EFrHt/VZriTy0E777jdL1u9x1Ldso1f6jmCat
t2zc6X52YMz2Uf7Zm6t+/3tz1aj8cvqbNVf9TAizV3fV7bXu72yiJYVcVCCb
eyqhCa7+odeIIoVmb2edNQpun3aitlpWSFB5a/4LtW8N7a7RmU0BhDgMPjWG
8e/VK9aaLT9Xr1hrXWQc3gttOoYZ37sTPw8rNxhPwNRaSdU82a2a7Mqnm8VI
0CZl7edNvCAkqtjbrZJ/j96xWxPU/3l6xxpod/vH7gCpowBSkLinSWyYJemu
/S5a4XDk+cEe3WRtAflOa9b9Gssaiwqarjo9ZKU/hjW+kWm1dkXwW61huavt
RzXXuGkxx1ObzvaajvPaWIyxTY2z3GGmMOL/pFxt7N2o1dgo1V6HuwpZs+/P
W0P3sfHhFMu8XqD91RdrJVuvywWeSF1nRIlrcuLMXKeqoWKJ62FFqbHSDbBu
NZR4/uhZcrpY5BO4379NB93xI8QOD+ywCYo/5L4zTh9R499jkznraruGDXil
k0Srb4W06+vru6sD+DGVKjt+1e0nG83Pp1YXptAOfjOpsqxo0YFIQRrqR7Ic
Yyto7kfSrtLiS3ZoenWxhucrTg+e5KucztbWZEF8lB2paFQ3qS+uEt+Za/wB
zxRXHGIqLm4gI1RjJanXq5WWLBkzq2g3rhIuQgnb48zTL+oAOC6LdW1stE3Q
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
Ki/XuXHPLlQCg0nRmkdOSayAwAYynNV5z9hhQ1laQOgWC6p0MNfg1VaqHNlx
V8wNiCGlG0lwcRIPIsgExHgkb65WhJgOiDn9eP6c10NAHUtOTKnpOmIjcMLB
usLyvGh7jwJG1y4iMZojpdJ2NhX67bZK9pdXpy/eeR2GCwIXzj4hImJH7gsI
JKk9mtsS+OUDPZfMcz/DQRBtdGf0LHmbpVXyKs9AZzgBLXldOBfr/bevTg6G
yfPFOgMJEZbyGmt5gGQ43yT3n79+ecC60Y+YSwdDT7Mx/nn/x5+fH7iaEsF+
Gu5BlfVQ3kClgbltkDI5kKfZwsttuMOg/xSaPdAQRzgoOV51uViLQx1xEQdF
6U+VL4JFa9zDBLbm40ZcePsCgyU4U4Li/aOcxHcaU8NlG2cVrdVEKViZrFeH
CUDOWUS9Kef05cuXSfLNw6PDR18dPnHMhz7WT/82Onp49DA5RiMHbfyRytCE
u5jHxjdJ4a04R4FblA9sNOkIHUGizJsPqHfy4QOuA5bx6CvMk2KExkF/zsbI
EYrROK3j/H5B/RDn6HpuY6V4AfAgaIFiybSSqOpbdBgmeVf2G5nvPlu8Z/m0
RGM33odzdAtO1Sr2zJcYcj52EfkLiZ0Bbs2MwRXDIHulg2aVBbYwE5CNZewp
Jlar4POSTRBpjLVwXzjAapUPWga8zNUol636uIuu2+9+rBGDBCqkjQ4U7ypw
7NF/sRGVHXcjAPK7ke0bezPK5yZLsW2CRC6ClWgQWxVQZMFAPYI1+KlTUWIw
gmvFklJUNgHhqzNjGJ7r0pl9fDaFXlBsncmNadLlis0SLrhDo/uJzmbeOIDf
SRCaJFsRyRcIU8AjCFbC9APtGk1BIgHkjRXfWLNDO6ZL9Yr131Av4MVPB97O
+nM+epU7RlUWJuIpKrV5Ryk5ERU6Qm0NUrP66+U75LYk4hmC2PjKAxI049M8
ak38bke10E3i2ll0Ub/LSpXLnxm9SbDP0Su+Tf7GgGQ8cvK8lcyAA/gmEfNF
OcbA+PRaFFC4vE22ADEyG7F4mNz/7u35+QGMPCoxuF+V6blfFugN5dV6hWd8
emauJ6fi6YKMOGm2lDCNxMgCmIYoxHVaEThTjFDDzP9Og1iJKdQxTKGZZaqW
xCIVfZgEmjn/PiaPOUV34kxU8SpEpv5YksK0/9SZpb5EWWcBHXSyPpbtqSgu
+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
gxTXL/h9W1rY/s5fmR1V24ETAgA=

-->

</rfc>
