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

Don't mix secure and insecure schemes on a connection #188

Closed
enygren opened this issue May 31, 2016 · 3 comments
Closed

Don't mix secure and insecure schemes on a connection #188

enygren opened this issue May 31, 2016 · 3 comments
Labels

Comments

@enygren
Copy link
Contributor

enygren commented May 31, 2016

Using HTTP and HTTPS schemes on a single OppSec connection seems like asking for trouble, especially as the latter would be authenticated and the former might not. We should explicitly prohibit this (clients MUST NOT) and servers SHOULD presumably respond with a 4xx (421?) if mixing of schemes is detected. The exact vulnerabilities or ways to exploit are unclear, but mixing authenticated and unauthenticated (or secure and insecure) communications over a single TLS channel seems dangerous.

It may be reasonable to allow a server to advertise mixing HTTP and HTTPS under a strongly authenticated /.well-known/http-opportunistic (similar to commit), but mixing schemes shouldn't be the default.

@mnot mnot changed the title Don't mix secure and insecure schemes on a connection [opp-sec] Don't mix secure and insecure schemes on a connection Jun 2, 2016
@enygren
Copy link
Contributor Author

enygren commented Jun 2, 2016

From @martinthomson on http-gw:

This is reasonable. A boolean mixed-scheme member that has to be
true seems appropriate. It's cheap enough to warrant doing.

@mnot
Copy link
Member

mnot commented Jun 7, 2016

How about:

Because of the risk of server confusion about individual requests' schemes (see [ref to security considerations]), clients MUST NOT mix "https" and "http" requests on the same connection unless the http-opportunistic response's origin object [ref to http-opp section] has a "mixed-scheme" member whose value is "true".

... with an example, incorporated into "Interaction with "https" URIs".

?

@martinthomson
Copy link
Contributor

LGTM

mnot added a commit that referenced this issue Jun 21, 2016
@mnot mnot closed this as completed Jul 8, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

3 participants