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

Echo freshness #291

Merged
merged 7 commits into from Feb 22, 2021
Merged

Echo freshness #291

merged 7 commits into from Feb 22, 2021

Conversation

chrysn
Copy link
Member

@chrysn chrysn commented Oct 20, 2020

This is an initial rough and overly variable suggestion to address the issues discussed as a follow-up to the DTLS replay window comments.

The approaches all have their up- and downsides, and I'm not sure yet which are worth keeping.

  • The nice thing about ETag is that it should be largely uncontroversial in its semantics, well established, and resource specific. The only downside is that we'd have to mandate that the client send it every time, for otherwise there's no way of recovery. (And recovery is needed: Think of what happens if the client sends a request, the server updates the ETag and returns it with a response that gets lost. Client retransmits, but the request is idempotent and thus not deduplicated, and the client gets a 4.12. Or can that carry an ETag? It probably intends to tag a representation. And can the server 4.12 when ETag is missing?)

  • Echo is what we talked about in the last interim, and largely straightforward. It's really about freshness and not about resource state, and thus may need to play nicely with other users of Echo on the same server.

  • Introspecting OSCORE sequence numbers ... do we want to go there? (And if yes, can we do anything for DTLS where sequence numbers are usually not exposed through the libraries?)

    It wouldn't be fully without precedent because the sequence numbers are used to order observe notifications, and were under consideration (but insufficient for) atomic block reassembly. However, these were about CoAP options and not applications. How to tell the client to re-encrypt at seqno failure is open (although Echo:anything-but-the-current-value would practically suffice). Further questions arise when there are multiple OSCORE contexts all admissible for interaction with that resource.

  • Unique Registration Resource names are just in there for completeness, they don't give a full solution.

@chrysn chrysn marked this pull request as draft Oct 20, 2020
Christian Amsüss added 2 commits Feb 18, 2021
As announced in [1] (shaped by the discussion in [2]), this is picking
the Echo choice for what was previously a variety of options.

[1]: https://mailarchive.ietf.org/arch/msg/core/xWLomwwhovkU-CPGNxnvs40BhaM/
[2]: https://datatracker.ietf.org/meeting/interim-2020-core-11/session/core
@chrysn
Copy link
Member Author

@chrysn chrysn commented Feb 18, 2021

Now has text reflecting the decision to go with Echo.

Not something I'd consider handing out (ie. I haven't even had a second look after writing), but good enough to check into version control.

@chrysn chrysn marked this pull request as ready for review Feb 19, 2021
@chrysn
Copy link
Member Author

@chrysn chrysn commented Feb 19, 2021

Please review based, ideally based on the github delta at https://github.com/core-wg/resource-directory/pull/291/files. (The diffs of the rendered texts advertised on the github page are currently unreliable; won't investigate there before the cut-off).

Copy link

@gselander gselander left a comment

I only have little time before cut-off, but I've read the diff in question. Without knowing the details, the reasoning in the request freshness section looks right.

I didn't understand the basic assumption in the "skipping freshness checks" section:
Why can RD based applications be built in which request freshness checks are not performed (unless freshness is not required, in which case this isn't a problem)?

Please let me know what more I should do.

A syntax error: {{example-freshness}

@chrysn
Copy link
Member Author

@chrysn chrysn commented Feb 19, 2021

@petervanderstok
Copy link

@petervanderstok petervanderstok commented Feb 19, 2021

HI Chris,

thanks for all the work,
I am not quite familiar with the echo request and freshness concept.
Reading your text, I would assume that a full serialized approach would do.
That means the RD can only handle sequential accesses one after the other.

If you want more interleaving of request, some serializability algorithms should be applied. BUt that is very tme consuming.

Sorry, not being able to give mor reeasobnable feedback quickly.

Peter

@chrysn
Copy link
Member Author

@chrysn chrysn commented Feb 19, 2021

@chrysn chrysn merged commit 44d003e into master Feb 22, 2021
1 of 2 checks passed
@chrysn chrysn deleted the echo-freshness branch Feb 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants