I think the same is already true for mTLS. Solving it in an interoperable way would require some metadata about RS and their requirements re mTLS/DPoP. Shall we revitalize the idea of RS metadata?
> Am 17.04.2020 um 17:37 schrieb George Fletcher > <gffletch=40aol....@dmarc..ietf.org>: > > This brings up interesting rollout questions. Protecting just the > refresh_token is easy and a useful security measure (especially if access > tokens are short lived). However, once you start issuing DPoP bound access > tokens to a client, it means ALL the endpoints that client invokes MUST > understand DPoP and know what to do with the header. Depending on how many > endpoints that is, spread across N teams (or even companies) this can be > problematic. > > As much as I agree with Justin in regards to the security issues, it may not > be possible to force all RPs to update at the same time. This is of course > potentially solvable if the client uses unique access tokens per API endpoint > AND the AS knows which endpoints support DPoP and which don't. The problem > here is that this creates a tight-coupling between RP and AS (at least for > the rollout period). > > On 4/17/20 11:25 AM, Filip Skokan wrote: >> I completely agree Justin, as mentioned - i wondered a year ago, I don't >> anymore. But i'd like it to be clear that sending a DPoP proof does not >> necessarily mean the AS MUST issue a DPoP access token. Depending on the >> AS/RS relationship and configuration a regular Bearer may be still be >> issued and only the public client's refresh token would be constrained. >> >> Best, >> *Filip* >> >> >> On Fri, 17 Apr 2020 at 17:16, Justin Richer <jric...@mit.edu> wrote: >> >>> The idea of “Continuing to work without taking advantage of sender >>> constraints” is, I would argue, a security hole. Systems are allowed to >>> fail security checks but still offer functionality. This is exactly the >>> pattern behind allowing an unsigned JWT because you checked the “alg" >>> header and it was “none” and so you’re OK with that. Yes, you shouldn’t do >>> that, but maybe we could’ve also made this more explicit within JOSE. By >>> using the ‘DPoP’ auth scheme, we’re making a clear syntactic change that >>> says to the RS “either you know to look for this or you don’t know what it >>> is”. >>> >>> It’s one of the problems I have with how the OAuth MTLS spec was written. >>> By re-using the “Bearer” scheme there, I believe we’ve made a mistake that >>> allows things to fall through in an insecure fashion. The same argument >>> against it — ease of porting existing deployments — was raised there as >>> well, and it won in the end. I hope we can do better this time. >>> >>> — Justin >>> >>> On Apr 16, 2020, at 4:05 AM, Filip Skokan <panva...@gmail.com> wrote: >>> >>> I'm still somewhat on the fence as to the pros and cons of using a new >>>> token type and authorization scheme. But the draft has gone with a new one. >>>> Would it have really helped this situation, if it'd stuck with "bearer"? Or >>>> would it just be less obvious? >>>> >>> If we had stuck "bearer" than i wouldn't have raised this topic, since >>> existing RS would most likely ignore the cnf claim and the resource server >>> calls would continue to work, obviously without taking advantage of the >>> available sender check. >>> >>> As I wrote the preceding rambling paragraph I am starting to think that >>>> more should be said in the draft about working with RSs that don't support >>>> DPoP. Which isn't really what you were asking about. But maybe would cover >>>> some of the same ground. >>> >>> I agree. >>> >>> The AS is the one that does the binding (which includes checking the >>>> proof) so I don't see how sending two proofs would really work or help the >>>> situation? >>> >>> :facepalm: indeed, sorry. >>> >>> S pozdravem, >>> *Filip Skokan* >>> >>> >>> On Tue, 14 Apr 2020 at 23:39, Brian Campbell <bcampb...@pingidentity.com> >>> wrote: >>> >>>> Hi Filip, >>>> >>>> My attempts at responses to your questions/comments are inline: >>>> >>>> On Tue, Apr 14, 2020 at 2:14 AM Filip Skokan <panva...@gmail.com> wrote: >>>> >>>>> I've wondered about the decision to use a new scheme before >>>>> <https://github.com/danielfett/draft-dpop/issues/41#issuecomment-490096716> >>>>> but >>>>> this time i'd like to challenge the immediate usability of the future spec >>>>> for one specific case - sender constraining public client Refresh Tokens. >>>>> >>>> I'm still somewhat on the fence as to the pros and cons of using a new >>>> token type and authorization scheme. But the draft has gone with a new one. >>>> Would it have really helped this situation, if it'd stuck with "bearer"? Or >>>> would it just be less obvious? >>>> >>>> >>>>> If at all, it is going to take time for RS implementations to recognize >>>>> the new `DPoP` authorization scheme, let alone process it properly. In the >>>>> meantime, i'd still like to have the option to bind issued public client >>>>> refresh tokens using DPoP without affecting the access tokens. In doing so >>>>> i get an immediate win in sender constraining the refresh tokens but not >>>>> introducing a breaking change for the RS. >>>>> >>>>> >>>>> - Do you see this as something an AS implementation is just free to >>>>> do since it's both the issuer and recipient of a refresh token? >>>>> >>>>> That's my first thought, yes. >>>> >>>>> - Should this be somehow baked in the draft? >>>>> >>>>> I'm not sure. Do you think it needs to be? I'm not sure what it would >>>> say though. >>>> >>>> In such a case the AS could bind the RT to the given dpop proof and >>>> either not bind the AT while returning token_type=Bearer or bind the AT >>>> while returning token_type value DPoP. In the latter case the AT would >>>> almost certainly still work as a bearer token at the RS and the client that >>>> knew the RS's needs could send it as such with an `Authorization: Bearer >>>> <at>`. Or if it didn't know the RS's needs, it could start with >>>> `Authorization: DPoP <at>` which would get a 401 with `WWW-Authenticate: >>>> Bearer` at which point it could send `Authorization: Bearer <at>`. >>>> >>>> As I wrote the preceding rambling paragraph I am starting to think that >>>> more should be said in the draft about working with RSs that don't support >>>> DPoP. Which isn't really what you were asking about. But maybe would cover >>>> some of the same ground. >>>> >>>> >>>> >>>>> - Do you think client registration metadata could be used to signal >>>>> such intent? >>>>> >>>>> I think it certainly could. But it seems maybe too specific to warrant >>>> metadata. >>>> >>>> >>>>> - Do you think the protocol should have signals in the messages >>>>> themselves to say what the client wants to apply DPoP to? >>>>> >>>>> My initial thought here is no. Take the case of a client working with an >>>> AS that supports DPoP and one RS that does and one RS that doesn't. I can't >>>> really even think what signaling might look like there or how it could be >>>> made to be generally useful. >>>> >>>> >>>>> - What if AS and RS don't have a shared support DPoP JWS Algorithm? >>>>> Do we disqualify such cases or allow for sending two proofs, one for >>>>> the AS >>>>> to bind refresh tokens to, one for the RS to bind access tokens to? >>>>> >>>>> The AS is the one that does the binding (which includes checking the >>>> proof) so I don't see how sending two proofs would really work or help the >>>> situation? >>>> >>>> >>>> *CONFIDENTIALITY NOTICE: This email may contain confidential and >>>> privileged material for the sole use of the intended recipient(s). Any >>>> review, use, distribution or disclosure by others is strictly prohibited... >>>> If you have received this communication in error, please notify the sender >>>> immediately by e-mail and delete the message and any file attachments from >>>> your computer. Thank you.* >>> _______________________________________________ >>> 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
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth