Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parameter to indicate no HSTS-like behavior? #100

Open
enygren opened this issue Jan 14, 2020 · 6 comments
Open

Parameter to indicate no HSTS-like behavior? #100

enygren opened this issue Jan 14, 2020 · 6 comments

Comments

@enygren
Copy link
Collaborator

enygren commented Jan 14, 2020

In digging into production use-cases, there may be scenarios where the "HTTPSSVC means HTTPS-only" is problematic. For example, it may prevent a CDN from turning it on by default (as this means forcing everything to HTTPS-by-default which may not be possible for some customer content) which in-turns prevents turning on Encrypted SNI by default.

Leaving the HSTS-like behavior as the default makes sense, but this asks the question as to whether an optional "allow-insecure" parameter should be included (with the default still being secure). This opens up cans of worms from a security perspective but could ease deployment in some cases.

@bemasc
Copy link
Collaborator

bemasc commented Jan 15, 2020

I think I understand the problem. If a CDN has N customers who have CNAMEd their domains to a CDN domain, and some of those customers are using insecure HTTP and haven't provided the CDN with TLS certificates, then the CDN can't put HTTPSSVC on the domain. They would have to create a new, HTTPS-only domain, and ask customers to update their CNAME.

Technically, the CDN could acquire DV certs for all the customer domains, and upgrade them to HTTPS (at least between the client and CDN), but this could cause problems related to mixed-content blocking, if some of those customer domains load third-party insecure content that isn't hosted on the same CDN.

I think I would call this parameter "disable-https-upgrade", and continue to prohibit the "_http" prefix.

@davidben
Copy link
Contributor

Such a CDN would then cause all N customers to go through the allow-insecure path, right? That means the customers who don't update their CNAME would inadvertently get a less secure configuration, so one would still want everyone to update CNAMEs, but now with decreased incentive (but correspondingly more adoption of other bits of HTTPSSVC, so it's a tradeoff between adoption and getting the ecosystem in a better place).

@davidben
Copy link
Contributor

Given that it is 2020 and HTTPS is table stakes, I'm inclined to think this would not be the right tradeoff.

@MikeBishop MikeBishop added the wg This should be considered by the working group label May 29, 2020
@bemasc
Copy link
Collaborator

bemasc commented May 29, 2020

Possible compromise: disable-https-upgrade only applies if echconfig is also present. This is extremely hacky and I'm not sure I really like it, but it would ensure that this is only used in cases where HTTPSSVC is actually providing some benefit to someone.

enygren added a commit that referenced this issue Jun 11, 2020
Fixes #100 
Will want working group discussion before merging.
(End resolution may be to reject this.)
@martinthomson
Copy link
Contributor

What David said. I don't see any point in continuing to cater to unsecured protocols.

In the earlier example Ben provided, the CNAME that the mix of secure and insecure customers refer to doesn't need to be singular. You don't need new servers, just a separate CNAME target. That seems entirely workable.

@tfpauly
Copy link
Contributor

tfpauly commented Jun 23, 2020

Agreed. If you want a bad mix of security, that's your burden for deployment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants