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

Clarify not arming PTO for ApplicationData before completion #3486

Merged
merged 4 commits into from
Mar 10, 2020

Conversation

ianswett
Copy link
Contributor

Clarifies exactly what the implications of not arming PTO for ApplicationData prior to handshake complete.

This came from a discussion with a coworker who read the transport and recovery drafts, but not TLS.

Clarifies exactly what the implications of not arming PTO for ApplicationData prior to handshake complete.

This came from a discussion with a coworker who read the transport and recovery drafts, but not TLS.
@ianswett ianswett added editorial An issue that does not affect the design of the protocol; does not require consensus. -recovery labels Feb 27, 2020
ApplicationData prioritizes completing the handshake and prevents the server
from sending a 1-RTT packet on a PTO before before it has the keys to process
a 1-RTT packet.
ApplicationData prioritizes completing the handshake and prevents the client
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just to clarify a bit more and clean up the run-on sentence.

ApplicationData prioritizes completing the handshake, prevents the client
from sending a 0-RTT packet on a PTO before it knows the server has accepted
0-RTT, and prevents the server from sending a 1-RTT packet on a PTO before
before it has the keys to process a 1-RTT acknowledgment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Accepted

ApplicationData prioritizes completing the handshake, prevents the client
from sending a 0-RTT packet on a PTO before it knows the server has accepted
0-RTT, and prevents the server from sending a 1-RTT packet on a PTO before
before it has the keys to process a 1-RTT acknowledgment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

redundant before?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed, thanks!

@yangfanud
Copy link

Thanks! I think this is much clearer from implementation perspective.

Copy link
Contributor

@janaiyengar janaiyengar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some editorializing

Comment on lines 479 to 482
ApplicationData prioritizes completing the handshake, prevents the client
from sending a 0-RTT packet on a PTO before it knows the server has accepted
0-RTT, and prevents the server from sending a 1-RTT packet on a PTO before
it has the keys to process a 1-RTT acknowledgment.
Copy link
Contributor

@janaiyengar janaiyengar Feb 28, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ApplicationData prioritizes completing the handshake, prevents the client
from sending a 0-RTT packet on a PTO before it knows the server has accepted
0-RTT, and prevents the server from sending a 1-RTT packet on a PTO before
it has the keys to process a 1-RTT acknowledgment.
ApplicationData prioritizes completing the handshake, prevents a client from
retransmitting a 0-RTT packet on a PTO expiration before confirming that the
server is able to decrypt 0-RTT packets, and prevents a server from sending
a 1-RTT packet on a PTO expiration before it has the keys to process an
acknowledgement received in a 1-RTT packet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is a very long sentence.

Co-Authored-By: Martin Thomson <mt@lowentropy.net>
Comment on lines +479 to +482
ApplicationData prevents a client from retransmitting a 0-RTT packet on a PTO
expiration before confirming that the server is able to decrypt 0-RTT packets,
and prevents a server from sending a 1-RTT packet on a PTO expiration before it
has the keys to process an acknowledgement.
Copy link
Member

@martinthomson martinthomson Mar 10, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not arming the PTO for

Suggested change
ApplicationData prevents a client from retransmitting a 0-RTT packet on a PTO
expiration before confirming that the server is able to decrypt 0-RTT packets,
and prevents a server from sending a 1-RTT packet on a PTO expiration before it
has the keys to process an acknowledgement.
ApplicationData prevents a client from sending a packet on PTO unless the server
is able to acknowledge the packet.

Comment on lines +479 to +482
ApplicationData prevents a client from retransmitting a 0-RTT packet on a PTO
expiration before confirming that the server is able to decrypt 0-RTT packets,
and prevents a server from sending a 1-RTT packet on a PTO expiration before it
has the keys to process an acknowledgement.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
ApplicationData prevents a client from retransmitting a 0-RTT packet on a PTO
expiration before confirming that the server is able to decrypt 0-RTT packets,
and prevents a server from sending a 1-RTT packet on a PTO expiration before it
has the keys to process an acknowledgement.
ApplicationData prevents a client from sending a packet on PTO where there is uncertainty about the ability of the server to acknowledge the packet. This can happen before a client confirms that the server is able to decrypt 0-RTT packets, and also at a server before it has the keys to process an acknowledgement.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't only about the server acknowledging packets, so I think this isn't quite correct.

@ianswett ianswett merged commit 7a88436 into master Mar 10, 2020
@ianswett ianswett deleted the ianswett-clarify-complete branch March 10, 2020 23:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-recovery editorial An issue that does not affect the design of the protocol; does not require consensus.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants