Forgot to give contact information. Contacts are myself (abe...@chromium.org) and Bernhard Bauer (bau...@chromium.org)--On Wed, 8 Apr 2015 at 10:16 Anthony Berent <abe...@chromium.org> wrote:SummaryA number of third parties have requested that we add Kerberos support to Chrome for Android. Kerberos is a widely used security mechanism used to control access to computing resources. In particular, is widely used in corporate environments to give access to corporate resources, so implementing it in Chrome for Android would let authorized users access such resources from their phones and tablets.Kerberos is already supported on most other versions of Chrome.Ongoing technical constraintsNoneTracking bugDesign document
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
Two thoughts:
1) This doesn't seem to jive with the Android security model, at least as described. Any app with access to the Kerb account can get access to the TGT?
2) To get the TGT from the KDC, you need to have live connectivity to the KDC. This is extremely rare in most cases - it is why Kerberos as an authentication method is so flawed. I cannot see how Mobile makes this better, not worse.
There are plenty of alternatives for organizations to leverage alternative SSO solutions, both for PKINIT (use client auth) to password (pivot into OAuth 2.0/OpenID Connect/SAML). Organizations have been successfully deploying these solutions for (checks calendar) decades.
I'm not convinced that supporting a niche feature - a feature that will be nigh impossible to remove because it is impossible to gauge necessity of, and for which market economics will always make the remover the "bad person" due to taking away a feature - is a good thing.
Given the alternatives exist, given the very real issues that exist with Kerberos on mobile, I'd like to push back on this. Of course, my arguments are not one of technology - as we totally have the technology - but one of product direction and strategy.
--
You received this message because you are subscribed to the Google Groups "net-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to net-dev+u...@chromium.org.
To post to this group, send email to net...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAAuiYA-MxmsGLBvhLmjFpJYDOCwFqp7_sxBJgBKDXFZVm0ck%2Bg%40mail.gmail.com.
Two thoughts:
1) This doesn't seem to jive with the Android security model, at least as described. Any app with access to the Kerb account can get access to the TGT?
2) To get the TGT from the KDC, you need to have live connectivity to the KDC. This is extremely rare in most cases - it is why Kerberos as an authentication method is so flawed. I cannot see how Mobile makes this better, not worse.
There are plenty of alternatives for organizations to leverage alternative SSO solutions, both for PKINIT (use client auth) to password (pivot into OAuth 2.0/OpenID Connect/SAML). Organizations have been successfully deploying these solutions for (checks calendar) decades.
I'm not convinced that supporting a niche feature - a feature that will be nigh impossible to remove because it is impossible to gauge necessity of, and for which market economics will always make the remover the "bad person" due to taking away a feature - is a good thing.
Given the alternatives exist, given the very real issues that exist with Kerberos on mobile, I'd like to push back on this. Of course, my arguments are not one of technology - as we totally have the technology - but one of product direction and strategy.
2) To get the TGT from the KDC, you need to have live connectivity to the KDC. This is extremely rare in most cases - it is why Kerberos as an authentication method is so flawed. I cannot see how Mobile makes this better, not worse.
Why is this so rare? If you have connectivity to the HTTP server that requires Kerberos auth, why wouldn't you have connectivity to the KDC?
This mailing list isn't the right place to discuss product direction and strategy though :-/ Happy to go into details on an internal list or in private, but I can say that we have had requests for Kerberos support on Android from several sides, so this is definitely not a niche feature.
Hi Ryan,On Wed, Apr 8, 2015 at 5:03 PM Ryan Sleevi <rsl...@chromium.org> wrote:Two thoughts:
1) This doesn't seem to jive with the Android security model, at least as described. Any app with access to the Kerb account can get access to the TGT?The app would get a service ticket, not the TGT. The TGT never leaves the authenticator. It's true that any app can call the API, but the authenticator can find out the calling application and decide whether to return a token, return an error, ask the user for permission, or something else. This is pretty much the same as for Google accounts, I think.
So, backing up a bit, I am curious what exactly is meant by "Kerberos for
Chrome". I assume that it is intended to mean using Kerberos with
HTTP-Negotiate, which is wrapping Kerberos inside the SPNEGO GSS-API
mechanism, given the talk of AuthNegotiateDelegateWhitelist and such.
But, in this case, it is not *just* Kerberos which is possible, even if
that is what people are asking for. (It's also worth noting that
NTTP-Negotiate+SPNEGO is kind of a terrible hack; it violates both HTTP
semantics (connection-oriented instead of stateless) and syntax
(incompatible with WWW-Authenticate and Authorization header syntax).
However, it's what we've got.)
But, there are GSS-API mechanims other than Kerberos. In particular, Sam
Hartman and co. already have implemented a chrome plugin exposing GSS-API
support to javascript, with the main intent being to use the EAP GSS
mechanism. (Not using HTTP-Negotiate.) So, I think that some
consideration should be given to whether just Kerberos is to be supported,
or arbitrary GSS-API mechanisms. It would be a little sad/amusing if we
ended up making Chrome on Android leapfrog desktop Chrome in terms of
GSS-API support by going from no support to a fully-functional credentials
selector that allowed the user to control whether and which credentials
are used, though.
On Apr 8, 2015 2:55 PM, "Bernhard Bauer" <bau...@chromium.org> wrote:
>
> The problem is not "How do we solve SSO on the web", it's "How do we talk to a Kerberos server". There are existing organizations out there that have Kerberos installations, they want to use Chrome, and we want to make it possible for them to use Chrome with it.
I do think it is worth spending a little bit of time focusing on this. I wasn't answering "How do we solve SSO on the web", I was trying to challenge the "How do we talk" with "Should we?"
That is an intrinsic part of every discussion around features - If we do not solve the question in the way I see X wants, what alternatives are there, or what are the reasons for not doing this?
I still have fundamental concerns with the "should" portion - to some extent, we should apply the same criteria for all other features and bug requests.
As a perhaps cruel and unfounded example, you don't hear us asking "How do we help organizations use SHA-1 beyond 2017" - precisely because they shouldn't.
I don't mean that we should reject every request for features, just that we are transparent in asking "Is this the right thing?". For example, we don't want NTLM to continue to exist, but we support it now. We don't want it because it doesn't meet our security requirements and violates the transport layer semantics. But there are organizations that depend on NTLM and want it supported indefinitely - which we cannot and will not do.
> To come back to the questions that we can discuss in public:The technical cost here is relatively low, because Negotiate support is already implemented and we just need to plumb calls through to an Android API. The part about success and failure criteria I didn't really understand; success would be people implementing authenticators and users using it, and failure the opposite?
I have a different impression of the costs. You've seen some replies that detail the security costs (this is not as trivial as suggested if it is to be done securely), there are the integration costs (decoupling already complex code that is, by necessity of the feature, incredibly difficult to realistically test), the design costs (inherent to such a discussion), the API costs (coupling this to a Google-specific solution, when you can see there is clearly desire for an interoperable solution). It is a feature that doesn't have a well-defined time when we can remove it, which we eventually should want to do.
That is not to say we should block _experimenting_ with implementing and refining over time to see if it yields something valuable. However, I am concerned about this being the right technical solution to the problem, and I'm concerned that the upfront costs versus the value is worthwhile.
The question is "How much does this cost Chromium developers (to implement)" and " How much does this cost our users (in size costs, relative prioritization of other features, maintenance costs)" versus "How much does it cost these sites to adopt a solution that reliably works on the Web vs Kerveros". My gut is that the former outweighs the latter, which is why it bears asking whether there are alternative solutions that exist.
This is the same sort of question we ask when looking at all other features.
Again, I dont want to block implementing, just committing to it being the right solution or strategy for our users.
Ryan,Are your concerns specific to Kerberos, or do you believe that we should not support HTTP Negotiate authentication at all?
Although this work was motivated by requests for Kerberos support, in my current proposal everything I propose in Chrome, with possible exception of generating the SPN, could be applied to, and would be needed for, any use of the Negotiate protocol. In effect, all my proposal does to Chrome is provide a way for Negotiate authentication to use Android's token based authentication mechanisms. The actual Kerberos implementation (or other authentication mechanism) is in the third party authenticator.
On Thu, Apr 9, 2015 at 5:36 AM, Anthony Berent <abe...@chromium.org> wrote:Ryan,Are your concerns specific to Kerberos, or do you believe that we should not support HTTP Negotiate authentication at all?Supporting Kerberos on mobile is, to me, somewhat like supporting plugins on mobile. Yes, there may be people who ask for it, yes, it may be a good idea, but as a part of the Web platform, they're an antiquated, sometimes dangerous, generally complex technology with limited rewards and (generally) viable alternatives, even if those alternatives require work.
Promoting/encouraging Kerberos on the web, over techniques built on 'standard' (and yes, I'm aware HTTP Auth is a standard, but as David has noted, Negotiate/NTLM break as many of the requirements of the specs they're meant to extend as they can) technologies, seems to put it at a disadvantage for designing new devices and ways to access the Web.On a strategic Chrome level, it's probably entirely possible. But is prolonging Kerberos on the Web a good thing? Probably not.
Those concerns can be somewhat ameliorated by some of the security concerns that David was talking about re: the app - that is, it's very easy to botch the app security, so it really should be part of the threat model for Chrome to support something if it's going to expose a new attack vector to the web. Requiring that the authentication only work with a set of administratively whitelisted origins - as we do(ish) for Desktop and want to do more of - seems minimally consistent.Although this work was motivated by requests for Kerberos support, in my current proposal everything I propose in Chrome, with possible exception of generating the SPN, could be applied to, and would be needed for, any use of the Negotiate protocol. In effect, all my proposal does to Chrome is provide a way for Negotiate authentication to use Android's token based authentication mechanisms. The actual Kerberos implementation (or other authentication mechanism) is in the third party authenticator.Of course, I'm presuming that other authenticator apps can work? Or is this just for a Google Kerberos app?
There is a huge difference in the technical cost though. Plugins are incredibly difficult to support and greatly increase the attack surface of the browser. All we are doing is taking the existing code for Negotiate auth and plumbing it through to Java instead of calling GSSAPI in C++.