Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-pop-architecture-06.txt

Phil Hunt <phil.hunt@oracle.com> Wed, 25 November 2015 19:03 UTC

Return-Path: <phil.hunt@oracle.com>
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 2258B1ACE6E for <oauth@ietfa.amsl.com>; Wed, 25 Nov 2015 11:03:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.775
X-Spam-Level:
X-Spam-Status: No, score=-4.775 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.585, SPF_PASS=-0.001, T_REMOTE_IMAGE=0.01] 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 2xrTe6u2rv-0 for <oauth@ietfa.amsl.com>; Wed, 25 Nov 2015 11:03:15 -0800 (PST)
Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DEFC11ACDCD for <oauth@ietf.org>; Wed, 25 Nov 2015 11:03:14 -0800 (PST)
Received: from aserv0021.oracle.com (aserv0021.oracle.com [141.146.126.233]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id tAPJ3DOL019460 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 25 Nov 2015 19:03:13 GMT
Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0021.oracle.com (8.13.8/8.13.8) with ESMTP id tAPJ3DnE023393 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Wed, 25 Nov 2015 19:03:13 GMT
Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by userv0121.oracle.com (8.13.8/8.13.8) with ESMTP id tAPJ3C7V024218; Wed, 25 Nov 2015 19:03:12 GMT
Received: from [10.0.1.22] (/24.86.216.17) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 25 Nov 2015 11:03:11 -0800
Content-Type: multipart/alternative; boundary="Apple-Mail=_CDDBAEC6-94BB-4501-B619-0E43221FF921"
Mime-Version: 1.0 (Mac OS X Mail 9.1 \(3096.5\))
From: Phil Hunt <phil.hunt@oracle.com>
In-Reply-To: <CA+k3eCSJPCnawTjbByPcj+mmcK+vvQ_0Cxzs=24kT-irGETi7w@mail.gmail.com>
Date: Wed, 25 Nov 2015 11:03:09 -0800
Message-Id: <1AD1F44B-9837-4288-9997-5292F1DBE30E@oracle.com>
References: <20151124200512.20833.28463.idtracker@ietfa.amsl.com> <F787FB76-5C8D-45F5-8A81-E430E75A0455@oracle.com> <CA+k3eCSeOyc2HMY+sK9rSjxkSAvNPWqwKyJNjDZAaCu2Stqk=w@mail.gmail.com> <16FAD3AC-CFB8-46D5-A12E-436E902EA439@oracle.com> <CA+k3eCT1+=2zysgbaKEmWCkQmsKyjr9KbghgmOVYUSC1qLfjbg@mail.gmail.com> <D8D36156-8BA6-43C5-8016-94A4CAE5FB45@mit.edu> <6015EE15-1FEE-43DC-930C-68ACAEDC083E@oracle.com> <38555799-721C-4A2F-AAAA-24D9B69EB72E@mit.edu> <CA+k3eCSJPCnawTjbByPcj+mmcK+vvQ_0Cxzs=24kT-irGETi7w@mail.gmail.com>
To: Brian Campbell <bcampbell@pingidentity.com>
X-Mailer: Apple Mail (2.3096.5)
X-Source-IP: aserv0021.oracle.com [141.146.126.233]
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/sdqoHya860zvDPhsMXP3SIcT7m4>
Cc: "<oauth@ietf.org>" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] I-D Action: draft-ietf-oauth-pop-architecture-06.txt
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: Wed, 25 Nov 2015 19:03:19 -0000

Folks, 

<editor hat>
I did not want to go here either. :-)

I don’t read sec 6 as examples.  I believe this may stem from the pop-architecture documents having a dual role as both “architecture” and “use-case”.  Maybe we should clarify the purpose of the document?

I believe section 6 is talking about threat mitigation assumptions based on the examples that need to be implemented.  I am assuming these are requirements that the other specifications SHOULD implement.

<personal hat>
I do not believe we have discussed Opaque PoP tokens and any inherent risks because the client is not or is unable to validate the authenticity of the token.  Does this introduce the possibility of a MITM attack where a client can be convinced to sign requests for an attacker?

If we want to include opaque PoP, I think we need to take a pause and consider / discuss any threats here.

I find the desire for opaque PoP tokens to be a bit contradictory. If we’re saying we don’t want to trust TLS alone (e.g. because of load-balancer termination), why would we then say, but we are perfectly willing to accept it worked for the OAuth AS exchanges?  Maybe I was very wrong here, but my assumption all along is that for PoP we’re talking about end-to-end authentication of all parties except in the case of 3.3 where we simply want to protect an access token over a non-TLS HTTP connection.


Phil

@independentid
www.independentid.com
phil.hunt@oracle.com

