[OAUTH-WG] Re: Mohamed Boucadair's No Objection on draft-ietf-oauth-cross-device-security-14: (with COMMENT)

Pieter Kasselman <pieter@defakto.security> Wed, 14 January 2026 18:48 UTC

Return-Path: <pieter@defakto.security>
X-Original-To: oauth@mail2.ietf.org
Delivered-To: oauth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 817B4A7B1C3F for <oauth@mail2.ietf.org>; Wed, 14 Jan 2026 10:48:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=defakto.security
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xbRvhQfzxXA0 for <oauth@mail2.ietf.org>; Wed, 14 Jan 2026 10:48:27 -0800 (PST)
Received: from mail-yw1-x1136.google.com (mail-yw1-x1136.google.com [IPv6:2607:f8b0:4864:20::1136]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 854B0A7B1C2F for <oauth@ietf.org>; Wed, 14 Jan 2026 10:48:27 -0800 (PST)
Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-78fc3572431so812447b3.0 for <oauth@ietf.org>; Wed, 14 Jan 2026 10:48:27 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1768416501; cv=none; d=google.com; s=arc-20240605; b=F5Z6XIc/ouu3HS6+Qhy2o/z0kWKTMR//o5L4uV13/pJS9StDfITNgcCyGvOv6GElav 8WjZdN0VKmQ59juBSAY9S3RCnr5QBtRYk5O3dGg56aTwuM9LqGka8J7CRmVC2lOiGDH4 kj08pLWn20+Lei/tqYRcwTFk1Sqh/QPD3IqK5W7WfZA4EHLW/Crvv6NFapd9TFOzrXC2 U5YMiq0JoPiv8IIgQkTIy/cpwDlZ6LswlLOhyDafuo68Y8D5sQ1OpS4/oIjAS4+WqhPh iwG4tNCAANjRrfvNfVgNG5FvBf+k5QSO0M/4RxtIpknaJXujD3lP57wU1LYIx1hjd9lN XxQQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=7sZpSI1dKP6GvD4dCDVGifeXwQsdd5DEcI2WPenD2aY=; fh=PDHuHLB/8WmUcY9OXsidUvmQnZOo7Dfee5gQURc8Yic=; b=YRIMpeDKeIT8UM2ynhCrIJGIQu/JCnncL2WXoXcCSzBy/HeZPCdqU2nKkz1wSgOoMH u9Xr99thm+n8nM7y7w7R7bpEnBg58ZfBuvVt2MWUVu+eGQz2KMTGC5ua6rzOfCDSTbFG qtWoCXRYvwXcczsiNr6fsQePKRsK9dFIvKGQZSJkKFL1LeoPiK3XhyozWxumfWoXZhmr lJmYkf4Xde45kzIP027DFaX6QLpO0jhldyYSIb6AXCkVB7VXv2d2Vqhq0DlO90hrD9R0 NkVdU6EDdew8NMjlCueDJolRMkNwlRKdBAJoEuut1gods4EeeoGaiDthdoDJlGszznQN oD8A==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=defakto.security; s=google; t=1768416501; x=1769021301; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=7sZpSI1dKP6GvD4dCDVGifeXwQsdd5DEcI2WPenD2aY=; b=byX1ik6tips9uYAyEqKFjhZqC+dkfud91Giuk5eNSoMBJwhAHJ+fBG0J1qv3P06QKv U60tXHXRec4KAliR++0BN9vmUkqYZaa+M0rQK2U4Rt3s9rB4X89dmJfoi1ts2XLlwmWR t/P79ya5w2ZW8hE5nw/UpULczWhtjsVZsiePZWbO3d/Bt5uUKWcPMA1nG191ksOnaSha 2l0yk/toLH2uv+0ikrHwbxXVpg/TDn8TwWxBX81Jbc8LIVyrc1+eOsZTFIl9pkLAcO4O N4bbmHoHyQjCbDgAvARKLU+njSFIcOKbRqt7KijI3ziZ6NMT1t2opu6mD/WzlqZE89Wo C2Sg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768416501; x=1769021301; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7sZpSI1dKP6GvD4dCDVGifeXwQsdd5DEcI2WPenD2aY=; b=dsHaK33MqGpgocyXAB7bdbP0NrlENlTZZvqUmeFeU2NdM0aK4fwaGgk0JfocwObona cXPadlxnTYmwSX6G2D2T3cZz/7a9C4TR2gUNCir4OddniCVOF4kNbOZtTFURKmJJK5yr MF/z+53yf3HDoEWAjVvRVjMXwXWh0O16BSOqLNoLO5sYR5FW4943qAVZZwJ70+ckAKB/ kRmH0qi0yFKCYZAF8VIpaG8VKK8YA56uaoaaECWYWEwRmy25EL3C6Nzj+Bw/RsU0nMKB Rhij6TVVD1JILdCv4xaHiiHZ6g3a7f4YDX5COYZvadLMX6O6SRz0ejBXTbhmpCf8lwHr ff5g==
X-Forwarded-Encrypted: i=1; AJvYcCWTQf4UaNwvqB+hjxl7wEi83L7r5vBFLnLCrE0kHKIFfh96jb9IzKbi4Np1+kQn4uS9AICv9Q==@ietf.org
X-Gm-Message-State: AOJu0YxHmOYJkOGbaL86SJvihP9Q4zGy1NkLR7ZyQwxgVmZo0cWno6Yo P9UOCSEZt9uFWyR2lOlPb/9NxCr/5YJru3NxDG8aG1vCDIHHtYEowMJFmC3CIgL2oQz0jPjXDVb skKrsfKQzmB+vTJO93fnBr58ZXf9VDSHg6sWuc2ARA97OayUYaSNj3Y8=
X-Gm-Gg: AY/fxX6zman6Xr1M4X2rzNr6Xw2CA1MGURhuqzHbCX6rp2icF/oE8Flb5Nv7+EtZ6D7 KcOy4ZDvQnRmcNo3rOlaLDaqsr653Pdl2AsUtbfvBH8EMuvBeoHt1nxRoVO7yJJvj8UcvXflt1e xzgiYNlL0D1pNq8hT8z43TTfvKNb6aCq17NmBv/STu6oRAWeC4iXOK6l0j9hXhSVAH9w5E2Bfjm Ca93D0hvBAVU8mk2owlq3E5cTTuM09vKel3553uZpv56g027jRuXt2SxHlvdhDtEdVx7SnHaJ1g Ib6v34YHplsrjfNA8kndHINPg9+QYBVyF393OQ9thXmWvKsSHQuZNyLfbpg=
X-Received: by 2002:a05:690e:4106:b0:63f:b410:e98 with SMTP id 956f58d0204a3-64901acb25fmr2974900d50.37.1768416500829; Wed, 14 Jan 2026 10:48:20 -0800 (PST)
MIME-Version: 1.0
References: <176839414380.1120188.6205616117946070013@dt-datatracker-5656579b89-r5kdq>
In-Reply-To: <176839414380.1120188.6205616117946070013@dt-datatracker-5656579b89-r5kdq>
From: Pieter Kasselman <pieter@defakto.security>
Date: Wed, 14 Jan 2026 18:48:09 +0000
X-Gm-Features: AZwV_QjDT_AdREHUjRb9WYizwU6zFaeNja6q7TdDLqEhaE4acUXBAW3QNgs8YRk
Message-ID: <CALtWOA1eUVE2g+C17+geDAsGTAdXJkSf7Fk9DvBGLSufdk=Vfw@mail.gmail.com>
To: Mohamed Boucadair <mohamed.boucadair@orange.com>
Content-Type: multipart/alternative; boundary="00000000000058e42906485d8da9"
Message-ID-Hash: KYXYS2NWBE5OVUABZ3BIEVZRFSR2MT22
X-Message-ID-Hash: KYXYS2NWBE5OVUABZ3BIEVZRFSR2MT22
X-MailFrom: pieter@defakto.security
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-oauth.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: The IESG <iesg@ietf.org>, Hannes.Tschofenig@gmx.net, draft-ietf-oauth-cross-device-security@ietf.org, oauth-chairs@ietf.org, oauth@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: Mohamed Boucadair's No Objection on draft-ietf-oauth-cross-device-security-14: (with COMMENT)
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/4S0PFSMuH9QNgHxlGDBN4FIla-A>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>

Thanks for the review Mohamed. I appreciate the deep read and comments.
Much appreciated. I will keep an eye out for the PR.

Responses are inline:

On Wed, Jan 14, 2026 at 12:36 PM Mohamed Boucadair via Datatracker <
noreply@ietf.org> wrote:

> Mohamed Boucadair has entered the following ballot position for
> draft-ietf-oauth-cross-device-security-14: No Objection
>
> When responding, please keep the subject line intact and reply to all
> email addresses included in the To and CC lines. (Feel free to cut this
> introductory paragraph, however.)
>
>
> Please refer to
> https://www.ietf.org/about/groups/iesg/statements/handling-ballot-positions/
> for more information about how to handle DISCUSS and COMMENT positions.
>
>
> The document, along with other ballot positions, can be found here:
> https://datatracker.ietf.org/doc/draft-ietf-oauth-cross-device-security/
>
>
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> Hi Pieter, Daniel, and Filip,
>
> Thank you for the effort put into this document.
>
> Thanks to Bing Liu for the OPSDIR review and to the authors for engaging
> and
> the PR.
>
> This is a well-written and easy-to-read document, although there are some
> repetitions here and there. Please find below some comments (ordered
> following
> the doc flow). I will send you a PR for some nits I tagged when reading.
>
> # Target
>
> Abstract:
>    It serves as a security guide to system
>    designers, architects, product managers, security specialists, fraud
>    analysts and engineers implementing cross-device flows.
>
> I understand this is not an exhaustive list, but given that the guidance
> also
> recommendations for service providers and users, I thought that these are
> better listed here as well.
>
> # Beyond OAUTH WG
>
> CURRENT:
>    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.
>
> Once approved, this will reflect the IETF consensus, not only this
> specific WG
>
> I suggest to reword accordingly.
>
>
Opened an issue for this (
https://github.com/oauth-wg/oauth-cross-device-security/issues/238)


> # Implementers
>
> What is meant by “implementers” in Section 2? Is this the “service
> providers”
> mentioned in the discussion sections? Else?
>
> Implementers refer to anyone implementing these protocols. I will add text
to provide a bit more clarity (eee issue:
https://github.com/oauth-wg/oauth-cross-device-security/issues/239)


> # Implement with risk
>
> CURRENT:
>    2.  Implementers SHOULD avoid cross-device flows if risks cannot be
>        sufficiently mitigated.
>
> Should there by a companion recommendation to encourage
> flagging/disclosing the
> unmitigated risk for user awareness?
>
> Section 6.1.14 provides specific guidance on the user experience and what
information is most likely to help users make better decisions. Knowledge
of the protocol and the nuances of the protocol's risks are not helpful to
users who have "expertise elsewhere" (that is experts at something other
than the underlying system protocols), have limited time and are focused on
task completion.


> # Same-device scenarios
>
> CURRENT:
>    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 [OpenID.Core] and OAuth
>    2.0 Authorization Code Grant as defined in [RFC6749] are more
>    appropriate.
>
> The background sections didn’t mention the same-device case. The
> introduction
> and use of “Cross” hint that target devices are distinct. You may elaborate
> this part early in the document.
>
> This is an anti-pattern. We have seen instances of its use and wanted to
give this guidance. I think it makes sense to add additional information on
why using the other protocols is better (reduced risk surface and avoidance
of any consent phishing flows). See issue:
https://github.com/oauth-wg/oauth-cross-device-security/issues/240


> # Same-device/Channel
>
> CURRENT:
>    the mitigations recommended in this document SHOULD be
>    implemented to reduce the risks that the unauthenticated channel is
>    exploited.
>
> I’m not sure to understand this case. Which channel are we referring to
> here if
> these are the same device?
>
> We added this to warn against an anti-pattern (it is always surprising to
see how protocols get. used in the real world). When you use a cross-device
flow in a same-device scenario, you inject the user back into the middle of
the flow, for example, to transfer a user code. The moment this happens, an
attacker can change the context and inject themselves into the flow. So, if
you're using cross device flows on same-device deployments, you should
treat the two different parts of the flow (e.g. display of the user code)
and the authorization (entry of user code and authentication/authorization)
as if they are two different devices. You cannot assume any of the benefits
you would get from not putting the user in the middle of the flow. So the
intent of this text is to (1) warn against this pattern and (2) if
implementers insist on using it (because they may have already done so),
the mitigations defined in this document should still be deployed.


> # Privacy considerations
>
> CURRENT:
>    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.
>
> Some of the mitigations have implications on privacy (tracking locations,
> user
> fingerprinting, etc.). The trade-off between privacy vs intended benefit
> should
> be called out.
>

We can add language to remind implementors of this trade-off - see issue (
https://github.com/oauth-wg/oauth-cross-device-security/issues/240)


>
> # Efficiency
>
> CURRENT:
>    The authorization server can validate information it
>    receives, but it cannot independently measure or enforce proximity on
>    its own.
>
> An attacker can also present (fake) location information that can be
> misleading
> for authorization server. Unless there is a mean to attest the
> authenticity of
> presented data, trusting this data for driving the authorization server
> behavior may lead to suboptimal behavior.
>
> BTW, almost all the listed alternatives for proximity matters do not
> guarantee
> the outcome, while others depend on the user setup (e.g., NFC/BLE
> activation).
>
> Yes, none of these are perfect - they are better than doing nothing, but
should not be trusted in the absolute sense. They make the attacks harder,
but not impossible. These limitations are called out already at the end of
section 6.1.1


> # Risk profile
>
> CURRENT:
>    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.
>
> ## What is “risk profile”? Who is supposed to do that risk assessment?
>
> This is organization- and deployment-specific and varies across industry
segments and applications. All systems carry risk, and developing them
typically involves conducting a risk assessment. Defining that aspect of
deployments is out of scope of this specification.


> ## How is this reco different from this one provided earlier?
>
>   It is RECOMMENDED that one or more of the mitigations be applied when
>   implementing a cross-device flow.
>
> The same recommendation is given in the sumamry and then repeated in
specific protocol sections. This anticipates that an engineer may choose to
skip to the sections that pertain to the protocol they are interested in,
and may not read the entire document. We really want the recommendation to
come through.


> # What risk?
>
> CURRENT:
>    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.
>
> How is this a risk?
>

> Proximity checks can even be a hindrance to the service in such a case.
>
> The intent here was to flag that when you have primary/secondary card
holder, proximity is still a risk signal (e.g. if primary and secondary
users are usually in the same location, and they suddenly are not, or the
inverse, it may be appropriate to apply additional controls. I opened an
issue to re-word this (see
https://github.com/oauth-wg/oauth-cross-device-security/issues/241)


> # Why isn’t this a reco?
>
> CURRENT:
>    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 [RFC7662]).
>
> The document uses MAY as a reco for similar discussions in other sections.
> Why
> is this not a reco (i.e., use MAY as in other sections)?
>

I believe it SHOULD be a reco :) Thanks for catching this (spec blindness
kicked in). Issue here:
https://github.com/oauth-wg/oauth-cross-device-security/issues/242


> # Trusted Networks
>
> Note sure if this is useful to be mentioned in that section, but there are
> cases where SIM-based checks are used as trusted network. Cellular
> operators
> may provide APIs for such checks.
>

I think it is fine to add a sentence referring to this as an example - see
issue (https://github.com/oauth-wg/oauth-cross-device-security/issues/243)


> # Prevent
>
> CURRENT:
>    The practical mitigations described in this section can prevent the
>    attacks from being initiated, …
>
> It seems to me that none of the mitigations completely nullify the risks.
> At
> best, they can contribute to soften them.
>
> Maybe “prevent” is not accurate here, or at least, I would explain what is
> meant.
>
>
We can add some clarification that the mitigations provide prevention,
disruption or recovery from attacks, within the limits described for those
mitigations. Issue here:
https://github.com/oauth-wg/oauth-cross-device-security/issues/244


> # Security Considerations
>
> CURRENT:
>    Security considerations are described in Section 2 and Section 6.
>
> I’m afraid this needs some elaboration to reflect implications of some
> proposed
> mitigations. For example,
>
>    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").
>
> opens the door for a variety of attacks. There are security issues with
> clickable links per se that are worth to be highlighted.
>
>
The approach taken for security considerations is consistent with that of
RFC9700 Best Current Practice for OAuth 2.0 Security (see
https://www.rfc-editor.org/rfc/rfc9700.html#name-security-considerations)
Section
6.1.3 mentions that research shows user education effectively reduces the
risk of phishing attacks (which typically include advising against clicking
on links). This document does not address general phishing or
anti-phishing, but we can reference some of the NIST guidelines as examples
of topics covered in anti-phshing programs ( which includes educating users
about not to click on links). Issue here:
https://github.com/oauth-wg/oauth-cross-device-security/issues/245

>
> Cheers,
> Med
>
>
>
> _______________________________________________
> OAuth mailing list -- oauth@ietf.org
> To unsubscribe send an email to oauth-leave@ietf.org
>