Josh, I’m not sure this helps. It seems to me, a phishing link could tell your app to launch and pass in any RS value could it not?
Phil @independentid www.independentid.com phil.h...@oracle.com > On Mar 16, 2015, at 10:47 AM, Josh Mandel <jman...@gmail.com> wrote: > > Hi Torsten, > > You're absolutely correct. The implementation we're contemplating for SMART > Platforms does indeed derive the "aud" parameter from the actual URL that the > client used to communicate with the RS. Very briefly, the flow is: > > 1. Electronic Health Record system tells an app to launch, passing the app > its RS endpoint as an issuer (iss) URL parameter. > 2. App queries the RS's issuer URL to learn what AS to talk to > 3. App contacts AS's authorize endpoint, passing an "aud" param that was the > same as the issuer from step 1. > 4. After obtaining a token, app talks to the RS using that token. > > -Josh > > > On Mon, Mar 16, 2015 at 10:40 AM, Torsten Lodderstedt > <tors...@lodderstedt.net <mailto:tors...@lodderstedt.net>> wrote: > I don't think putting an aud into an AT will help to prevent counterfeit RSs > (as long as the aud is nit directly derived from the original URL used by the > client to invoke the counterfeit RS. as long as the aud is a symbolic name of > any kind, the counterfeit RS will accept ATs for the legitimate RS and just > (ab)use it. > > POP on the contrary helps since the counterfeit RS, in order to send a > message to the legitimate RS, needs to produce a new digitally signed message > using the correct secret, which it doesn't know. > > kind regards, > Torsten. > > > > Am 16.03.2015 um 17:40 schrieb Dixie Baker <dixie.ba...@martin-blanck.com > <mailto:dixie.ba...@martin-blanck.com>>: > >> Using the "aud" parameter makes sense to me. Good suggestion. >> >> Authenticating the client to the RS would not address the counterfeit RS >> threat. >> >> -Dixie >> >> >> Dixie B. Baker, Ph.D. >> Senior Partner >> Martin, Blanck and Associates >> Office (Redondo Beach, CA): 310-791-9671 <tel:310-791-9671> >> Mobile: 310-279-2579 <tel:310-279-2579> >> On Mar 16, 2015, at 6:43 AM, Brian Campbell <bcampb...@pingidentity.com >> <mailto:bcampb...@pingidentity.com>> wrote: >> >>> We've used "aud" (optionally) with OAuth 2 and bearer tokens to help >>> identify the RS to whom the AT should be issued. It is useful but it's >>> mostly about getting format/content/etc of the AT correct for the RS rather >>> than it is about preventing possible AT leaks. >>> >>> I do think an "aud(iance)" parameter at both token and authorization >>> endpoints would have utility beyond the POP work. So defining it >>> independently might make sense. >>> >>> On Sun, Mar 15, 2015 at 11:34 AM, John Bradley <ve7...@ve7jtb.com >>> <mailto:ve7...@ve7jtb.com>> wrote: >>> In POP key distribution we do introduce a "audiance" parameter to the >>> token_endpoint. >>> https://tools.ietf.org/html/draft-ietf-oauth-pop-key-distribution-01#section-3.1 >>> >>> <https://tools.ietf.org/html/draft-ietf-oauth-pop-key-distribution-01#section-3.1> >>> >>> It would be possible to have a small spec to define using "aud" with bearer >>> tokens, however that would be undefined behaviour at this point. >>> >>> I don't know of any clients that would try to access a RS server and then >>> besed on the error response try and get a access token from the AS >>> specified in the error. >>> >>> In POP we are trying to both protect agains that attack and more common >>> ones like doing a MiM to intercept the AT or the RS being hacked and >>> leaking the token. >>> >>> Using "aud" with bearer tokens would be useful, but probably won't stop the >>> majority of possible AT leaks. >>> >>> John B. >>> >>> >>>> On Mar 15, 2015, at 2:18 PM, Torsten Lodderstedt <tors...@lodderstedt.net >>>> <mailto:tors...@lodderstedt.net>> wrote: >>>> >>>> Hi Josh, >>>> >>>> I'm not aware of a common practice to use such a parameter. The WG is >>>> instead heading towards authenticated requests to the resource server (see >>>> https://tools.ietf.org/html/rfc6819#section-5.4.2 >>>> <https://tools.ietf.org/html/rfc6819#section-5.4.2>). >>>> >>>> Please take a look onto >>>> http://tools.ietf.org/html/draft-ietf-oauth-pop-architecture >>>> <http://tools.ietf.org/html/draft-ietf-oauth-pop-architecture> and further >>>> drafts on this topic. >>>> >>>> kind regards, >>>> Torsten. >>>> >>>> Am 03.03.2015 um 18:27 schrieb Josh Mandel: >>>>> Hi All, >>>>> >>>>> In section 4.6.4 ("Threat: Access Token Phishing by Counterfeit Resource >>>>> Server"), RFC6819 describes a threat where a counterfeit resource server >>>>> tricks a client into obtaining and sharing an access token from a >>>>> legitimate authorization server. One of the proposed mitigations >>>>> involves: "telling the authorization server about the resource server >>>>> endpoint URL in the authorization process." >>>>> >>>>> In other words, this mitigation would ask the client to pass an >>>>> additional parameter when redirecting to the Authorization server's >>>>> "authorize" URL, effectively something like: >>>>> >>>>> https://auth-server/authorize <https://auth-server/authorize>? >>>>> response_type=code& >>>>> client_id=123& >>>>> state=456& >>>>> scope=read-all& >>>>> redirect_uri=https://app-server/after-auth& >>>>> <https://app-server/after-auth&> >>>>> resource_server_that_told_me_to_authorize_here=https://attacker.com >>>>> <https://attacker.com/> >>>>> >>>>> (And if the authorization server saw a value it didn't like in the final >>>>> parameter, it would reject the request.) >>>>> >>>>> This is obviously not appropriate in every authorization scenario, but it >>>>> is useful anytime there's a discovery process by which apps learn about >>>>> authorization servers from resource servers. Since it's something of a >>>>> common need, I wanted to see if there was any common practice in how to >>>>> name this parameter, or whether it's worth registering a standard >>>>> extension at >>>>> http://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml >>>>> <http://www.iana.org/assignments/oauth-parameters/oauth-parameters.xhtml> >>>>> . (I don't see one there now -- possibly I'm just missing it.) >>>>> >>>>> If so, what should it be called? The name I used in the example above is >>>>> a bit verbose :-) >>>>> >>>>> Best, >>>>> >>>>> Josh >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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> >>> >>> >>> _______________________________________________ >>> 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> > > > _______________________________________________ > 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