Skip to content

Commit 3c89b2e

Browse files
authored
Merge branch 'main' into patch-2
2 parents 6d1790d + 541d954 commit 3c89b2e

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

draft-ietf-oauth-cross-device-security.md

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ organization="Okta"
4545
.# Abstract
4646

4747
This document describes threats against cross-device flows
48-
along with near term mitigations, protocol selection guidance
48+
along with near term mitigations, protocol selection guidance,
4949
and the analytical tools needed to evaluate the effectiveness of
5050
these mitigations. It serves as a security guide to system designers,
5151
architects, product managers, security specialists, fraud analysts
@@ -54,23 +54,21 @@ and engineers implementing cross-device flows.
5454
{mainmatter}
5555

5656
# Introduction {#Introduction}
57-
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to perform an action such as authenticating or granting authorization, before passing control back to the first device, or to access the service that was running on the first device on the second device.
57+
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 SmartTV, 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.
5858

59-
These flows typically involve using a mobile phone to scan a QR code
60-
or enter a user code displayed on the first device (e.g., Smart
61-
TV, Kiosk, Personal Computer etc).
59+
In all cases, it is up to the user to decide whether to grant the authorization or not. However, the transfer the QR code or PIN are transferred via an unauthorized channel and the user cannot always decide in which context an authorization is requested. This may be exploited by attackers to gain unauthorized access to a user's resources.
6260

63-
When the user is required to scan a QR code or enter a user code, the channel between the first and second device is unauthenticated. It is up to the user to decide whether to trust the QR code or user code. This lack of an authenticated channel may be exploited by attackers to gain unauthorized access to a user's resources.
61+
To accommodate the various nuances of cross-device flows, this document distinguished between cases where the cross-device flow is used to authorize access to a resource (cross-device authorization flows) and cases where the cross-device flow is used to transfer an existing session (cross-device session transfer flows).
6462

6563
## Cross-Device Authorization
6664
Cross-device authorization flows enable a user to initiate an authorization
6765
flow on one device (the Consumption Device) and then use a second, personally
6866
trusted, device (Authorization Device) to authorize the Consumption
6967
Device to access a resource (e.g., access to a service). The Device
70-
Authorization Grant ([@RFC8628]) and Client Initiated Backchannel
71-
Authentication [@CIBA] are two examples of popular cross-device flows.
68+
Authorization Grant [@RFC8628] and Client-Initiated Backchannel
69+
Authentication [@CIBA] are two examples of popular cross-device authorization flows.
7270

73-
In these cross-device authorization flows, the channel between the Consumption Device and the Authorization Device is unauthenticated. It is up to the user to decide whether to trust a QR code, user code, or the authorization request pushed to their Authorization Device.
71+
In these flows, it is the user's decision whether to continue the session by scanning a QR code, entering a user code, or accepting an authorization request pushed to their Authorization Device.
7472

7573
Cross-Device Consent Phishing (CDCP) attacks exploit the unauthenticated channel
7674
between the Consumption Device and Authorization Device using social engineering
@@ -90,12 +88,12 @@ selling them. These attacks are effective even when multi-factor authentication
9088
is deployed, since the attacker's aim is not to capture and replay the credentials,
9189
but rather to persuade the user to grant authorization.
9290

93-
## Cross-Device Service Transfer
94-
Service 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).
91+
## Cross-Device Session Transfer
92+
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).
9593

9694
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.
9795

98-
The session transfer may preserve state information, including authentication state, to the second device to avoid additional configuration and optimise 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., [@OpenID.SIOPV2]).
96+
The session transfer may preserve state information, including authentication state, to 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., [@OpenID.SIOPV2]).
9997

10098
In these cross-device session transfer flows, the channel between the Authorization Device and the Consumption Device is unauthenticated.
10199

@@ -121,16 +119,15 @@ appear in all capitals, as shown here.
121119

122120
This specification uses the terms "access token", "refresh token",
123121
"authorization server", "resource server", "authorization endpoint",
124-
"authorization request", "authorization response", "token endpoint",
125-
"grant type", "access token request", "access token response", and
122+
"authorization request", and
126123
"client" defined by The OAuth 2.0 Authorization Framework [@!RFC6749].
127124

128-
# Cross-Device Flow Concepts
129-
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to perform an action on the second device to complete a task such as authenticating or granting authorization, before passing control back to the first device, or to access the service that was running on the first device on the second device.
125+
# Cross-Device Flow Patterns
126+
Cross-device flows allow a user to start a flow on one device (e.g., a SmartTV) and then transfer the session to continue it on a second device (e.g., a mobile phone). The second device may be used to access the service that was running on the first device, or to perform an action such as authenticating or granting authorization before passing control back to the first device.
130127

131128
These flows typically involve using a mobile phone to scan a QR code
132129
or enter a user code displayed on the first device (e.g., Smart
133-
TV, Kiosk, Personal Computer etc).
130+
TV, Kiosk, Personal Computer etc.).
134131

135132
## Cross-Device Authorization
136133
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
@@ -157,6 +154,8 @@ There are three cross-device flow patterns for transferring the authorization re
157154
- Backchannel-Transferred Session Pattern: In the second pattern, the OAuth client on the Consumption Device is responsible for transferring the session and initiating authorization on the Authorization Device via a backchannel with the Authorization Server. For example the user may attempt an online purchase on a Consumption Device (e.g. a personal computer) and receive an authorization request on their Authentication Device (e.g. mobile phone). The Client Initiated Backchannel Authentication [@CIBA] is an example of a cross-device flow that follow this pattern.
158155
- User-Transferred Authorization Data Pattern: In the third pattern, the OAuth client on the Consumption Device triggers the authorization request via a backchannel with the Authorization Server. Authorization data (e.g. a 6 digit authorization code) is displayed on the Authorization Device, which the user transfers to Consumption Device (e.g., by manually entering it). For example the user may attempt to access data in an enterprise application and receive a 6 digit authorization code on their Authentication Device (e.g. mobile phone) that they enter on Consumption Device.
159156

157+
In these flows, it is the user's decision whether to continue the session by scanning a QR code, entering a user code, or accepting an authorization request pushed to their Authorization Device.
158+
160159
### User-Transferred Session Data Pattern
161160
The Device Authorization Grant ([@RFC8628]) is an example of a cross-device flow that relies on the user copying information from the Consumption Device to the Authorization Device. The figure below shows a typical example of this flow:
162161

@@ -255,13 +254,9 @@ Figure: Cross-Device Flow: User-Transferred Authorization Data Pattern
255254
The Authorization Server may choose to authenticate the user before sending the authorization data. The authorization data may be delivered as a text message or through a mobile application.
256255

257256
## Cross-Device Session Transfer
258-
In a cross-device service transfer flow, a 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).
259-
260-
Cross-device session transfer flows enables users to transfer state information, including the authentication and authorization state of the current session to a second device without having to re-enter configuration, authentication or authorization information. This allows users to seamlessly:
257+
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).
261258

262-
* Add new devices to a network.
263-
* Onboard to a mobile application.
264-
* Provision new credentials (e.g. [@OpenID.VCI]).
259+
The session transfer may preserve state information, including authentication state, to 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., [@OpenID.SIOPV2]).
265260

266261
### Cross-Device Session Transfer Pattern
267262
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 optimise the user experience. This type of flow is used for adding new devices to networks, bootstrapping new applications or provisioning new credentials. The Pre-Authorized Code Flow in ([@OpenID.VCI])) is an example of using this pattern to provision a new credential. The figure below shows an example of this flow.

0 commit comments

Comments
 (0)