Re: [OAUTH-WG] Adding use case to draft-ietf-oauth-pop-architecture-05

Justin Richer <jricher@mit.edu> Mon, 23 November 2015 20:11 UTC

Return-Path: <jricher@mit.edu>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 41D061B336E for <oauth@ietfa.amsl.com>; Mon, 23 Nov 2015 12:11:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.786
X-Spam-Level:
X-Spam-Status: No, score=-4.786 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001] autolearn=ham
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 ntKiCF0v7o8V for <oauth@ietfa.amsl.com>; Mon, 23 Nov 2015 12:11:47 -0800 (PST)
Received: from dmz-mailsec-scanner-2.mit.edu (dmz-mailsec-scanner-2.mit.edu [18.9.25.13]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 916B41B3368 for <oauth@ietf.org>; Mon, 23 Nov 2015 12:11:47 -0800 (PST)
X-AuditID: 1209190d-f79306d000006b70-cc-56537301b646
Received: from mailhub-auth-2.mit.edu ( [18.7.62.36]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by dmz-mailsec-scanner-2.mit.edu (Symantec Messaging Gateway) with SMTP id DC.96.27504.20373565; Mon, 23 Nov 2015 15:11:46 -0500 (EST)
Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by mailhub-auth-2.mit.edu (8.13.8/8.9.2) with ESMTP id tANKBjMS023561; Mon, 23 Nov 2015 15:11:45 -0500
Received: from artemisia.richer.local (static-96-237-195-53.bstnma.fios.verizon.net [96.237.195.53]) (authenticated bits=0) (User authenticated as jricher@ATHENA.MIT.EDU) by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id tANKBh6E006400 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 23 Nov 2015 15:11:44 -0500
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Justin Richer <jricher@mit.edu>
In-Reply-To: <BA46B718-85FD-4EB1-8406-95CEFC435569@oracle.com>
Date: Mon, 23 Nov 2015 15:11:43 -0500
Content-Transfer-Encoding: quoted-printable
Message-Id: <E3E3DB02-F318-4A00-BF9B-3BE0A93749F3@mit.edu>
References: <56536DB2.2020609@gmx.net> <BA46B718-85FD-4EB1-8406-95CEFC435569@oracle.com>
To: Phil Hunt <phil.hunt@oracle.com>
X-Mailer: Apple Mail (2.2104)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42IRYrdT0WUqDg4zuLqBzWLpznusFiffvmKz WDC/kd2B2WPxpv1sHkuW/GTy+Pj0FksAcxSXTUpqTmZZapG+XQJXxvUbvgX7ZSr6z21kaWA8 I97FyMkhIWAiMWfuR3YIW0ziwr31bF2MXBxCAouZJNr/rWaFcDYyShxsOQflPGSS2Hz+AzNI C7OAusSfeZfAbF4BPYlXty6zgtjCAv4SD/a1s4HYbAKqEtPXtDCB2JwCdhK3ll4Ai7MAxTdt fg8U5wCaEy+xemM8xEhtiWULX0ONtJLovD4T7DohgQiJFTMbwFpFBFQkvl29zghxtazE7t+P mCYwCs5CctEsJBfNQjJ2ASPzKkbZlNwq3dzEzJzi1GTd4uTEvLzUIl0jvdzMEr3UlNJNjKCQ 5pTk3cH47qDSIUYBDkYlHt4ZRcFhQqyJZcWVuYcYJTmYlER5d+UChfiS8lMqMxKLM+KLSnNS iw8xSnAwK4nwTkkHyvGmJFZWpRblw6SkOViUxHnnfvENExJITyxJzU5NLUgtgsnKcHAoSfAy gOwRLEpNT61Iy8wpQUgzcXCCDOcBGj6xEGR4cUFibnFmOkT+FKMux6Ep99cyCbHk5eelSonz TgEpEgApyijNg5sDSkUJbw+bvmIUB3pLmJcTZB0PMI3BTXoFtIQJaMmRkkCQJSWJCCmpBsZ1 P3x178VlfNcv2Xr3ek/kn+/3hedP3P7no/nm0svODTs+cD5+2P0/WePdtW0THmt1x8xdH9v1 S/HPmpWJyW8jE1ZcqY/2by1KXM/2O1NdVub5AZ1YBimzgOov+fPdJxVOTDaa42V0ddvnu7Ul 55yC+afYx3Nuiqx5NTv3SPbCnGnhL0+kqwcpsRRnJBpqMRcVJwIAoSm07yADAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/A3AfJb5Sl51jTOyYhMoaRFipzSE>
Cc: "<oauth@ietf.org>" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] Adding use case to draft-ietf-oauth-pop-architecture-05
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.15
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, 23 Nov 2015 20:11:51 -0000

Access tokens and refresh tokens provide different attack surfaces. 

The refresh token is *potentially* a one-time-use token, but not necessarily so. Confidential clients are still subject to having their credentials stolen across HTTP Basic, but that’s where things like OIDC’s “private_key_jwt” authentication method come into play. Making the refresh token itself PoP doesn’t solve that issue alone.

You can’t use things like that at the resource server because the client, by design, doesn’t authenticate there.

 — Justin

> On Nov 23, 2015, at 2:59 PM, Phil Hunt <phil.hunt@oracle.com> wrote:
> 
> We discussed that confidential clients are not subject to any risks since by definition they already have a unique proof-of-possesion necessary to redeem the refresh token which is already a one-time token.
> 
> Phil
> 
> @independentid
> www.independentid.com
> phil.hunt@oracle.com
> 
>> On Nov 23, 2015, at 11:49 AM, Hannes Tschofenig <hannes.tschofenig@gmx.net> wrote:
>> 
>> Hi all,
>> 
>> at the Yokohama IETF meeting John gave a presentation about the need to
>> also secure access and refresh tokens against unauthorized access and
>> loss, see
>> https://www.ietf.org/proceedings/94/minutes/minutes-94-oauth
>> 
>> Unfortunately, this threat has not been documented in the current PoP
>> architecture draft while other threats have been captured appropriately
>> (see Section 3 of
>> https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-05).
>> 
>> Since we are currently finalizing the work on the PoP architecture
>> document I wanted to contribute text about this use case:
>> 
>> ------------------------
>> 
>> 3.5.  Preventing Loss of Access and Refresh Tokens
>> 
>> RFC 6749 distinguished two types of clients, namely public and
>> confidential clients, based on their ability to authenticate securely
>> with the authorization server. Even with confidential clients there is
>> the risk, combined with certain deployment choices, that an attacker
>> gains unauthorized access to access and refresh tokens. If those tokens
>> are bearer tokens then the adversary can re-use them to gain access to
>> the protected resource, for example to post messages to a social
>> networking site to distribute spam.
>> 
>> With proof-of-possession tokens an adversary not only needs to gain
>> access to a database where those tokens are stored but it also needs to
>> retrieve the associated keying material. Assuming that these keys are
>> stored more securely, for example, in a hardware security module or
>> trusted execution environment this specification offers an additional
>> layer of defence.
>> 
>> Since refresh tokens offer a client the ability to request access tokens
>> the need arises to also define proof-of-possession functionality for
>> refresh tokens (unless keys bound to the access token cannot be changed
>> during the lifetime of the refresh token).
>> 
>> ------------------------
>> 
>> Please let us know what you think about including this text into the
>> next revision of the PoP architecture document and if you have some
>> suggestions for improved wording.
>> 
>> Ciao
>> Hannes
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth