> On 22. Nov 2019, at 22:12, Richard Backman, Annabelle 
> <richanna=40amazon....@dmarc.ietf.org> wrote:
> 
> The service provider doesn't own the entire connection. They have no control 
> over corporate or government TLS gateways, or other terminators that might 
> exist on the client's side. In larger organizations, or when cloud hosting is 
> involved, the service team may not even own all the hops on their side.

how are cookies protected from leakage, replay, injection in a setup like this?

> While presumably they have some trust in them, protection against leaked 
> bearer tokens is an attractive defense-in-depth measure.

That’s a totally valid point. But again, such a solution makes the life of 
client developers harder. 

I personally think, we as a community need to understand the pros and cons of 
both approaches. I also think we have not even come close to this point, which, 
in my option, is the prerequisite for making informed decisions.

> 
> – 
> Annabelle Richard Backman
> AWS Identity
> 
> 
> On 11/22/19, 9:37 PM, "OAuth on behalf of Torsten Lodderstedt" 
> <oauth-boun...@ietf.org on behalf of 
> torsten=40lodderstedt....@dmarc.ietf.org> wrote:
> 
> 
> 
>> On 22. Nov 2019, at 21:21, Richard Backman, Annabelle 
>> <richanna=40amazon....@dmarc.ietf.org> wrote:
>> 
>> The dichotomy of "TLS working" and "TLS failed" only applies to a single TLS 
>> connection. In non-end-to-end TLS environments, each TLS terminator between 
>> client and RS introduces additional token leakage/exfiltration risk, 
>> irrespective of the quality of the TLS connections themselves. Each 
>> terminator also introduces complexity for implementing mTLS, Token Binding, 
>> or any other TLS-based sender constraint solution, which means developers 
>> with non-end-to-end TLS use cases will be more likely to turn to DPoP.
> 
>    The point is we are talking about different developers here. The client 
> developer does not need to care about the connection between proxy and 
> service. She relies on the service provider to get it right. So the 
> developers (or DevOps or admins) of the service provider need to ensure end 
> to end security. And if the path is secured once, it will work for all 
> clients. 
> 
>> If DPoP is intended to address "cases where neither mTLS nor OAuth Token 
>> Binding are available" [1], then it should address this risk of token 
>> leakage between client and RS. If on the other hand DPoP is only intended to 
>> support the SPA use case and assumes the use of end-to-end TLS, then the 
>> document should be updated to reflect that.
> 
>    I agree. 
> 
>> 
>> [1]: https://tools.ietf.org/html/draft-fett-oauth-dpop-03#section-1
>> 
>> – 
>> Annabelle Richard Backman
>> AWS Identity
>> 
>> 
>> On 11/22/19, 8:17 PM, "OAuth on behalf of Torsten Lodderstedt" 
>> <oauth-boun...@ietf.org on behalf of 
>> torsten=40lodderstedt....@dmarc.ietf.org> wrote:
>> 
>>   Hi Neil,
>> 
>>> On 22. Nov 2019, at 18:08, Neil Madden <neil.mad...@forgerock.com> wrote:
>>> 
>>> On 22 Nov 2019, at 07:53, Torsten Lodderstedt 
>>> <torsten=40lodderstedt....@dmarc.ietf.org> wrote:
>>>> 
>>>> 
>>>> 
>>>>> On 22. Nov 2019, at 15:24, Justin Richer <jric...@mit.edu> wrote:
>>>>> 
>>>>> I’m going to +1 Dick and Annabelle’s question about the scope here. That 
>>>>> was the one major thing that struck me during the DPoP discussions in 
>>>>> Singapore yesterday: we don’t seem to agree on what DPoP is for. Some 
>>>>> (including the authors, it seems) see it as a quick point-solution to a 
>>>>> specific use case. Others see it as a general PoP mechanism. 
>>>>> 
>>>>> If it’s the former, then it should be explicitly tied to one specific set 
>>>>> of things. If it’s the latter, then it needs to be expanded. 
>>>> 
>>>> as a co-author of the DPoP draft I state again what I said yesterday: DPoP 
>>>> is a mechanism for sender-constraining access tokens sent from SPAs only. 
>>>> The threat to be prevented is token replay.
>>> 
>>> I think the phrase "token replay" is ambiguous. Traditionally it refers to 
>>> an attacker being able to capture a token (or whole requests) in use and 
>>> then replay it against the same RS. This is already protected against by 
>>> the use of normal TLS on the connection between the client and the RS. I 
>>> think instead you are referring to a malicious/compromised RS replaying the 
>>> token to a different RS - which has more of the flavour of a man in the 
>>> middle attack (of the phishing kind).
>> 
>>   I would argue TLS basically prevents leakage and not replay. The threats 
>> we try to cope with can be found in the Security BCP. There are multiple 
>> ways access tokens can leak, including referrer headers, mix-up, open 
>> redirection, browser history, and all sorts of access token leakage at the 
>> resource server
>> 
>>   Please have a look at 
>> https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-4.
>> 
>>   
>> https://tools.ietf.org/html/draft-ietf-oauth-security-topics-13#section-4.8 
>> also has an extensive discussion of potential counter measures, including 
>> audience restricted access tokens and a conclusion to recommend sender 
>> constrained access tokens over other mechanisms.
>> 
>>> 
>>> But if that's the case then there are much simpler defences than those 
>>> proposed in the current draft:
>>> 
>>> 1. Get separate access tokens for each RS with correct audience and scopes. 
>>> The consensus appears to be that this is hard to do in some cases, hence 
>>> the draft.
>> 
>>   How many deployments do you know that today are able to issue RS-specific 
>> access tokens?
>>   BTW: how would you identify the RS?
>> 
>>   I agree that would be an alternative and I’m a great fan of such tokens 
>> (and used them a lot at Deutsche Telekom) but in my perception this pattern 
>> needs still to be established in the market. Moreover, they basically 
>> protect from a rough RS (if the URL is used as audience) replaying the token 
>> someplace else, but they do not protect from all other kinds of 
>> leakage/replay (e.g. log files).
>> 
>>> 2. Make the DPoP token be a simple JWT with an "iat" and the origin of the 
>>> RS. This stops the token being reused elsewhere but the client can reuse it 
>>> (replay it) for many requests.
>>> 3. Issue a macaroon-based access token and the client can add a correct 
>>> audience and scope restrictions at the point of use.
>> 
>>   Why is this needed if the access token is already audience restricted? Or 
>> do you propose this as alternative? 
>> 
>>> 
>>> Protecting against the first kind of replay attacks only becomes an issue 
>>> if we assume the protections in TLS have failed. But if DPoP is only 
>>> intended for cases where mTLS can't be used, it shouldn't have to protect 
>>> against a stronger threat model in which we assume that TLS security has 
>>> been lost.
>> 
>>   I agree. 
>> 
>>   best regards,
>>   Torsten. 
>> 
>>> 
>>> -- Neil
>> 
>> 
>> 
> 
> 
> 

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to