Thanks for the clarification. Yes, the compromise makes sense. Phil phil.h...@oracle.com
On 2011-03-28, at 3:28 PM, Eran Hammer-Lahav wrote: > The code is returned in two steps: > > 1. The authorization server replies to the user-agent request (providing > authorization) with a redirection instruction typically using the Location > response header field. > 2. The user-agent makes an HTTP GET request to the provided location (which > may be something other than an HTTP URI, or an HTTP URI to localhost). > > #1 is an HTTP response to a user-agent request to the authorization endpoint > (or a subsequent one if the server implementation has multiple authorization > steps). > > #2 is an HTTP request made by the user-agent. > > In order for the code to be secure end-to-end, both steps must use TLS. The > arguments made against making TLS required are based on use cases for #2. We > can make #1 (the authorization endpoint require TLS since it already has to > support it for the 'token' response type. We should make callbacks a SHOULD > for TLS. > > Does this sound like a reasonable compromise? > > EHL > >> -----Original Message----- >> From: Phil Hunt [mailto:phil.h...@oracle.com] >> Sent: Monday, March 28, 2011 2:28 PM >> To: Justin Richer >> Cc: Eran Hammer-Lahav; OAuth WG >> Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-v2-13.txt >> >> This was referring to section 2.1 that the authorization server must use TLS >> when returning an authorization code. >> >> If it doesn't use TLS then the code being returned to the client can be >> intercepted. >> >> Or did I miss something? >> >> Phil >> phil.h...@oracle.com >> >> >> >> >> On 2011-03-28, at 1:37 PM, Justin Richer wrote: >> >>> Phil, >>> >>> The main difference is that it's a requirement on the *client* instead >>> of the *provider* side of the equation, and clients aren't always even >>> speaking HTTP. I agree that all client web servers SHOULD do it. A >>> particular provider can even REQUIRE it for their registered clients, >>> a step that is outside the scope of OAuth. But there are real, in-use >>> patterns that don't require the client to make an HTTP request to an >>> external service. >>> >>> I don't see how Firesheep is relevant to this discussion -- if your >>> browser is making a call to localhost to get the token, who outside of >>> your machine is going to do it? I'm not talking about convenience for >>> developers here (which I would argue should NOT be discounted, but >>> that's another argument), I'm talking about cases where the browser >>> isn't going outside of a trusted security boundary. There are also >>> instances where there may not even be an HTTP transaction involved, >>> let alone one that could support TLS. >>> >>> -- Justin >>> >>> On Mon, 2011-03-28 at 16:25 -0400, Phil Hunt wrote: >>>> Justin, How is that so? Remember firesheep? I wouldn't want the >> authorization code being exchanged without TLS in a cafe. Intercept is just >> too easy. And as I mentioned earlier, client credentials are already very >> weak >> in many cases. In contrast, two web servers are hard to sniff unless you are >> able to gain access to their network communications path. >>>> >>>> As for testing, it seems more reasonable to put servers in temporary non- >> compliance while testing rather then allow non-secure servers in production >> because of the SHOULD loophole. >>>> >>>> Also, while it does seem convenient for the developer not to have to use >> TLS for authz codes, note that the developer still has to have TLS enabled >> when exchanging the code for an access token. So I'm not sure how relaxing >> TLS for obtaining authorization actually simplifies the developer lifecycle >> since >> they still have to set it up to test the other parts. In my view, it would >> be ok >> for a developer to temporarily disable TLS everywhere during development - >> - which places operation outside RFC compliance while developing -- but >> forces compliance once they go into production. >>>> >>>> It seems like I had to give a pretty substantial justification and we >>>> backed >> off because TLS is seen as inconvenient. I think we need more evidence that >> there are safe cases that don't need TLS. >>>> >>>> Sorry for pushing hard on this one, but TLS is the backbone of OAuth >> security at present. >>>> >>>> Phil >>>> phil.h...@oracle.com >>>> >>>> >>>> >>>> >>>> On 2011-03-28, at 12:52 PM, Eran Hammer-Lahav wrote: >>>> >>>>> No change then. But the security considerations section must reflect >> this. >>>>> >>>>> EHL >>>>> >>>>>> -----Original Message----- >>>>>> From: Justin Richer [mailto:jric...@mitre.org] >>>>>> Sent: Monday, March 28, 2011 10:05 AM >>>>>> To: Eran Hammer-Lahav >>>>>> Cc: Phil Hunt; OAuth WG >>>>>> Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-v2-13.txt >>>>>> >>>>>> What about non-http return uri's, or client-localhost, such as >>>>>> >>>>>> someapp://app/?code=foo >>>>>> >>>>>> http://localhost:87345/?code=foo >>>>>> >>>>>> HTTPS makes sense when you're talking between two web servers, but >>>>>> it seems to fall apart otherwise. I think SHOULD is appropriate here. >>>>>> >>>>>> -- Justin >>>>>> >>>>>> >>>>>> On Fri, 2011-03-25 at 16:03 -0400, Eran Hammer-Lahav wrote: >>>>>>> Unless someone has an objection, I'll make the change from SHOULD >>>>>>> to >>>>>> MUST. >>>>>>> >>>>>>> EHL >>>>>>> >>>>>>>> -----Original Message----- >>>>>>>> From: Phil Hunt [mailto:phil.h...@oracle.com] >>>>>>>> Sent: Friday, March 25, 2011 12:42 PM >>>>>>>> To: Eran Hammer-Lahav >>>>>>>> Cc: OAuth WG; Chuck & Mara Mortimore >>>>>>>> Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-v2-13.txt >>>>>>>> >>>>>>>> Regarding the message: http://www.ietf.org/mail- >>>>>>>> archive/web/oauth/current/msg05762.html (sorry I somehow lost >>>>>>>> the message in my email). >>>>>>>> >>>>>>>> This issue is theft of the authorization code during the redirect. >>>>>>>> Authenticating the client is an important feature and goes a long >>>>>>>> way, but it is not sufficient since in many cases, the >>>>>>>> client_id/client_secret will likely be hard coded and relatively >>>>>>>> easy to deduce (e.g. mobile client apps). Of course a strong >>>>>>>> client authentication won't have this issue. This makes many >>>>>>>> consumer situations very susceptible to an attack where the >>>>>>>> authorization code is >>>>>> intercepted. >>>>>>>> >>>>>>>> For more information look at the SAML Artifact issues in section >>>>>>>> 6.5 (specifically stolen artifact, replay, etc) of this document: >>>>>>>> http://docs.oasis- >>>>>>>> open.org/security/saml/v2.0/saml-sec-consider-2.0-os.pdf >>>>>>>> >>>>>>>> There are a number of remediations suggested (small lifetime, >>>>>>>> single use), but the foundational one is confidentiality of the >>>>>>>> exchange (TLS). Hence the recommendation that the return of an >>>>>>>> authorization code be kept secure with a MUST for TLS. >>>>>>>> >>>>>>>> Phil >>>>>>>> phil.h...@oracle.com >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 2011-03-24, at 7:22 PM, Chuck Mortimore wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> On Mar 24, 2011, at 6:36 PM, "Eran Hammer-Lahav" >>>>>>>> <e...@hueniverse.com> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> -----Original Message----- >>>>>>>>>>> From: oauth-boun...@ietf.org [mailto:oauth- >> boun...@ietf.org] >>>>>>>>>>> On Behalf Of Chuck Mortimore >>>>>>>>>>> Sent: Monday, March 14, 2011 6:10 PM >>>>>>>>>> >>>>>>>>>>> 1) I'd vote for dropping the following from 1.4.2. In turn I'd >> discuss >>>>>> some >>>>>>>> of >>>>>>>>>>> the security considerations, such as difficulty of protecting >>>>>>>>>>> a client_secret in almost all use-cases of this profile. >>>>>>>>>>> >>>>>>>>>>> "Implicit grants improve the responsiveness and efficiency of >>>>>>>>>>> some clients (such as a client implemented as an in-browser >>>>>>>>>>> application) since it reduces the number of round trips >>>>>>>>>>> required to obtain an access token." >>>>>>>>>> >>>>>>>>>> Why drop it? What about it isn't accurate? >>>>>>>>> >>>>>>>>> It's accurate, but my opinion is it sends the wrong message. It's >> clearly >>>>>> the >>>>>>>> less secure of the response types. By positioning it as the most >>>>>>>> performant people may find that attractive and make the wrong >>>>>>>> security >>>>>> decision. >>>>>>>>> >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> 2) Section 2.1, we should MUST TLS even for Authorization Code. >>>>>>>>>> >>>>>>>>>> Why? What's the attack vector? >>>>>>>>> >>>>>>>>> See Phils comment on past experience with artifact bindings. >>>>>>>>> Spec should >>>>>>>> default for security always on, and let deployments that don't >>>>>>>> want to use HTTPs simply be non-conformant. >>>>>>>>> >>>>>>>>>> >>>>>>>>>>> 3) Section 4.1.3 - not clear to me why redirect_uri is >>>>>>>>>>> REQUIRED since in 4.1.1 it's "REQUIRED unless" >>>>>>>>>> >>>>>>>>>> The client should always confirm where the code was sent to. It >>>>>>>>>> can omit >>>>>>>> the redirection is one was provided but should tell the server >>>>>>>> where it went to. This is more consistent on the verification >>>>>>>> side, but if the original flow designers want to chime in (Dick, >>>>>>>> Brian, etc.?), I'm open >>>>>> to change this. >>>>>>>>>> >>>>>>>>>>> 4) Section 4.2.2 - when did we drop refresh_token? I assume >> this >>>>>> goes >>>>>>>>>>> back to disagreement on how best to handle native clients. I'd >>>>>>>>>>> prefer it to simply reference 5.1 and leave what is issued up >>>>>>>>>>> to the security profile of the particular deployment as to what is >> issued. >>>>>>>>>> >>>>>>>>>> -08 June 2010. >>>>>>>>>> >>>>>>>>>> This has been decided for a long time. I'm not eager to change it. >>>>>>>>> >>>>>>>>> Thanks - I can live with it. Unfortunately we still seem to be >>>>>>>>> fragmenting on >>>>>>>> the native client approach. Good topic for IIW I suspect >>>>>>>>> >>>>>>>>> -cmort >>>>>>>>> >>>>>>>>>> >>>>>>>>>> EHL >>>>>>>>>> >>>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> 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 >>>>>> >>>>> >>>> >>> >>> > _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth