Raise dynamic HSTS max-age cap to 2 years (or remove?) |
||||
Issue descriptionkMaxHSTSAgeSecs is currently 1 year [1]. I didn't know/had forgotten about this when I updated htspreload.org to include a recommendation for a max-age of 2 years [1]. That choice was basically due to two factors: 1. Many sites in the wild use max-ages up to 2 years; very few go higher. 2. If you visit a site roughly once a year, but not always within less than 1 year of the previous time, then 2 years provides value over 1 year. As an example for #2, imagine you do your taxes on a site that uses HSTS one year on Feb. 2, but next year on Feb. 20. And the variation could be significantly more – without thinking hard, I can provide evidence of a yearly event that changed from September to December in successive years [2]. Based on my scans of preloaded domains that send an HSTS header: - 4.4% of max-ages are <= 18 weeks - 30.8% of max-ages are <= 1/2 year - 65.5% of max-ages are <= 1 year - 98.4% of max-ages are <= 2 years See [2] for scans of the Alexa top 1M (2 years is common, but not relatively as common) and preloaded sites (roughly match my values above). Alternatively, Firefox and IE/Edge do not cap max-age for dynamic HSTS at all, without ill effects. At some point, exactly how large an HSTS max-age is doesn't really affect risk for the site owner (although it could affect a new site owner if the site changes hands). It feels weird for hstspreload.org to recommend a larger value for the dynamic header than Chrome will store, so I'd like to make the values match if it's not too much trouble. Considering the reasons above, I currently favor 2 years. rsleevi@, agl@, estark@: Any concerns about landing a simple CL to increase kMaxHSTSAgeSecs to 2 years? [1] https://cs.chromium.org/chromium/src/net/http/http_security_headers.h?type=cs&q=kMaxHSTSAgeSecs&sq=package:chromium&l=21 [2] https://www.worldcubeassociation.org/competitions?utf8=%E2%9C%93®ion=all&search=german+nationals&year=all+years&state=past&delegate=&display=list [3] https://github.com/chromium/hstspreload.org/issues/62#issuecomment-245797280
,
Feb 15 2017
,
Feb 16 2017
I have no strong feelings about 1 year vs 2 years, but I don't love the idea of not having any cap at all, in case of domain ownership transfer.
,
Mar 7 2017
,
Apr 26 2017
My personal preference (although not necessarily reflective of my employer) is that 2 years is a perfectly reasonable maximum. Given that Firefox has been unbounded for years without issue, I can't imagine there are that many sites impacted by the domain transfer problem. Worst-case scenario, they can always set max-age to 0 and redirect to HTTP. A possible compromise (if messy) might be to cap "includeSubDomains" subdomains at a lower maximum than the domain HSTS is specifically set on. So if I set HSTS to 2 years on pokeinthe.io with includeSubDomains, pokeinthe.io will be set for 2 years, but foo.bar.pokeinthe.io would be capped at 6 months. IIRC, issues with subdomains were typically the biggest problem with HSTS unpreloading requests.
,
Apr 28 2017
(I defer to sleevi and estark on this.)
,
May 9 2017
Sounds like the net vote of sleevi@ and estark@ is "keep at 1 year"? There have been very few domain transfer problems, and pruning should help keep a lid on them. We've also historically been unconcerned with these sites because HTTPS is pretty easy for a newly launching site to adopt these days. But we may start getting regular complaints in the future. If we keep 1 year as the Chrome cap, any objections for continuing to recommend 2 years to webmasters at hstspreload.org? In browsers that support more than 1 year, I think it's definitely a better choice for site security. > A possible compromise (if messy) might be to cap "includeSubDomains" subdomains at a lower maximum than the domain HSTS is specifically set on. An interesting idea; I hadn't thought of that. But I think the complexity would outweigh the benefit. Anecdotally, a lot of sites also find issues with their subdomains only once HSTS is in place for the parent domain, for which a faster subdomain timeout wouldn't help.
,
Jan 24 2018
CL to change to 2 years rejected: https://chromium-review.googlesource.com/c/chromium/src/+/884201.
,
Jan 25 2018
FWIW, Edge also does not have an upper bound on the max-age (or it's maxint or something similarly high), and they currently don't have plans to change it, although they expressed some willingness to reconsider if we thought it important. Also, it's notable that HSTS is hardly the only context where domain transfer is problematic... the browser doesn't expire cookies, cache, DomStorage, permissions, databases, etc upon transfer of ownership. |
||||
►
Sign in to add a comment |
||||
Comment 1 by rsleevi@chromium.org
, Feb 15 2017