Re: [OAUTH-WG] OAuth Interim Meeting - April 12 - Security BCP

Daniel Fett <fett@danielfett.de> Mon, 12 April 2021 15: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 2B5763A2200 for <oauth@ietfa.amsl.com>; Mon, 12 Apr 2021 08:19:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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_BLOCKED=0.001, SPF_NONE=0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=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 ov5chf4t-u-p for <oauth@ietfa.amsl.com>; Mon, 12 Apr 2021 08:19:16 -0700 (PDT)
Received: from d3f.me (redstone.d3f.me [5.9.29.41]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6EC8B3A21FC for <oauth@ietf.org>; Mon, 12 Apr 2021 08:19:16 -0700 (PDT)
Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by d3f.me (Postfix) with ESMTPA id 88BD42481B; Mon, 12 Apr 2021 15:19:13 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1618240753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=h8IqALkpVt3Y2pOJoi868+CTQpRD52DxRn/toPhJHzU=; b=Anceoa8A1CCQeqtVzdgK+yIYFIMp4ieCiCApGs6vAKxq7foboH+n1b62USEvcHIr7+gyFJ ClTixY+CoxBx5aRgbNPLoeiLRw9MeYW0sQJwRYQE4Lh4GlZHyaKtaSW+/RRjp8UBM8Jdc9 6V3XalOR5s7FipIwnyisHL0xdKW70EY=
To: Denis <denis.ietf@free.fr>, oauth@ietf.org
References: <CADNypP80KicBYDjOHkZQMrowM1WgrtpCr1Ywt88RrTRbZ_Ctrw@mail.gmail.com> <1990805d-e9c5-969a-9c62-a3ddd21e2180@free.fr> <2e1af244-91cd-1d08-8bf6-97cc82e3f862@danielfett.de> <065f2559-d14b-5ddc-ba33-8ce14fa2d622@free.fr> <9913e316-ab20-b9fa-bb59-15241d943622@danielfett.de> <3362fd52-fcd2-7f80-f7e4-5dcc1cceff73@free.fr>
From: Daniel Fett <fett@danielfett.de>
Message-ID: <d956d6bb-caaf-ca10-86d3-b0b2c51f3255@danielfett.de>
Date: Mon, 12 Apr 2021 17:19:12 +0200
MIME-Version: 1.0
In-Reply-To: <3362fd52-fcd2-7f80-f7e4-5dcc1cceff73@free.fr>
Content-Type: multipart/alternative; boundary="------------D03C1BFCA894D1DD7E40C8C8"
Content-Language: de-DE
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1618240753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=h8IqALkpVt3Y2pOJoi868+CTQpRD52DxRn/toPhJHzU=; b=XfWg3/SLXmttCYDjt/cz8kAGH5GpyljKXUguj5jgYQFvykajUcwsgoIPSgPRW+Lu2CG3C7 GVtuFqXarFVugn9jCtV/xjcQz6EFxOz42rAMO+68R0XzkzZxLqJr6c5y1ZGuIlguxPVSDD UO3VZi7YwiLBP0E4Hi/H30vk9bcZyUk=
ARC-Seal: i=1; s=dkim; d=danielfett.de; t=1618240753; a=rsa-sha256; cv=none; b=rV/AM68WKyipMdt1SlAk3s2llJJElUDOSeZU7xYPp39GJn4jlD0sU8LjaGHNA4wY+iejq1 ndlbXdRn210s5R+6J4goymuj2/O6EEKFGcAgtjGN1Jgto64nnMTBhF7XtUzJBStyEjN5o0 NjeexKI881iKexNUQ8D31zfdf60PpeI=
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/gcIV4wRt2TFn-ud5DGWiewnNgbU>
Subject: Re: [OAUTH-WG] OAuth Interim Meeting - April 12 - Security BCP
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, 12 Apr 2021 15:19:21 -0000

Am 12.04.21 um 16:56 schrieb Denis:
> Hi  Daniel,
>
>> (...)
>>>>
>>>> As I'm sure you have noticed, we have updated Section 3 following
>>>> your last input. It now explicitly says:
>>>>
>>>>     Attackers can collaborate to reach a common goal.
>>>>
>>>> It also says
>>>>
>>>>    Note that in this attacker model, an attacker (see A1) can be a
>>>> RO or
>>>>    act as one.  For example, an attacker can use his own browser to
>>>>    replay tokens or authorization codes obtained by any of the attacks
>>>>    described above at the client or RS.
>>>>
>>>> Your scenario is therefore covered. It was already before, but that
>>>> was obviously too implicit, so we made it more clear with the
>>>> recent update.
>>>>
>>> [Denis] I don't believe that the scenario is covered with the above
>>> sentences.
>>>
>> I don't understand. This is not about believing, it is written very
>> clearly and conclusively in the text of the current draft.
>>
>> We've had this discussion before, and, although irrelevant for the
>> meaning of the BCP itself, I would like to refer you again to the
>> formal model in our research paper, which the BCP attacker model is
>> based on. It has a *very* precise definition of the attacker model
>> that does not leave room for interpretation. The natural-language
>> description in the BCP, as usual, is more fuzzy than the formal
>> definition, but both attacker models include clients cooperating.
>>
> [Denis]. Your very last sentence is finally using two magic words that
> are not present anywhere in the BCP: "*clients cooperating*".
> However, *clients collusion* or *clients collaboration* would be more
> accurate.
>


   *  (A1) Web Attackers that can set up and operate an arbitrary number
      of network endpoints including browsers and servers (except for
      the concrete RO, AS, and RS).  Web attackers may set up web sites
      that are visited by the RO, operate their own user agents, and
      participate in the protocol.

      Web attackers may, in particular, operate OAuth clients that are
      registered at AS, and operate their own authorization and resource
      servers that can be used (in parallel) by the RO and other
      resource owners.

(...)

      Attackers can collaborate to reach a common goal.




>>
>>>>> Finally, section 4 (Attacks and Mitigations) should include an
>>>>> additional subsection, e.g. section 4.16, addressing the case of a
>>>>> collaboration attack
>>>>> between clients against a RS.
>>>>>
>>>> If I remember correctly, you first presented this attack at the
>>>> OAuth Security Workshop in 2017.
>>>> Since then, it has been brought up countless times on this mailing
>>>> list, both with regards to the Security BCP as well as for the JWT
>>>> Token draft.
>>>>
>>>> There has been practically no positive resonance at the meeting
>>>> 2017 or here on the mailing list as to including this in either of
>>>> the drafts.
>>>>
>>>> A number of reasons come to mind, but first and foremost, I think
>>>> that what you describe is not perceived as an attack, or, worded
>>>> differently,
>>>> it is obvious that what you describe in the "attack" is possible.
>>>>
>>> [Denis] Here after comes the important sentence which is wrong:
>>>
>>>
>>>> *There is no expectation that OAuth would defend against this kind
>>>> of thin**g*,
>>>> just as there is no mitigation against password sharing in
>>>> password-based authentication.
>>>>
>>> [Denis] In the section 4.16.2 there is a clear proposal that
>>> explains how *"OAuth can successfully defend against this kind of
>>> thin**g"*. *So* *there **IS **a solution*.
>>>
>> I did not say that there is no solution.
>
> [Denis] Well, ... ask anybody else how he would interpret your statement.
>
Feel free.
>
>>> Currently, when reading the text, an implementer might consider to
>>> deliver an access token that contains a claim such as "older the 18"
>>> without any "sub" or equivalent claim.
>>> Such an access token would be transferable to anyone and the RS
>>> would not be able to identify the attack.
>>>
>> Your proposed solution does not enable an RS to identify the attack
>> unless used together with some form of authentication way outside the
>> scope of OAuth.
>>
> [Denis] I never said that there is "some form of authentication". The
> word "authentication" is not present in my text proposal.
>
> At the moment (/and this is a topic of its own that could be discussed
> later on/), a "sub" claim present in an access token is unrelated to
> any identifier
> used during an authentication exchange between an end-user and a RS.
>
It is very much possible that I did not understand your proposed
solution correctly. Part of the problem is that a concise and concret
attack description is missing (where end-user and clients are not
conflated). If you could provide such a description, in the style of the
mix-up attack description (i.e., using concrete protocol participants
and protocol messages), that would greatly benefit the discussion.


> PS. I re-read RFC1855, Section 3.1.1, but there is nothing in the
> Netiquette to delete or maintain some parts of a received message.
>
    - If you are sending a reply to a message or a posting be sure you
      summarize the original at the top of the message, or include just
      enough text of the original to give a context.  This will make
      sure readers understand when they start to read your response.


-- 
https://danielfett.de