Starting January 4 Google will block sign-ins from embedded browser frameworks
lists.webkit.org
lists.webkit.org
Want to sign in to Google? Use one of the selected browsers with a significant, existing market share.
But first though, are you actually human? Let's see if your browser is compatible with our reCAPTCHA service. [0]
Oh, you wanted to watch something on Netflix? I hope your browser is approved by Google for DRM playback. [1]
[0] https://twitter.com/bcrypt/status/1320410639244746753
[1] https://blog.samuelmaddock.com/posts/the-end-of-indie-web-br...
In an ideal world the Android/iOS framework would enforce that an insecure embedded webview has a distinguishing User-Agent or some other tell that Google can check. A standalone browser wouldn’t have that and in theory wouldn’t be caught up by Google’s enforcement of this. That’s how it should work, but it unclear to me if that’ll actually happen.
Right, but what are the chances google will allow people to sign up with their own user agent with their new browser engine? Or even if that was a feasible thing for them to do, why should _they_ be able to gatekeep that? The security argument is valid, but there should be some web standard or something to address that, not google deciding who gets to read their email depending on the browser they use.
If you think about it, you'll quickly end up in a briar patch of confusion over what exactly the definition of a "browser" is. Google have attempted to provide a definition here which is better than most, but it's basically a subtractive definition. A browser is a thing that supports "modern web standards" whilst not supporting automation features. OK. What about extensions?
The intent is to ensure that only people can sign in when they understand which site they're on. If anyone can define any program as a browser you can't enforce that and would have to allow unlimited automation of web sites. That is too hard to do, purely server side content analysis algorithms don't get you far enough, hence CAPTCHAs and now this JavaScript based enforcement.
Wouldn't sign up be a better enforcement point than sign in?
(For the record: I vehemently disagree with the idea of dictating what browsers are allowed to use an online service.)
- Beaker https://github.com/beakerbrowser/beaker/issues/1749
- Min https://github.com/minbrowser/min/issues/868
- Agregore https://github.com/AgregoreWeb/agregore-browser/issues/65
From what I can tell, it's really any browser not well known by Google.
If he removes the UA spoofing, all Google sites break because Google use this to determine if they run their services (which is incredibly weird to me).
If he doesn't, then his browser is banned. Somewhat of a double bind.
The most charitable explanation here is that Google is a megacorp now, and the right hand and left hand are on different continents and aren't aware of each others existence.
Google shouldn't wield the power to decide which browsers are worthy enough to access the larger internet they have control over. It's antithetical to the open web.
Merely restricting their own sign-in service impacts over 1.5 billion people. Of course, most are unaffected.
I think I've already seen one app that did that to me. It was clunky and broke the illusion that the app was native -- though I guess that's a pretty thin illusion anyway.
Though I guess Google will probably exempt themselves from this policy...
Stated intention. Unless you can read minds.
“The browser must identify itself clearly in the User-Agent. The browser must not try to impersonate another browser like Chrome or Firefox.”
Which is a bit funny considering that Chrome impersonates Mozilla, Safari, and Gecko! (As do all browsers)
Chrome’s User-Agent for reference:
“Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36”
Spoofing other browsers is a long standing tradition. Funny to see Google trying to forbid it. Here’s a great history on User-Agents: https://webaim.org/blog/user-agent-string-history/
Found an article: https://www.zdnet.com/article/google-to-phase-out-user-agent...
I've found apps launching login screens in their own embedded browser windows difficult to verify aren't phishing, since they usually don't even show a URL bar, and obviously, could fake it.
I can't say I disagree with the expectation you launch a real browser for OAuth purposes, though it's key they support all real general purpose web browsers.
However, the server-side code for the phish now has a problem. The user may be protected by two-factor authentication. To handle that case, the PHP script or whatever needs to step through the login process in the same way a browser would. Google have tech that can make it very, very hard for this PHP script to do that (it's called BotGuard). So the next move is that the phishing site needs to use an embedded browser to try and evade BotGuard's detections. Then it can obtain the necessary codes to trigger the 2-step verification challenge and intercept the number sent to the user's phone, and finally complete the login to obtain session cookies before storing them and redirecting the user to the real google website (so they don't suspect anything).
There are ways BotGuard can detect embedded browsers apparently, as they specifically say they will ban CEF and embedded internet explorer. But if you do that then people who use the embedding features to make their own browsers are out of luck. It's really tricky because it's hard to see how you can get critical mass for a new browser if you're limited to OAuth (which is meant for APIs). You'd have to get in touch with Google somehow and ask them to whitelist your browser. If they're sharp and fast about that even for new or hobby browsers then maybe this won't be so bad. If they get jammed up in product management bureaucracy and don't whitelist browsers fast enough, it could turn into an anti-trust issue for them.
It seemed like they were planning to enforce it a long time ago. Perhaps they let the deadline slip to give developers more chance to adapt.
Preventing legitimate users that use different browsers is not good behaviour. One company shouldn't be able to control the web this way.
If they wanted to add a warning about a particular security issue in a browser, OK, but this blocks them outright.
You'll also know that you have fight captchas in Firefox, but rarely in Chrome. It's not right!
Agreed. Yet that’s exactly what they’re trying to make use of here.
“The browser must not try to impersonate another browser like Chrome or Firefox.”
Option 1: Remove UA spoofing, presumably Google will allow sign-in. However, Youtube and Gmail won't work.
Option 2: Keep the UA spoofing, lose ability to sign in to Google.
There's literally no way to comply.
This is super, super anti-competitive, and I guess I'll have to figure out which MEP/Commission person I need to complain to (as they appear to be the only regulator likely to care).
They're talking about their own services that they require accounts for here, not "the web", or even general search, AFAICT. You can still use google, you just can't log in using an app they aren't sure is trusted, for user security. Google goes a great many problematic things these days, but I'm not sure this is one of them.
You could keep a trusted browser around and use it just for authenticating and getting a token. That's all they care about here, that they have a certain base level of assurance that you aren't being directed through an application that can steal credentials.
s/app/browser, though.
Effectively and strongly kneecapping any new browser competition.
And any new browser competition has been kneecapped in that way by recaptcha for a long time already. You either deal with the web being less convenient because you've opted somewhat out of the easy path presented you (like I do, with Firefox and many container tabs), or you don't use Google services, or accept the easy path of Chrome and Google services together.
We're talking about convenience here. Google makes it convenient and more secure (from others) to use their applications and services together. I'm not going to begrudge them making something harder to do it a way they think is worse for them as a company as long as they still leave it possible. That's better than you'll get from Apple.
This is true, I hate that this is true, and I hate that there's very little to be done about it.
I use Firefox for ideological reasons, and last week got off my ass and ensured all my documents (from Dropbox), music (from Google Music / now the inferior YT Music) and photos (from Google Photos) were stored in a way I could control. My plan going forward is to use an old laptop running Syncthing as my primary source of truth for files. Email is next (but more complicated since I don't want to self-host it).
It helps me personally to take Stallmanesque approaches to managing my digital life. And if Google continues to get more and more restrictive I have the technical acumen to find or make alternatives—or figure out how to do without. But I'm worried about the growing number of non-technical users who are increasingly dependent on technology and—startlingly—increasingly less technical. People who only use Google Docs on their phone and a laptop have no reason to understand that documents correspond to files on disk that can be edited by programs running locally.
It more and more seems like the future is tech oligopoly with more and more subscription fees. What else could happen once a generation has been trained to only use Approved Tools running on Approved Servers?
Seriously, what are you ranting about here? What does what you write have anything to do with a fundamental security requirement?
I'm a big Firefox fan and I don't love google, but this is your standard hn 'circlejerk' of bashing google because google bad. Just like every single Amazon thread, regardless of topic, devolves into "yeah but comingling"
Google can be bad and still do the right thing for user privacy. In my opinion, they did just that.
I call it prudent.
But I agree, this will make me correct my last bits of Google-use.
It's just like Microsoft in the 1990s.
Any developer who values open computing (open source software or hardware, general purpose computers, running whatever programs you want, working around DRM, owning your own data) should be avoiding systems, tools, services and devices designed by companies like Google, and recommending the same to friends and family. Google does not have our interests at heart.
This is essentially what the embedded browser context is doing in an automated way. My guess is there's a way to manually do this already, or there will be soon.
The main thing they are trying to do here is make sure the login process is secure as they can make it. I think there's a non-negligible increase in security by requiring somewhat trusted applications to make the request.
This requirement locks you in to using one of the major players until the end of time.
There are reasons why Google doesn't just want to allow any curl request to authenticate a user, and those are valid reasons I agree with. Do those apply to a browser like Epiphany? Probably not, but there's a spectrum along which things will fall, and people will not always agree on where those things belong on that spectrum, and some things may be initially excluded purely on popularity, but that might be an easy problem to fix. Asking is pretty low effort.
Then again, I'm not sure how he would reach out. Google is infamously hard to contact, particularly in these sorts of situations where you're a victim of the AI.
So as soon as one such webview-based browser gets added via this hypothetical petition process, what's to stop the Evil Nasty Malware (tm) from using the same webview library? The email's author worries about needing their webview-based browser to maintain JS engine and TLS ciphersuite equivalence with an approved browser, but that becomes trivial if the exact same webview library can be used by an approved browser and the Evil Nasty Malware.
It seems to me that allowing even a single webview-based browser would go against what Google is trying to do.
> It seems to me that allowing even a single webview-based browser would go against what Google is trying to do.
I agree. Other than it being weird to ask/need the system to use a different browser than you are using, and possibly a different browser than what you've set as default if you've set it to one Google doesn't trust for auth, nothing prevents any webview browser from acting like any other webview, and outsourcing to Chrome or Firefox for the authentication to get a good token, as long as you can use a token for full Google account login (which I don't know if you can).
Okay. So using a browser library for building a browser is a shortcut, and that disqualifies it from being a "full" browser. Of course one of the fundamental tenets of software is to not reuse other people's work. Silly me.
brb writing my own browser called Chremium and petitioning Google to allow it. Apart from that I'll also publish a library that uses the guts of Chremium, called the Chremium Ombodded Framework, which can be embedded in other applications.
Of course any application that uses the COF is indistinguishable from Chremium itself, but Google won't then distrust Chremium because it can't distinguish it from COF any more, right?
Many properties of programs are composable. Security isn't one of them. Embedded browsers sniffing credentials is an observed threat to real users.
Using an off-the-shelf library to provide core browser functionality disqualifies it from being on a list of browsers that do not use and off-the-shelf library to provide that functionality, yes.
I didn't say it wasn't a full, browser, so please to imply that I did, I said it was a shortcut to providing a full browser (which implies it is a full browser), and it is a shortcut compared to writing one from scratch.
Bottom line, if you write software utilizing libraries in a way that is extremely close or identical to a way that other software does and that method is being blacklisted for security, expect problems. It's the same for interpreted code and app stores. For security they don't want programs that can change how they function after review, so they often disallow interpreted code and downloading code to run, and in Apple's case, require their own webview library to view remote sites because of this. They don't even allow a set of other valid webview libraries, they just draw a line in the sand and say "ours only".
> Of course any application that uses the COF is indistinguishable from Chremium itself, but Google won't then distrust Chremium because it can't distinguish it from COF any more, right?
Probably. Seems like a bad business plan to follow in your snarky alternate reality. A better one might be to figure out how Google disambiguates Safari from the iOS webview, Chrome from the chromium webview, etc, and follow the same path. You might have had to trade some of the snarkiness in your example for reality, in that case.
Epiphany uses Webkit-GTK. In a certain sense of the word, this is indeed an off-the-shelf library, but only in the same sense that Google Chrome uses off-the-shelf Blink. Epiphany a major contributor to Webkit-GTK, and one of its largest users.
Should Epiphany ban everyone else from using Webkit-GTK? I don't actually think they can, it's all open source after all.
> A better one might be to figure out how Google disambiguates Safari from the iOS webview, Chrome from the chromium webview, etc, and follow the same path.
Google is probably doing some kind of ridiculous obfuscated fingerprinting. I don't know that it's viable to work around something like that without cooperation from Google. It would be a constant cat-and-mouse game, with Google having the upper hand.
And yet nobody would accuse Google of this. The reason why is actually the same reason why that comparison doesn't make sense. Chrome and Blink are separate projects in name only, to allow for an easier separation of concerns so people can use Blink, but really they are part of the same thing.
> I don't know that it's viable to work around something like that without cooperation from Google. It would be a constant cat-and-mouse game, with Google having the upper hand.
I wasn't suggesting figuring out what they were doing so you could fool them, I was suggesting figuring out what they were doing so the same separations could be attempted and they could be petitioned for inclusion. Of course they're going to try to block a browser that tries to circumvent their detection of browsers to increase security, all anyone does by attempting to circumvent that is confirm they are the group Google are attempting to block, or at least aligned.
What this announcement really is is Google saying you need to use an authentication app to log in to their services, and that app happens to be Chrome, Safari, Edge or Firefox. People might already be using those and not notice, and other people might need to install those to authenticate. This doesn't even affect search. I'm having a hard time getting worked up about people not being able to use whatever random software they want to work as an authentication tool for Google's services. Don't use Google's services or just use one of those browsers to authenticate, problem solved.
If you're on macOS, sure, it's pretty obvious what's a WebView, because Apple explicitly uses the term, and it's their OS. The distinction is one of language rather than technology, but it's a valid distinction nonetheless.
On Linux, I don't think the distinction exists. Webkit-GTK is the Linux port of Webkit, and it can be used for anything.
I'm saying that if they allow even a single new webview-based browser, that would implicitly also allow any program using said webview library. This is the opposite of what Google wants.
Therefore the only logical conclusion is that Google will not allow any webview-based browsers.
In https://news.ycombinator.com/item?id=25156594 kbenson clarified that they think Google should not allow any webview-based browsers regardless of whether this hypothetical petition process exists or not. I responded by pointing out how this distinction does not help in any way, because even a new browser written from scratch that gets allowed by Google can then turn around and implement a webview library based on itself anyway.
My point is that this entire thing that Google is apparently trying is nonsensical. Maybe it works for phones, where "malware" (ie alternative browsers) can't easily change whatever Google is looking for in the HTTP requests (user-agent header, etc) to identify webview-based browsers vs the few they chose to allow. But it doesn't make sense for regular PCs. Anything an allowed browser can do, "malware" can mimic.
Actually, there is one way that it'll work on PCs too - if every google.com website starts using DRM. I almost look forward to that just because of the carnage that will occur in response.
Ah yes, once there were standards and committees, now you have to beg the power that be to let you in. Brilliant.
This is for login to a Google account, just plain searching on google.com or viewing a video on Youtube. We can complain about web standards all we want, but this isn't access to the open web we're talking about here, it's access to Google's service ecosystem that requires a Google account, and them gating that however they want is their prerogative.
Except for workarounds, I can't watch age restricted youtube videos without an account. And even for normal content, youtube wants me to log in very often. I have to decline all the time. I fear that youtube will be authwalled eventually like instagram and similar services.
Don't all major browsers have such automation features? Sounds like everything is illegal, including password managers and accessibility tools.
If they are really blocking password manager extensions, then they can expect far less google logins from me.
It is very annoying, Google announced it well ahead of time, but in general just doesn't care. They suggest the browser integrate with external auth options as if I want to customize my browser for Google auth.
They're actively fighting certain user agents with secret heuristics after having people create/need Google accounts for lots of things. Bastards.
I imagine using normal raw Chromium will continue to work just fine.
I dunno. I think the situation where a company made a framework explicitly for embedded WebViews is a little different than what's happening with Epiphany.
Edit: I wonder if this is intended to be an attack on browsers like Ungoogled Chromium that Google doesn't like? (https://github.com/Eloston/ungoogled-chromium)
Enforcing that OAuth is handled in a browser controlled directly by the OS is the right thing to do.
I'm confused, how does "this browser is not supported" translate into "this request is coming from a third party server"? Can't a third party just use whatever browser is supported to send the request?
FIFY
As the user, I fully trust my Epiphany browser.
Can't Chrome do this via Chrome extensions?
You can also do full automation with Chrome's remote debugging API without installing anything (it's just websockets)
Instead, you need to call users' default browser (Firefox, Chrome, whatever they have) and it'll return back with the token. Just like OAuth on desktop.
It's much, much safer, because the app can't see or hijack the login process - it doesn't get access to the login form and can't phish you with it.
The utter ignorance in comments here is really depressing, what happened with HN?
(Edit: Additional context: in follow-up replies, they seem to have tested it by sending a header to try the changes early, and as of now it doesn’t appear to break things. I have not read the entire thread; folks should check the replies though.)
> Google says: "The browser must identify itself clearly in the User-Agent. The browser must not try to impersonate another browser like Chrome or Firefox." We cannot comply with this because user agent spoofing is required for compatibility with various Google websites.
The author is concerned that Google will become increasingly aggressive about detecting alternate browsers, since it's clearly against the rules and they certainly have the capability.
Everyone remembers the User-Agent for Chrome starts with "Mozilla/5.0" right? It has always impersonated another browser for compatibility reasons. For so long that we take this for granted now.
https://webaim.org/blog/user-agent-string-history/comment-pa...
> The browser must not provide automation features. This includes scripts that automate keystrokes or clicks, especially to perform automatic sign-ins.
Automating keystrokes and/or clicks could absolutely be necessary for accessibility.
If this happened in the 90s, would we ever have had Mozilla? Would tabbed web browsers exist?
If something can't be accessed by any standards-conforming client, then it isn't the web.
Not using google chrome is itself an edge case. That's kinda part-and-parcel with monopolistic predatory behaviors.
You should remind yourself what the Chrome user-agent string actually is.
But user beware, you can't login to any Google account using it since they disallowed it.
Not really. On non-sandboxed platforms (eg. windows or mac) it does nothing because the program already has full access to the operating system. It could very keylog the password as it's being entered into the "real" browser. Regardless of whether it's sandboxed, it could also launch a phoney "real" browser (ie. custom build of firefox/chrome that has keylogging logic built into the browser itself), and keylog using that. I'm not sure how that can be detected.
What if you are the author of the "app" and its sole user?
That's what is being threatened, other browsers. Google is throwing its weight around to try and enforce browser standards that are bad for a lot of people. Just like with amp.
> It's much, much safer, because the app can't see or hijack the login process - it doesn't get access to the login form and can't phish you with it.
Apps that try this shouldn't be running on your computer. This is not much safer, it's negligibly safer with a significant cost.
> The utter ignorance in comments here is really depressing, what happened with HN?
The irony.
Is it? Oauth regularly opens Safari on mobile and Firefox on OS X for me; it's not clear that this move itself is forcing users to chrome per se.
If they're blocking non-popular browsers, that's obviously a problem. But if they'll let users open Firefox or Safari, then it seems fairly obvious to me that this is a mistake more than a sinister plan to drive Chrome adoption forward. After all, if they were trying to drive Chrome forward why would they push me more towards Safari?
It was easier to just pay a couple dollars a year to a different service that prioritizes having a working API.
Workflows already exist where an app shows an embedded login page. Users have already become accustomed to it. A malicious developer trying to phish in that flow will just substitute a self-hosted or local simulation of the Google login form. Worst case, you pretend there was an error and punt the user to "backup login" in a real browser to now blow your cover. This won't prevent such scams.
If they had made the decision several years ago, they might have been able to say "We've never and never will supported this type of login flow; if you see it, it's a scam" and managed expectations on a going forward basis. But now you're stripping functionality without a clear user-facing notification that embedded logins are suspicious. Is there even a reasonable way to convey that info to most potentially impacted users today?
Of course, that doesn't solve the problem of dividing the world between "real" and "embedded" browsers, but that's another story. Again, if this wasn't a regression, it would be more forgivable. I can accept that the full Google experience won't work on other unsupported environments (say, the web browser packed in with OS/2), but it's not like those worked yesterday but not today as a policy choice.
That doesn't work because Google login is multi-step. Just stealing a password isn't enough, then you need to log in with it. They have anti-hacking systems and two factor auth to stop that.
If the app uses a webview to connect to its own brand of oauth, that isn't affected.
But since Firefox is also now supporting chrome remote debugging protocol, it might be possible to swap chrome headless for Firefox, if your use case involves that. For example, automation, testing or remote browsers.
Which sounds like it really leaves our Google users up shit creek without a paddle. :(
_The way it does OAuth_, is by opening a google sign in in an embedded browser, and then catching the API key in the redirect by intercepting the navigation in the embedded browser.
It's not a browser session cookie, but it does require the user to log in. To replace this and use the desktop browser, thunderbird would have to spin up a web server, and I'm not sure what restrictions Google have about TLS on redirect targets, which may be problematic to spin up a trusted TLS server on arbitrary end user devices.
They could of course set up a centralised service to echo the token back to end users, but this seems likely to be even higher risk of the service stealing your oauth tokens and less trusted by those types of users still using a desktop email client.
Generally it's implemented with a custom URI scheme (that the target application is registered for) or a loopback ip address.
[0] https://developers.google.com/identity/protocols/oauth2/nati...
Also put tab to sleep once it’s out of focus.