Re: [OAUTH-WG] [UNVERIFIED SENDER] Re: New Version Notification for draft-fett-oauth-dpop-03.txt

2019-12-03 Thread Rifaat Shekh-Yusef
On Mon, Dec 2, 2019 at 4:35 PM Richard Backman, Annabelle  wrote:

> > Session cookies serve the same purpose in web apps as access tokens for
> APIs but there are much more web apps than APIs. I use the analogy to
> illustrate that either there are security issues with cloud deployments of
> web apps or the techniques used to secure web apps are ok for APIs as well.
>
> "Security issues" is a loaded term, but if you mean that there are
> practical risks that are not addressed by bearer tokens (whether they be
> session cookies or access tokens) then yes, I think we both agree that
> there are. Otherwise we wouldn't be discussing PoP, sender-constrained
> tokens, etc. TLS-based solutions mitigate some risks, while leaving others
> unmitigated. Depending on your use case and threat model, these risks may
> or may not present practical threats. For my use cases, they do.
>
> Ultimately I'd like to mitigate these risks for both service APIs and web
> applications. My focus is on service APIs for a couple reasons:
>
> 1. Interoperability is more important when the sender and recipient aren't
> necessarily owned by a single entity. I can do proprietary things in
> JavaScript if I want to just as I can in client SDKs, but this breaks down
> if my API implements a standard protocol and is expected to work with
> off-the-shelf clients and/or implementations from other vendors.
>
> 2. Web applications are just a special subset of service APIs that happens
> to be accessed via a browser. A solution for service APIs ought to be
> reusable for web applications, or at least serve as a foundation for their
> solution.
>
> >- Have you seen this kind of proxies intercepting the connection from
> on-prem service deployments to service provider? I’m asking because I
> thought the main use case was to intercept employees PC internet traffic.
>
> I'm working from second-hand knowledge here, but like most things in the
> enterprise world, it depends. Separating employee device outbound traffic
> from internal service outbound traffic requires some level of
> sophistication, be it in network topology, routing rules, or configuration
> rules on the TLIS appliance.
>
>
Yeah, many major enterprises have these kinds of inspection services, Take
a look at the following example:
https://www.zscaler.com/resources/data-sheets/zscaler-internet-access.pdf



> >- Are you saying this kind of proxy does not support mutual TLS at
> all?
>
> From what I understand, at the very least mTLS is not universally
> supported. There may be some vendors that support it, but it's not
> guaranteed. The documentation for Symantec's SSL Visibility product [1]
> indicates that sessions using client certificates will be rejected unless
> they are exempted based on destination whitelisting


Yes, that is my experience too.


> (which is problematic when the destination may be a general-purpose cloud
> service provider).
>

Is there a use case that would require you to do that?
If I have a service that is hosted on AWS, then the exception would be for
my service, not for AWS in general.

Regards,
 Rifaat


>
> > On the other hand, I would expect these kind of proxy to understand a
> lot about the protocols running through it, otherwise they cannot fulfil
> their task of inspecting this traffic.
>
> Maybe, maybe not. In any case there's a difference between understanding
> HTTP or SMTP or P2P-protocol-du-jour and understanding the
> application-level protocol running on top of HTTP. There hasn't been any
> need for these proxies to understand OAuth 2.0 thus far.
>
> [1]:
> https://origin-symwisedownload.symantec.com/resources/webguides/sslv/45/Content/Topics/troubleshooting/Support_for_Client_Cert.htm
> –
> Annabelle Richard Backman
> AWS Identity
>
>
> On 12/1/19, 7:41 AM, "Torsten Lodderstedt"  40lodderstedt@dmarc.ietf.org> wrote:
>
>
> Annabelle,
>
> > Am 27.11.2019 um 02:46 schrieb Richard Backman, Annabelle <
> richa...@amazon.com>:
> >
> > Torsten,
> >
> > I'm not tracking how cookies are relevant to the discussion.
>
> I’m still trying to understand why you and others argue mTLS cannot be
> used in public cloud deployments (and thus focus on application level PoP).
>
> Session cookies serve the same purpose in web apps as access tokens
> for APIs but there are much more web apps than APIs. I use the analogy to
> illustrate that either there are security issues with cloud deployments of
> web apps or the techniques used to secure web apps are ok for APIs as well.
>
> Here are the two main arguments and my conclusions/questions:
>
> 1) mTLS it’s not end 2 end: although that’s true from a connection
> perspective, there are solutions employed to secure the last hop(s) between
> TLS terminating proxy and service (private net, VPN, TLS). That works and
> is considered secure enough for (session) cookies, it should be the same
> for access tokens.
>
> 2) TLS terminating proxies do not forward cert 

Re: [OAUTH-WG] [UNVERIFIED SENDER] Re: New Version Notification for draft-fett-oauth-dpop-03.txt

2019-12-02 Thread Richard Backman, Annabelle
> Session cookies serve the same purpose in web apps as access tokens for APIs 
> but there are much more web apps than APIs. I use the analogy to illustrate 
> that either there are security issues with cloud deployments of web apps or 
> the techniques used to secure web apps are ok for APIs as well.

"Security issues" is a loaded term, but if you mean that there are practical 
risks that are not addressed by bearer tokens (whether they be session cookies 
or access tokens) then yes, I think we both agree that there are. Otherwise we 
wouldn't be discussing PoP, sender-constrained tokens, etc. TLS-based solutions 
mitigate some risks, while leaving others unmitigated. Depending on your use 
case and threat model, these risks may or may not present practical threats. 
For my use cases, they do.

Ultimately I'd like to mitigate these risks for both service APIs and web 
applications. My focus is on service APIs for a couple reasons:

1. Interoperability is more important when the sender and recipient aren't 
necessarily owned by a single entity. I can do proprietary things in JavaScript 
if I want to just as I can in client SDKs, but this breaks down if my API 
implements a standard protocol and is expected to work with off-the-shelf 
clients and/or implementations from other vendors.

2. Web applications are just a special subset of service APIs that happens to 
be accessed via a browser. A solution for service APIs ought to be reusable for 
web applications, or at least serve as a foundation for their solution.

>- Have you seen this kind of proxies intercepting the connection from 
> on-prem service deployments to service provider? I’m asking because I thought 
> the main use case was to intercept employees PC internet traffic.

I'm working from second-hand knowledge here, but like most things in the 
enterprise world, it depends. Separating employee device outbound traffic from 
internal service outbound traffic requires some level of sophistication, be it 
in network topology, routing rules, or configuration rules on the TLIS 
appliance. 

>- Are you saying this kind of proxy does not support mutual TLS at all?

From what I understand, at the very least mTLS is not universally supported. 
There may be some vendors that support it, but it's not guaranteed. The 
documentation for Symantec's SSL Visibility product [1] indicates that sessions 
using client certificates will be rejected unless they are exempted based on 
destination whitelisting (which is problematic when the destination may be a 
general-purpose cloud service provider).

> On the other hand, I would expect these kind of proxy to understand a lot 
> about the protocols running through it, otherwise they cannot fulfil their 
> task of inspecting this traffic.

Maybe, maybe not. In any case there's a difference between understanding HTTP 
or SMTP or P2P-protocol-du-jour and understanding the application-level 
protocol running on top of HTTP. There hasn't been any need for these proxies 
to understand OAuth 2.0 thus far.

[1]: 
https://origin-symwisedownload.symantec.com/resources/webguides/sslv/45/Content/Topics/troubleshooting/Support_for_Client_Cert.htm
– 
Annabelle Richard Backman
AWS Identity


On 12/1/19, 7:41 AM, "Torsten Lodderstedt" 
 wrote:


Annabelle,

> Am 27.11.2019 um 02:46 schrieb Richard Backman, Annabelle 
:
> 
> Torsten,
> 
> I'm not tracking how cookies are relevant to the discussion.

I’m still trying to understand why you and others argue mTLS cannot be used 
in public cloud deployments (and thus focus on application level PoP).

Session cookies serve the same purpose in web apps as access tokens for 
APIs but there are much more web apps than APIs. I use the analogy to 
illustrate that either there are security issues with cloud deployments of web 
apps or the techniques used to secure web apps are ok for APIs as well.

Here are the two main arguments and my conclusions/questions:  

1) mTLS it’s not end 2 end: although that’s true from a connection 
perspective, there are solutions employed to secure the last hop(s) between TLS 
terminating proxy and service (private net, VPN, TLS). That works and is 
considered secure enough for (session) cookies, it should be the same for 
access tokens.

2) TLS terminating proxies do not forward cert data: if the service itself 
terminates TLS this is feasible, we do it for our public-cloud-hosted 
mTLS-protected APIs. If TLS termination is provided by a component run by the 
cloud provider, the question is: is this component able to forward the client 
certificate to the service? If not, web apps using certs for authentication 
cannot be supported straightway by the cloud provider. Any insights?

> I'm guessing that's because we're not on the same page regarding use 
cases, so allow me to clearly state mine:

I think we are, we are just focusing on different ends of the TLS tunnel.