#853: HTTPS Upgrades

Visit on Github.

Opened Jun 7, 2023

こんにちは TAG-さん!

I'm requesting a TAG review of HTTPS Upgrades.

Browsers may still make insecure HTTP requests to HTTPS-enabled sites, unnecessarily exposing data over unencrypted connections. Some browsers ship with lists of sites that are known to support HTTPS, beyond those already in the HSTS preload list. Maintaining such a list is opaque, as it requires web crawler data, and error prone, as it will necessarily be out of date by the time it is shipped to users. It can also be bandwidth intensive, containing thousands or millions of sites that need to be updated. HTTPS Upgrades proposes that the browser should automatically and optimistically upgrade all main-frame HTTP navigations to HTTPS, with fast fallback to HTTP.

Further details:

  • I have reviewed the TAG's Web Platform Design Principles
  • Relevant time constraints or deadlines: We are hoping to experiment/ship in Chrome 115 which is being released to Stable on July 18.
  • The group where the work on this specification is currently being done: WHATWG
  • The group where standardization of this work is intended to be done (if current group is a community group or other incubation venue): WHATWG
  • Major unresolved issues with or opposition to this specification:
    • mkwst@ flagged that we should consider specifying the upgrade/fallback as synthetic redirects to more closely align with our implementation (similar to an outstanding Fetch issue on HSTS)
    • There is no previously defined concept for "non-unique hostnames" in Fetch or URL specs, but Chrome exempts these hostnames from HTTPS Upgrades (as they are very unlikely to support HTTPS and can be a source of breakage especially in enterprise configurations). One option would be to give a fairly generous affordance to UAs to exempt hosts as they see fit. Another option would be to try to specify this more robustly so we could align cross-UA on exempting these kinds of hosts.
  • This work is being funded by: Google Chrome

You should also know that...

This feature is implemented and can be tested in Chrome Canary/Dev/Beta by enabling chrome://flags#https-upgrades. It uses the same underlying code as Chrome's "HTTPS-First Mode" which can be enabled in chrome://settings/security by toggling the "Always use secure connections" setting.

We'd prefer the TAG provide feedback as:

💬 leave review feedback as a comment in this issue and @-notify @christhompson and @dadrian

Discussions

2023-07-mos-eisley

Minutes

Neither of us is the right person to look at this; skipping.

2023-08-28

Minutes

Yves: I wrote a commnent here... On local network you might not have https enabled devices - or https enabled sevrers that answer something different with http... in that case it's likely that you don't want to upgrade... They said they will use what's defined in "private network access"... I proposed a way signal a http response request that you can have on a server to signal "the http content is different"... it's not a downgrade. Otherwise, yes - everything that allows more more https is great...

Peter: I agree with your suggestion on a header - it would not cause someone who connects on https to drop to http - but it would block an automatic upgrade - makses sense.

Dan: such a header is defined?

Peter / Yves: no

Yves: they would run this feedback by the http working group in any case.

Peter: downside of such a header - running different content on http / https is an anti-pattern - we don't want to encourage it - but it exists...

Dan: devices that are not going to get upgraded...

Peter: right - and won't get this header therefore...

Yves: I think we can close now - we expressed a view - we expressed feedback - please run this by ieft working group. Etc...

Dan: close / satisfied

Yves: will leave feedback