<editors hat> If there is agreement that tokens are opaque then the requirement that tokens be signed must be removed from the threat mitigation requirements.
And the paragraph in sec 5 that brian was concerned about be restored. Phil > On Nov 25, 2015, at 11:24, Justin Richer <jric...@mit.edu> wrote: > > It is still end to end authentication with opaque tokens — since all OAuth > tokens, including PoP tokens, have always been intended to be opaque to the > client. That hasn’t changed and that isn’t the intent of this document. If > that’s how people are reading it then we need to pull it back and rewrite it > so that’s not the case. > > The client gets a token that has two parts: the token and the key. The token > is analogous to the access_token we have today and would come out of the > server in the same field. The key is handed to the client alongside the token > or registered by the client during the token request. Either way there’s an > association between the two but it’s not the same association as a > public/private keypair. > > It’s possible to sign the token itself, but the client doesn’t care. It sends > the token and signs the HTTP request to the RS whether the token is signed, > unsigned, hex blob, encrypted, or anything else. The same series of options > are available as with bearer tokens. PoP tokens have never, ever been > intended to be anything but opaque to the client. > > The token can’t be opaque to the RS, which has to figure out what key to use > to check the message signature. But we’ve got options there, like the > embedded key in a JWT from Mike’s draft, or doing introspection to get the > key (from an extension that hasn’t been written yet), or simply looking it up > in the same database because the RS and the AS are in the same box. Does this > structure/service/database choice sound familiar? It should, it’s the same as > bearer tokens. This is also how the RS gets information like which scopes are > associated with the token, if it’s expired, and all that. > > > > > So here’s how I see it going on the wire: > > > > > > > > (I just wrote this up so there are probably holes. Here’s the source if > anyone wants to tweak it: > http://www.websequencediagrams.com/?lz=cGFydGljaXBhbnQgQ2xpZW50IGFzIEMKAAwMUmVzb3VyY2UgT3duZXIgYXMgUk8AFA1BdXRob3JpemF0aW9uIFNlcnYAIQZBUwA7DVByb3RlY3RlZABICmFzIFJTCgoKClJPLS0-QzogR28gZ2V0IG15IHIAbwcKQy0tPlJPOiBSZWRpcmVjdCB0byBBUy9BRQAvBkFTOiBMb2cgaW4sIGEAgQIHZSBjAIFHBQpBUwAqEwAVBwBrCEhhbmQAKQcAPAUgZ3JhbnQKCmFsdCBzAIFGBnN1cHBsaWVkIGtleQpDAG4GVG9rZW4gcmVxdWVzdCAoADAFKQpBUwCBDAZnZW5lcmF0ZSB0ACIFYW4ANwUva2V5cGFpcgAiBUMAPAgmIEsAEAtlbHMAgTcIAE8pICYga2V5AGYYLCBhc3NvY2lhdGUgd2l0aACBQQUAcBIKZW5kCgpDLT5SUzogUgCBUQdpbmNsdWRpbmcAgT4Lc2lnbmVkAEEKAIIkBnRydWN0dXJlZACBbQYKUlMARAZjaGVjawCCAAdzaWduYXR1cmUgLyBkZWNyeXB0AB8PUGFycwCCLgcAOQlVbnBhY2sAgncFAIIYBWludHJvc3BlY3RpbwBiBkFTOiBzZW4AdAcgKG5vdABiCikgdG8AJQ9BAIEVBwAvBWtleSAocHVibGljIG9yIHNoYXJlZCkAgwIGZGF0YWJhc2UAgUUJbG9vayB1cABhCGxvY2FsLwAtBiBEQikAHQthAIQoBgCCUAUAgX4OAIQsCACCBAp1c2luZwCEWAUAGw9pZ2h0cwCDNQoAgm4HAIJbBgCCXQVDOiByZXR1cm4AhicJ&s=modern-blue > ) > > The client is oblivious to the token just like always. This is intentional. > The RS has the same options to figure out how to process the token. > > — Justin > >> On Nov 25, 2015, at 2:03 PM, Phil Hunt <phil.h...@oracle.com> wrote: >> >> 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.h...@oracle.com >> >>> On Nov 25, 2015, at 10:48 AM, Brian Campbell <bcampb...@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 <jric...@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.h...@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 >>>>> phil.h...@oracle.com >>>>> >>>>>> On Nov 25, 2015, at 9:33 AM, Justin Richer <jric...@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 >>>>>>> <bcampb...@pingidentity.com> wrote: >>>>>>> >>>>>>> Where does it say that? >>>>>>> >>>>>>> >>>>>>> >>>>>>>> On Wed, Nov 25, 2015 at 8:44 AM, Phil Hunt <phil.h...@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 >>>>>>>>> <bcampb...@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.h...@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 >>>>>>>>>> phil.h...@oracle.com >>>>>>>>>> >>>>>>>>>> > On Nov 24, 2015, at 12:05 PM, internet-dra...@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/ >>>>>>>>>> > >>>>>>>>>> > There's also a htmlized version available at: >>>>>>>>>> > 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 >>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> > 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. >>>>>>>>>> > >>>>>>>>>> > Internet-Drafts are also available by anonymous FTP at: >>>>>>>>>> > ftp://ftp.ietf.org/internet-drafts/ >>>>>>>>>> > >>>>>>>>>> > _______________________________________________ >>>>>>>>>> > 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 >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> Brian Campbell >>>>>>>>> Distinguished Engineer >>>>>>>>> Ping Identity >>>>>>>>> @ bcampb...@pingidentity.com >>>>>>>>> +1 720.317.2061 >>>>>>>>> @pingidentity >>>>>>>>> Connect with us! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Brian Campbell >>>>>>> Distinguished Engineer >>>>>>> Ping Identity >>>>>>> @ bcampb...@pingidentity.com >>>>>>> +1 720.317.2061 >>>>>>> @pingidentity >>>>>>> Connect with us! >>>>>>> >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> OAuth mailing list >>>>>>> OAuth@ietf.org >>>>>>> https://www.ietf.org/mailman/listinfo/oauth >>> >>> >>> >>> -- >>> >>> Brian Campbell >>> Distinguished Engineer >>> Ping Identity >>> @ bcampb...@pingidentity.com >>> +1 720.317.2061 >>> @pingidentity >>> Connect with us! >>> >>> >>> >
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth