Re: [OAUTH-WG] WGLC review of draft-ietf-oauth-security-topics-13
Daniel Fett <fett@danielfett.de> Mon, 25 November 2019 16:19 UTC
Return-Path: <fett@danielfett.de>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3193B120997 for <oauth@ietfa.amsl.com>; Mon, 25 Nov 2019 08:19:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=danielfett.de
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1l1mDYCFHrJF for <oauth@ietfa.amsl.com>; Mon, 25 Nov 2019 08:18:59 -0800 (PST)
Received: from d3f.me (redstone.d3f.me [5.9.29.41]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B75D3120991 for <oauth@ietf.org>; Mon, 25 Nov 2019 08:18:58 -0800 (PST)
Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by d3f.me (Postfix) with ESMTPA id 6DBC41B29 for <oauth@ietf.org>; Mon, 25 Nov 2019 16:18:57 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1574698737; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2DZGbYThenzhjTisZzbqmQuzjqDQGm1lknkNYF3BoRo=; b=qR0AsNlPu6myoTIYzPWwmcB6CahG9wO49xq4GQELa+ZOK+1Me+jb7qqR01NtwibfkVn2cy Ro4MVRa/l8uixnP7qdvlQMWGeXFVYachwrvXdXFuFjsgD+8PjybMVsq8eAikejNzgWn1KT 4O0FCUCpKTW6ZQD335RUW2B6ZabiwbU=
To: oauth@ietf.org
References: <a017889e-f50a-3e34-f8e5-477a56518051@gtrs.de>
From: Daniel Fett <fett@danielfett.de>
Message-ID: <9da85307-c21b-01d6-bfd7-db2638a545b3@danielfett.de>
Date: Mon, 25 Nov 2019 17:18:25 +0100
MIME-Version: 1.0
In-Reply-To: <a017889e-f50a-3e34-f8e5-477a56518051@gtrs.de>
Content-Type: multipart/alternative; boundary="------------B2A1001EF432A137DECC4A2A"
Content-Language: de-AT-frami
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1574698737; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2DZGbYThenzhjTisZzbqmQuzjqDQGm1lknkNYF3BoRo=; b=TY6gt/hBphH+ter8x6m1qmjxhojUfb0CFlihxulug4akdRfN2nqh+bgjxgM/wzbiu7txrF WzSXUvJ274KgW9HteHGfdsx4UpqQXzyRTuDD7TOfR4s4I4h+tlERp8tR3GoQzkg+8VdyKo dYvskmZ74dZN6uCtTcQw2MG8eQp2T14=
ARC-Seal: i=1; s=dkim; d=danielfett.de; t=1574698737; a=rsa-sha256; cv=none; b=bQa9XOUGP5Z7kWI8TVJ2Ooem8dejfKzZZ6p8t/impzCxiPAGZDJvwL4UnwW8aPUbfr0uSg85Cm0+Z2ga3EXb0mY+/ukI+oomDv529zYQbm8u6uFstBANw0/kXcRKhUP0RMpCDbUFTxiit9hPuy1LXVolnda5QUIuX2reA5HD7fU=
ARC-Authentication-Results: i=1; d3f.me; auth=pass smtp.auth=fett@danielfett.de smtp.mailfrom=fett@danielfett.de
Authentication-Results: d3f.me; auth=pass smtp.auth=fett@danielfett.de smtp.mailfrom=fett@danielfett.de
X-Spamd-Bar: /
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/80zNKDASvi4Or-8I-vvcjtZ5tbE>
Subject: Re: [OAUTH-WG] WGLC review of draft-ietf-oauth-security-topics-13
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 25 Nov 2019 16:19:01 -0000
Hi Guido, thanks for the feedback! I incorporated most of it into the next version. Some comments: Am 22.11.19 um 18:00 schrieb Guido Schmitz: > * Section 3.1, Third Paragraph, Section 4.7, and other places throughout > the document: (Please excuse that the following might be a bit > nitpicking.) The term CSRF might be misleading as we are not talking > about "classical" CSRF, where a party is tricked into (implicitly) > believing that a request was caused by its own origin (from a web > browser), but was actually sent cross-origin. Here, we are talking about > requests which (by protocol) are typically intended to be cross-origin. > The point here is not that the request is cross-origin, but that it > originates from an unintended (cross-)origin. Maybe you could mention > that we are talking about an advanced kind of CSRF in the > double-redirection context. Good catch, I added a reference to RFC6819, where this kind of CSRF is explained in more detail. > > * Section 3.1.2: What about SPAs? Either they use authorization code > grant with the help of some server or use CORS to access the token > endpoint. The token endpoint, however, then needs to support CORS. The > obvious question is then, what is the CORS policy of the token endpoint? > It is probably fine to allow all origins (if this policy only applies to > the token ep itself and not other eps at the same origin) or do I miss > something? This policy should be fine. But this is a topic for the SPA BCP. > * Section 4.1.3, "fix fragments": The source [fb_fragments] only says > that Facebook adds the fragment #_=_ to some URLs. There is no > explanation or reasoning in the source (as well as in this document) at > all that this technique strips the fragment from redirects. (Mike Jones > also commented on this.) Thanks, I removed the reference completely and added some explanation instead. > * Section 4.2.4, Bullet Point "referrer header": Adding the > rel="noreferrer" attribute to links does not protect against leakage via > third-party content. Referrer Policy is the only effective > countermeasure of the mentioned two as it can be used to completely > suppress the Referer header or at least strip it to the origin. Should > we give a concrete example for Referrer Policies? For example, the > header "Referrer-Policy: no-referrer" in the response completely > suppresses the Referer header in all requests originating from the > resulting document. Also, this measure is easier to implement than > adding rel="noreferrer" to each link. (BTW, there is also an excess > quotation mark in this paragraph.) You're right, Referrer Policies are the way to go. I added your example. > * Section 4.5.3, "Code-bound State": This requires that state is fresh > for each flow. You should mention or even emphasize this. > > * Section 4.5.3, "Per-instance client id/secret": This essentially says > that native apps or anything that might be able to obtain and store > client id/secret (e.g., using dynamic registration) could do this. Web > SPAs could do this as well (e.g., using Web Storage). The last sentence > of this paragraph is somehow confusing. I propose to remove these two points from the bullet point list completely. They are more of an academic discussion for a problem that is already solved by PKCE at this point. Any objections? > * Section 4.5.3, Second Paragraph after bullet points, "Note on > pre-warmed secrets": What is the context of this note? Does the attacker > start a flow on some device, extract secrets, and then pass this device > to the victim who then completes the OAuth flow? (Mike Jones also > remarked that "pre-warmed secrets" is not explained) That is essentially a pointer in the general direction of the PKCE Chosen Challenge attack. I agree that it needs a better wording. -Daniel
- [OAUTH-WG] WGLC review of draft-ietf-oauth-securi… Guido Schmitz
- Re: [OAUTH-WG] WGLC review of draft-ietf-oauth-se… Daniel Fett