> On Nov 25, 2015, at 10:48 AM, Brian Campbell <bcampbell@pingidentity.com> wrote:
> 
> While I can't say I disagree with the deeper existential questions about the draft that Justin raises, I was trying not to go there and rather just point out concerns with the newly added text. 
> 
> The text Phil cites from Sec 6 doesn't say the client must be able to parse and verify the token. It's an assumption to simplify the examples that follow and still the token is opaque to the client. I reread the whole draft (reluctantly) and there's nothing that says the token has to be non-opaque to the client. And it does talk about reference style tokens and encrypted tokens, both of which rely on the opaqueness to the client. 
> 
> On Wed, Nov 25, 2015 at 11:27 AM, Justin Richer <jricher@mit.edu <mailto:jricher@mit.edu>> wrote:
> Right, I read that as text for describing the examples and not for describing requirements.
> 
> The token itself doesn’t have to be signed at all.
> 
>  — Justin
> 
>> On Nov 25, 2015, at 1:05 PM, Phil Hunt <phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>> wrote:
>> 
>> Ok. Well this was requested by Kathleen because of this paragraph in Sec 6.…
>> 
>>    To simplify the subsequent description we assume in the PoP architecture
>>    that the token itself is digitally signed by the authorization server
>>    and therefore cannot be modified.
>> 
>> Please 
>> Phil
>> 
>> @independentid
>> www.independentid.com <http://www.independentid.com/>phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>
>>> On Nov 25, 2015, at 9:33 AM, Justin Richer <jricher@mit.edu <mailto:jricher@mit.edu>> wrote:
>>> 
>>> The token doesn’t have to be signed and the client doesn’t have to verify the signature on the token. That’s not PoP. The request has to be signed in a way that includes the token. The token itself can still be opaque. The *key* material can’t be opaque to the client, but the *token* material still is.
>>> 
>>> I agree with Brian that this statement is misleading.
>>> 
>>> The examples use a signed token but that is absolutely not a requirement. Maybe the examples shouldn’t all use one style.
>>> 
>>> What’s most difficult about this particular spec is that it’s very hand-wavy, saying “this is kinda a thing that kinda works like this” without saying how to actually do it. I’m honestly not sure it’s worth publishing as an RFC in its own right but I’m not going to stand in its way.
>>> 
>>>  — Justin
>>> 
>>>> On Nov 25, 2015, at 12:14 PM, Brian Campbell <bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>> wrote:
>>>> 
>>>> Where does it say that? 
>>>> 
>>>> 
>>>> 
>>>> On Wed, Nov 25, 2015 at 8:44 AM, Phil Hunt <phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>> wrote:
>>>> Except that later on we require the token be signed and the client verify that signed token. IOW mutual pop. 
>>>> 
>>>> Phil
>>>> 
>>>> On Nov 25, 2015, at 07:30, Brian Campbell <bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>> wrote:
>>>> 
>>>>> Looking at the diff I noticed the following new text, which seems to conflate bearer/PoP and opaqueness to the client. A client demonstrating proof-of-possession of some key is orthogonal to the client being able to parse and understand the access token itself. 
>>>>>  
>>>>> "In contrast to bearer tokens [RFC6750] which call for tokens that are opaque to OAuth 2.0 clients, this specification defines the requirements for proof-of-possession ("PoP") tokens that may be parsed and verified by OAuth 2.0 clients and relying parties."
>>>>> 
>>>>> On Tue, Nov 24, 2015 at 1:07 PM, Phil Hunt <phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>> wrote:
>>>>> This draft addresses review comments from Kathleen and Erik raised since the last draft.
>>>>> 
>>>>> It may not include some of the discussion from yesterday/today.  I will add that as the group decides.
>>>>> 
>>>>> Cheers,
>>>>> 
>>>>> Phil
>>>>> 
>>>>> @independentid
>>>>> www.independentid.com <http://www.independentid.com/>
>>>>> phil.hunt@oracle.com <mailto:phil.hunt@oracle.com>
>>>>> 
>>>>> > On Nov 24, 2015, at 12:05 PM, internet-drafts@ietf.org <mailto:internet-drafts@ietf.org> wrote:
>>>>> >
>>>>> >
>>>>> > A New Internet-Draft is available from the on-line Internet-Drafts directories.
>>>>> > This draft is a work item of the Web Authorization Protocol Working Group of the IETF.
>>>>> >
>>>>> >        Title           : OAuth 2.0 Proof-of-Possession (PoP) Security Architecture
>>>>> >        Authors         : Phil Hunt
>>>>> >                          Justin Richer
>>>>> >                          William Mills
>>>>> >                          Prateek Mishra
>>>>> >                          Hannes Tschofenig
>>>>> >       Filename        : draft-ietf-oauth-pop-architecture-06.txt
>>>>> >       Pages           : 23
>>>>> >       Date            : 2015-11-24
>>>>> >
>>>>> > Abstract:
>>>>> >   The OAuth 2.0 bearer token specification, as defined in RFC 6750,
>>>>> >   allows any party in possession of a bearer token (a "bearer") to get
>>>>> >   access to the associated resources (without demonstrating possession
>>>>> >   of a cryptographic key).  To prevent misuse, bearer tokens must be
>>>>> >   protected from disclosure in transit and at rest.
>>>>> >
>>>>> >   Some scenarios demand additional security protection whereby a client
>>>>> >   needs to demonstrate possession of cryptographic keying material when
>>>>> >   accessing a protected resource.  This document motivates the
>>>>> >   development of the OAuth 2.0 proof-of-possession security mechanism.
>>>>> >
>>>>> >
>>>>> > The IETF datatracker status page for this draft is:
>>>>> > https://datatracker.ietf.org/doc/draft-ietf-oauth-pop-architecture/ <https://datatracker.ietf.org/doc/draft-ietf-oauth-pop-architecture/>
>>>>> >
>>>>> > There's also a htmlized version available at:
>>>>> > https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-06 <https://tools.ietf.org/html/draft-ietf-oauth-pop-architecture-06>
>>>>> >
>>>>> > A diff from the previous version is available at:
>>>>> > https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-pop-architecture-06 <https://www.ietf.org/rfcdiff?url2=draft-ietf-oauth-pop-architecture-06>
>>>>> >
>>>>> >
>>>>> > Please note that it may take a couple of minutes from the time of submission
>>>>> > until the htmlized version and diff are available at tools.ietf.org <http://tools.ietf.org/>.
>>>>> >
>>>>> > Internet-Drafts are also available by anonymous FTP at:
>>>>> > ftp://ftp.ietf.org/internet-drafts/ <ftp://ftp.ietf.org/internet-drafts/>
>>>>> >
>>>>> > _______________________________________________
>>>>> > OAuth mailing list
>>>>> > OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>>> > https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>>>>> 
>>>>> _______________________________________________
>>>>> OAuth mailing list
>>>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>>  <https://www.pingidentity.com/> 				
>>>>> Brian Campbell
>>>>> Distinguished Engineer
>>>>> Ping Identity
>>>>> @	bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>
>>>>> 	+1 720.317.2061 <tel:%2B1%20720.317.2061>
>>>>> 	@pingidentity
>>>>> Connect with us!
>>>>>  <https://www.pingidentity.com/> <https://www.pingidentity.com/>
>>>>>  <https://ping.force.com/Support/PingIdentityCommunityHome> <https://ping.force.com/Support/PingIdentityCommunityHome> <http://www.glassdoor.com/Overview/Working-at-Ping-Identity-EI_IE380907.11,24.htm>  <https://twitter.com/pingidentity>  <https://www.youtube.com/user/PingIdentityTV>  <https://www.linkedin.com/company/21870>  <https://www.facebook.com/pingidentitypage>  <https://plus.google.com/u/0/114266977739397708540>  <http://www.slideshare.net/PingIdentity>  <http://flip.it/vjBF7>  <https://www.pingidentity.com/blogs/>
>>>> 
>>>> 
>>>> -- 
>>>>  <https://www.pingidentity.com/> 				
>>>> Brian Campbell
>>>> Distinguished Engineer
>>>> Ping Identity
>>>> @	bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>
>>>> 	+1 720.317.2061 <tel:%2B1%20720.317.2061>
>>>> 	@pingidentity
>>>> Connect with us!
>>>>  <https://www.pingidentity.com/> <https://www.pingidentity.com/>
>>>>  <https://ping.force.com/Support/PingIdentityCommunityHome> <https://ping.force.com/Support/PingIdentityCommunityHome> <http://www.glassdoor.com/Overview/Working-at-Ping-Identity-EI_IE380907.11,24.htm>  <https://twitter.com/pingidentity>  <https://www.youtube.com/user/PingIdentityTV>  <https://www.linkedin.com/company/21870>  <https://www.facebook.com/pingidentitypage>  <https://plus.google.com/u/0/114266977739397708540>  <http://www.slideshare.net/PingIdentity>  <http://flip.it/vjBF7>  <https://www.pingidentity.com/blogs/>_______________________________________________
>>>> OAuth mailing list
>>>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>>>> https://www.ietf.org/mailman/listinfo/oauth <https://www.ietf.org/mailman/listinfo/oauth>
>>> 
>> 
> 
> 
> 
> 
> -- 
>  <https://www.pingidentity.com/> 				
> Brian Campbell
> Distinguished Engineer
> Ping Identity
> @	bcampbell@pingidentity.com <mailto:bcampbell@pingidentity.com>
> 	+1 720.317.2061
> 	@pingidentity
> Connect with us!
>  <https://www.pingidentity.com/> <https://www.pingidentity.com/>
>  <https://ping.force.com/Support/PingIdentityCommunityHome> <https://ping.force.com/Support/PingIdentityCommunityHome> <http://www.glassdoor.com/Overview/Working-at-Ping-Identity-EI_IE380907.11,24.htm>  <https://twitter.com/pingidentity>  <https://www.youtube.com/user/PingIdentityTV>  <https://www.linkedin.com/company/21870>  <https://www.facebook.com/pingidentitypage>  <https://plus.google.com/u/0/114266977739397708540>  <http://www.slideshare.net/PingIdentity>  <http://flip.it/vjBF7>  <https://www.pingidentity.com/blogs/>