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

Add support for a hash-based Public Reset packet (#215) #20

Closed
wants to merge 1 commit into from

Conversation

ekr
Copy link
Collaborator

@ekr ekr commented Nov 23, 2016

The model here is that neither on-path nor off-path attackers should be able to forge one, but
that on-path elements should be able to validate the public reset.

neither on-path nor off-path attackers should be able to forge one, but
that on-path elements should be able to validate the public reset.
@mnot
Copy link
Member

mnot commented Nov 23, 2016

Hey EKR,

Could you please open an issue to track discussion on this? Pull requests might not be seen by some people. Thanks.

@ekr
Copy link
Collaborator Author

ekr commented Nov 23, 2016 via email

@martinthomson martinthomson changed the title Add support for a hash-based Public Reset packet. The model here is that Add support for a hash-based Public Reset packet Nov 28, 2016
@martinthomson martinthomson added design An issue that affects the design of the protocol; resolution requires consensus. -transport labels Nov 30, 2016
@martinthomson martinthomson added the needs-discussion An issue that needs more discussion before we can resolve it. label Jan 20, 2017
@ekr ekr mentioned this pull request Jan 24, 2017
@martinthomson martinthomson removed the needs-discussion An issue that needs more discussion before we can resolve it. label Feb 6, 2017
@martinthomson
Copy link
Member

This is currently pretty badly bitrotten, we'll need to revisit this once we get some of the other work in place. This is blocked on transport parameters and header changes.

martinthomson added a commit that referenced this pull request Apr 21, 2017
This takes ekr's design from #20 and expands on it quite a bit.  There are a
few little wrinkles that I think we might want to discuss a little.

First, this is a one-time password, so the combination of key and connection ID
can't ever be repeated for a given server instance.  Our 64-bit connection ID
space isn't really enough to provide this.  How a server moves to a new static
key during operation will be challenging; it probably needs to partition the
connection ID space.

Second, transport parameters are encrypted.  #20 made a point of having the
verifier in the clear so that intermediaries could validate the Public Reset.
martinthomson added a commit that referenced this pull request Apr 26, 2017
This takes ekr's design from #20 and expands on it quite a bit.  There are a
few little wrinkles that I think we might want to discuss a little.

First, this is a one-time password, so the combination of key and connection ID
can't ever be repeated for a given server instance.  Our 64-bit connection ID
space isn't really enough to provide this.  How a server moves to a new static
key during operation will be challenging; it probably needs to partition the
connection ID space.

Second, transport parameters are encrypted.  #20 made a point of having the
verifier in the clear so that intermediaries could validate the Public Reset.
@martinthomson
Copy link
Member

@ekr, can we close this in favour of #460?

martinthomson added a commit that referenced this pull request Apr 28, 2017
This takes ekr's design from #20 and expands on it quite a bit.  There are a
few little wrinkles that I think we might want to discuss a little.

First, this is a one-time password, so the combination of key and connection ID
can't ever be repeated for a given server instance.  Our 64-bit connection ID
space isn't really enough to provide this.  How a server moves to a new static
key during operation will be challenging; it probably needs to partition the
connection ID space.

Second, transport parameters are encrypted.  #20 made a point of having the
verifier in the clear so that intermediaries could validate the Public Reset.
@ekr
Copy link
Collaborator Author

ekr commented Apr 28, 2017

@martinthomson I don't care about the Github mechanics, but I think these are trying to address different design constraints, specifically, whether we want the public reset to be invisible to the middlebox. And if we do want that, then we should make it indistinguishable to the middlebox rather than labelled but unverifiable

@martinthomson
Copy link
Member

Possibly a more relevant question then: do you intend to update this to track the changes in the draft? I plan to update #460, which might mean making it publicly verifiable, or making the reset indistinguishable, or whatever the working group ends up with.

@ekr
Copy link
Collaborator Author

ekr commented May 1, 2017

I was hoping we would have a discussion of the design constraints in Paris and then we can design the crypto to suit. Would that work for you?

@martinthomson
Copy link
Member

Yep, that works perfectly. I was expecting that this would need to wait for Paris anyway.

@mnot mnot changed the title Add support for a hash-based Public Reset packet Add support for a hash-based Public Reset packet (#215) May 22, 2017
@martinthomson
Copy link
Member

Closing in favour of #20 based on discussion in Paris.

marten-seemann pushed a commit to marten-seemann/base-drafts that referenced this pull request May 22, 2018
Add max crypto data extension text
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants