We have consensus to change issue one to a MUST. Basically, the authorization endpoint MUST always use TLS regardless of its output.
We are still debating mandating TLS for the redirection URI (registered or dynamic) for any non-localhost transmission. The issue is not limited to sending the authorization code, but also when receiving HTML/JS code used to extract the token from the fragment in the implicit grant case. The issue is not whether there is a security risk, but what language we should use to warn against it (i.e. make insecure a violation of the spec via a MUST, or clearly explain the risks via a SHOULD). EHL From: Phil Hunt [mailto:phil.h...@oracle.com] Sent: Wednesday, March 30, 2011 11:09 AM To: Dick Hardt Cc: Eran Hammer-Lahav; OAuth WG Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-v2-13.txt I believe there are really two separate issues in this thread - hence the confusion. This is a fairly complex interchange since it involves re-directs, message confidentiality, and server authentication issues. ONE: I believe the text Dick is referring to is: "If the response includes an access token, the authorization server MUST require TLS 1.2 as defined in [RFC5246] and MAY support additional transport- layer mechanisms meeting its security requirements. If the response does not include an access token, the authorization server SHOULD require TLS 1.2 and any additional transport-layer mechanism meeting its security requirements." I believe the contentious part is the second part "If the response does not include an access token...". 1. Should we further clarify as "either within the redirect URL" or within a response document since some might argue that a redirect URL is not the response document when in this case it still carries information. 2. If no data is present, "state" is still available. How much of a concern do we have? Some are arguing that there is no need to secure this. In my opinion the MUST is required for reasons other than leakage. Note that we are talking about a RESPONSE message to a REQUEST that definitely should have been secure because in this case TLS authenticates the authorization server. Reverting to a SHOULD implies the original REQUEST need not be secure -- which means the client app has not authenticated the authorization service. If this is the case, then security depends solely on the integrity of the authorization code (artifact) not being spoofed since the whole authorization step is not secured from the perspective of the client. Given the variety of token systems out there, I would rather not depend on security of the authz code alone. TWO: There is a second issue that people are raising regarding the redirect that would force clients to implement TLS server side security. I'm not seeing where this is covered in the spec. The exception we are discussing is that if the redirect endpoint is local to the user-agent, then TLS is not required. However, if it is remote (such as an OAuth client that is a web service), then TLS is a MUST. Maybe this point needs to be discussed in section 2.1.1? Further, from section 2.2: "Since requests to the token endpoint result in the transmission of clear-text credentials (in the HTTP request and response), the authorization server MUST require the use of a transport-layer security mechanism when sending requests to the token endpoints. The authorization server MUST support TLS 1.2 as defined in [RFC5246], and MAY support additional transport-layer mechanisms meeting its security requirements" This paragraph seems to indicate that the transmission of the authz code in 2.1 is unsecure. I think the first phrase (Since requests to the token endpoint result in the transmission of clear-text credentials (in the HTTP request and response)) should be removed as it isn't quite in sync with even the current 2.1 endpoint behaviour. Cheers, Phil phil.h...@oracle.com<mailto:phil.h...@oracle.com> On 2011-03-30, at 9:25 AM, Dick Hardt wrote: Phil I'd suggest you review the spec so that you understand what Eran and I are saying. No code has been granted in the redirect to a web client, where implementing TLS server side is a major barrier. -- Dick On 2011-03-30, at 9:15 AM, Phil Hunt wrote: Developers of say a mobile app would not have to deploy it since the redirect endpoint would be local per the specific exception proposed. There should be NO requirement to make a client app implement TLS server side security. The concern here is that all "network" paths are secured to prevent impersonation or theft of the session. Remember that in many cases, once the code is granted, the subsequent token is often good for a LONG time and thus this becomes the weak point in this protocol. Re: Justin's comments on SHOULD, I find SHOULD is just too broad, it does not define when it is acceptable not to have security. I prefer clear specification text that says the network paths must be protected. Re: Eran's comments about impact on the existing community. I don't think you are grasping the broadness of acceptance of OAuth 2.0. The existing OAuth 1.0 users are primarily social networks. I haven't heard them object. In fact, I've noticed almost all have started enabling HTTPS everywhere (at least as a user option). But OAuth2 has a much broader community now that I would argue is VERY concerned about risks of impersonation and real financial loss. Phil phil.h...@oracle.com<mailto:phil.h...@oracle.com> On 2011-03-30, at 8:19 AM, Dick Hardt wrote: Thanks for pointing out my misunderstanding. I was thinking client in the sense of the side of TLS initiating a request. I agree that requiring TLS on the callback is an unexpected change. I recall reviewing the security implications of an unsecured callback as being nominal if the authorization grant is linked to the client credentials. On 2011-03-29, at 10:07 PM, Eran Hammer-Lahav wrote: I think you got this backwards. We're talking about forcing developers using the Facebook (or any other service) API to deploy their own TLS endpoint for the incoming callback (via redirection). Every developer will need to get a cert and deploy an HTTPS endpoint. That's has never been discussed. EHL From: Dick Hardt [mailto:dick.ha...@gmail.com] Sent: Tuesday, March 29, 2011 9:02 PM To: Eran Hammer-Lahav Cc: WG Subject: Re: [OAUTH-WG] WGLC on draft-ietf-oauth-v2-13.txt On 2011-03-29, at 4:40 PM, Eran Hammer-Lahav wrote: To clarify, I am not opposed to mandating TLS on the callback, just that if we do, we can't ship the protocol the way it is without coming up with some other alternative that does not require TLS deployment on the client side. OAuth 1.0 has no such requirement and adding it in 2.0 is completely unexpected by the community at large. I only recall the concern with TLS to be on the server side, not the client side -- and I don't think that it is unexpected at all. It would be helpful to hear from some companies with large 1.0 or 2.0 deployment on this matter? Anyone from Google, Facebook, Yahoo, Twitter, etc.? When working on OAuth-WRAP, I talked to all of those companies about using TLS, and only Facebook said that they wanted an option to be able to not require TLS. Since then, all Facebook's new APIs which are essentially using OAuth 2.0 run on TLS. _______________________________________________ OAuth mailing list OAuth@ietf.org<mailto:OAuth@ietf.org> https://www.ietf.org/mailman/listinfo/oauth
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth