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

QueryResponse without QueryRequest #40

Closed
dthaler opened this issue Jul 23, 2020 · 5 comments · Fixed by #174
Closed

QueryResponse without QueryRequest #40

dthaler opened this issue Jul 23, 2020 · 5 comments · Fixed by #174
Labels
optimization Affects perf but not correctness or applicability

Comments

@dthaler
Copy link
Collaborator

dthaler commented Jul 23, 2020

In Hannes's review of the teep-over-http draft, he said:

FWIW the note that the TEEP Agent can start with a QueryResponse if it has the TAM public key is IMHO incorrect

This came from previous OTrP text where OTrP allowed such an optimization in order to minimize RTTs and bandwidth for constrained devices. Shouldn't we add this optimization into the TEEP protocol?

@dthaler dthaler added the optimization Affects perf but not correctness or applicability label Oct 17, 2020
@hannestschofenig
Copy link
Collaborator

I think we should look at this item once we have the other issues resolved to see how much benefit we gain from this optimization.

@dthaler
Copy link
Collaborator Author

dthaler commented Oct 26, 2020

A closely related issue is the state requirement on the TAM, which affects scalability.
For example, if you have to create state when sending a QueryRequest (e.g., to store the token to check against in the QueryResponse), you can only support so many clients, compared to a stateless approach.

(If your TAM is also a Verifier instead of separating that role, then if you use a nonce for attestation evidence freshness you have to create state anyway, but the RATS arch also discusses approaches where no such state requirement exists if you use timestamps or epoch handles.)

Relaxing this check that a QueryResponse must be in response to a QueryRequest, and removing the token check on reception of a QueryRequest thus also helps scalability.

dthaler added a commit that referenced this issue Nov 19, 2020
There may be more drastic changes based on WG discussion at IETF 109.
We need to decide whether to keep token in all messages or remove it
from some messages.

Addresses issues #78

Also relates to issues #40 #71 #83

Signed-off-by: Dave Thaler <dthaler@ntdev.microsoft.com>
@dthaler dthaler mentioned this issue Nov 19, 2020
@dthaler
Copy link
Collaborator Author

dthaler commented Feb 23, 2021

Another related requirement is around freshness (replay protection), as discussed in section 10 of draft-ietf-rats-architecture. It's unclear whether you can provide freshness without a QueryRequest unless you rely on synchronized clocks and a trusted source of time.

@dthaler
Copy link
Collaborator Author

dthaler commented Feb 23, 2021

I might propose we just match RATS and have TEEP be agnostic as to which approach is used. Allow a challenge in the QueryRequest (which we have) but allow for a QueryResponse to be sent without a QueryRequest, which wouldn't pass verification unless some scheme like time sync is required outside the scope of the TEEP protocol. This is related to issue #83 in terms of being able to get rid of the token, or not.

@dthaler
Copy link
Collaborator Author

dthaler commented Jul 24, 2021

A proposed resolution was shown in IETF 110 slides

dthaler added a commit that referenced this issue Nov 23, 2021
Per discussion at IETF 112

Fixes #17
Fixes #40

Signed-off-by: Dave Thaler <dthaler@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
optimization Affects perf but not correctness or applicability
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants