MITM is still an issue. At some point I hope browsers can switch to "you have to type http:// if you want HTTP", and this is a step in that direction.
(Disclosure: I work for Google, speaking only for myself)
I only ask because I'm curious what this will do with captive portal nonsense.
Since it's only ever HTTP, it sidesteps the certificate errors or HTTP downgrades that normal sites are hit with during captive portal interception.
I am curious what happens to captive portals as HTTPS adoption rises. Some OS's (Android, OSX) already detect captive portals and launch a lightweight webview.
Based off my experience, more and more captive portals appear to be letting the requests the OS makes to captive.apple.com or whatever through but still try to present a captive portal to the user. I can guess as to the motivation, but as a user it's danged annoying.
It's a light funny page i've found about 10+ years ago but it's HTTP and helpfull for captive portals.
It makes sense to keep falling back to HTTP if that header is not set.
That makes sense only to programmers, who make a small fraction of users. Browsers are mainstream; we need to be more thoughtful.
https://en.m.wikipedia.org/wiki/Secure_Hypertext_Transfer_Pr...
To me it seems HTTPS _IS_ the MITM... namely the certificate authority!
Look I get it. It’s no fun when the whole class is punished because because bad actors exist. And it’s no fun when someone pressures you into doing something for the benefit of others but not yourself. But the internet is really really different from 20 years ago.
... and HTTPS on the public internet is a best practice. Your ISP should have no business sniffing your web traffic.
It's totally obvious to me that, once HTTPS is mandatory, the next step will be that Let's Encrypt will stop supporting websites that disobey their "content policy" or whatever. It will follow the usual course. First outright illegal things. Then today's "deadly sins" like racism. Then unpopular politicians. And then, whatever they want.
You are literally making a random organization into the censor of the web.
But, yes, HTTPS is a trust-rooted security model. It's hypothetically possible to have every cert provider decide you're not trusted. That's kind of in the category of "It's hypothetically possible to have every DNS provider decide you're not trusted" though.
If this is a concern, the solution is probably to come up with an HTTPS modification that allows for decentralized trust, not to set up the average use case of the web to "The user is trusting every machine between their client and the server to be reading their traffic and not acting maliciously on it." Tradeoffs, right?
In other words, something like the substack.com escape from the mainstream media won't work.
The article says: "For sites that don’t yet support HTTPS, Chrome will fall back to HTTP when the HTTPS attempt fails."
Yes, a MITM could block this access. This would be an active attack and thus detectable, which is fine if you're the Great Firewall and your existence is government policy but likely to be a problem for some other types of attacker.
In the passive attack case this is strictly better (previously a passive on-path attacker gets to see all the unprefixed URLs typed into a Google that didn't match an HSTS rule it knew, and with this change they do not) in an active attack nothing changes.
It's in the article!
"For sites that don’t yet support HTTPS, Chrome will fall back to HTTP when the HTTPS attempt fails."
I hope the slippery slope stops here though and HTTP will not be eradicated in browsers (in which case one would need corporate permission and approval to publish anything).
s_client or curl are not a suitable workarounds for the masses ...
1) Rather than auto-redirect, ask the user if they want to redirect
2) Force the user to type http://server/ to visit the server on http
Neither of those eradicates http.
EDIT: I see that the article says it will fall back, but Chrome Canary has options in chrome://flags, and it's not clear which option they picked.
> Omnibox - Use HTTPS as the default protocol for navigations
> Use HTTPS as the default protocol when the user types a URL without a protocol in the omnibox such as 'example.com'. Presently, such an entry navigates to http://example.com. When this feature is enabled, it will navigate to https://example.com if the HTTPS URL is available. If Chrome can't determine the availability of the HTTPS URL within the timeout, it will fall back to the HTTP URL.
The options are: Enabled, Enabled 3 second timeout, Enabled 10 second timeout, and Disabled.
So how will it work, exactly?