Re: [OAUTH-WG] DPoP: Threat Model

Daniel Fett <fett@danielfett.de> Mon, 04 May 2020 19:16 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 E6CDF3A0E9D for <oauth@ietfa.amsl.com>; Mon, 4 May 2020 12:16:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, 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 BmsZ9Ea9gaAJ for <oauth@ietfa.amsl.com>; Mon, 4 May 2020 12:16:32 -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 7D6BF3A0DDA for <oauth@ietf.org>; Mon, 4 May 2020 12:16:26 -0700 (PDT)
Received: from authenticated-user (PRIMARY_HOSTNAME [PUBLIC_IP]) by d3f.me (Postfix) with ESMTPA id EBC7A1912; Mon, 4 May 2020 19:16:23 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1588619784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=czc230T5Eb8Py5RpWmeT3pVXQwkbcBdpPic6Vlgpwjw=; b=q0FSsnnMjcqrwk9cqWOB2w7ZdKkGfnv/hv2Z1N0JDwvRvFBLixS1gCS019Ed+EamKBMcY9 F3VwJBY945fIpXsgwJsRnEDPDl5HaJcZxhZ3ey5NdYlYpKQRUOx9ncokMqOjDdW71SjSCH qA50ompcVgIdzeZxWL26m7lhnV0npco=
To: Neil Madden <neil.madden@forgerock.com>
Cc: oauth@ietf.org
References: <9ee75fc4-c134-1a36-1fa3-4c42887dc438@danielfett.de> <1427A993-02B5-4444-9FD5-0E62A32D2AF4@forgerock.com>
From: Daniel Fett <fett@danielfett.de>
Message-ID: <b5645470-67db-c18d-28b8-2cf4df06a03d@danielfett.de>
Date: Mon, 04 May 2020 21:16:23 +0200
MIME-Version: 1.0
In-Reply-To: <1427A993-02B5-4444-9FD5-0E62A32D2AF4@forgerock.com>
Content-Type: multipart/alternative; boundary="------------0AED41F837B4E69DE8ADBC7D"
Content-Language: de-DE
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=danielfett.de; s=dkim; t=1588619784; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=czc230T5Eb8Py5RpWmeT3pVXQwkbcBdpPic6Vlgpwjw=; b=bhz31hvDlqjegFcdJN27AKkKDwnIK5gDUbi+mtebPoy/Be9Ea8xnkWq9Mx0T/B4w4tSw// BHWrAkA7fiuXzdQSQnIK4EBvjWvQCAGxW5ql8PFC+YCMGA2A6gKDhRP/K1vw4+EWysBRxx 42il7LJu8S/m1IMZThUHeXRuWxtLv/w=
ARC-Seal: i=1; s=dkim; d=danielfett.de; t=1588619784; a=rsa-sha256; cv=none; b=B5FU9tvabeNO2aIjVB/VCSwnMinBfbkR84vZgIqCxbD1Ngz3SuwQ9IGqz9jvLpBFEn1XT/ n21yTbAr/AzzFMRCrjdc71HF0Oj+iGh/uf3E3n+WHrC1mAc8BKFz4UFek+pf/ruM8YqjDd PhmEaGLOqXcSSd/YRT/103QOrfd1dwo=
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/1zPR6pEcP1hcFTWN6bH61e0nw84>
Subject: Re: [OAUTH-WG] DPoP: Threat Model
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, 04 May 2020 19:16:34 -0000

Am 04.05.20 um 19:54 schrieb Neil Madden:
> I mentioned another one in my recent email - BREACH attacks against
> HTTP compression being used to steal access tokens in transit.
Excellent point, I added that one.
>
> There’s a variant of the online XSS attacks in which the attacker just
> proxies requests through the victim’s browser

That was the attack that should have been described under "Online XSS"
in the first place. I somehow got confused along the way. Exfiltration
of precomputed values is definitely /not/ "Online XSS".

> (https://beefproject.com) rather than exfiltrating tokens/proofs.

As a sidenote: BeEF is not really XSS but requires a full browser
compromise.

Thanks for the feedback!

-Daniel


> You can protect against exfiltration attacks by e.g. token binding the
> DPoP proofs and/or access token, or storing the access token in a
> HttpOnly cookie (gasp!). You can protect against exfiltrating
> post-dated DPoP proofs by storing the private key in a separate origin
> loaded in an iframe that you use postMessage to ask for proof tokens
> so the attacker is not in control of those claims. Nothing really
> protects against an attacker proxying requests through your browser,
> so this is purely post-compromise recovery rather than an actual
> defence against XSS.
>
> — Neil
>
>> On 4 May 2020, at 18:24, Daniel Fett <fett@danielfett.de
>> <mailto:fett@danielfett.de>> wrote:
>>
>> Hi all,
>>
>> as mentioned in the WG interim meeting, there are several ideas
>> floating around of what DPoP actually does.
>>
>> In an attempt to clarify this, if have unfolded the use cases that I
>> see and written them down in the form of attacks that DPoP defends
>> against:
>> https://danielfett.github.io/notes/oauth/DPoP%20Attacker%20Model.html
>>
>> Can you come up with other attacks? Are the attacks shown relevant?
>>
>> Cheers,
>> Daniel
>>
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth
>