future-proof-iot / RIOT-rs

RIOT-rs is an operating system for secure, memory-safe, low-power Internet of Things, written in Rust
Apache License 2.0
42 stars 12 forks source link

LAKE hackathon project #245

Closed chrysn closed 3 months ago

chrysn commented 5 months ago

Some of us (@kaspar030, @ROMemories, @emmanuelsearch, @chrysn) will be at the Paris LAKE hackathon co-hosted with T2TRG.

What precisely do we want to do there?

Hackathon project

Side meeting

Investigate gaps in what we want to achieve and what is specified (originally from the lower-most items of the "Usability components" list of the CoAP tracking issue)

Relevant links

chrysn commented 4 months ago

Some notes from chatting with @marco-tiloca-sics:

  1. is indeed overly complicated.
  2. may not be too bad on the device as I thought. Rather than storing the token and the token response on persistent memory, the device receives from the configuration tool the AS token URI, the CRED_R of the AS and the scope/audience to request (which may be quite small if the configuration tool agrees on a compact phrasing with the AS). Then it just needs to run an EDHOC exchange with the AS (or one OSCORE follow-up request) every time the token expires, rather than doing the same as drive by the configuration tool. The EDHOC exchange can serve as proof of possession, which AIU is an open ToDo item of the ACE EDHOC profile (@gselander, please correct me if that is not so). This "just" needs an ace-as-admin document ;-) -- at least enough of it that the configuration tool can state that there is a new C with the credential of the client machine, and a means of granting some scope on an audience that the configuration tool has to that new client (possibly using a more compact and more client-friendly phrasing of the scope).
  3. may not be aligned with ACE because the AS will require proof-of-possession of the credential to issue a token (even though I don't quite understand why that is required -- the configuration tool has the authorization, and there are good arguments for delegation). Also, it is not as simple as hoped because the token will often be short-lived, and a new token will need to be sent time and again.

If we accept the alternative flow of the AS installing the token in the RS (or the C has easier means of receiving the updated token), there might be the extra option of doing something 3-ish once, PoP'ing the credential (eg. by running some authz-style dance between the machine client, the configuration tool and the AS), and then setting up the AS to issue new tokens automatically to the RS (or offering them on request at some URI; after all, they are encrypted and just updated regularly), this will need further consideration.


Some documents may be relevant:

chrysn commented 3 months ago

While the project is being tracked here, I can just as well upload slides: missing-pieces-slides.pdf (last slide represents what was scribbled during the meeting).

chrysn commented 3 months ago

During the breakout session, new slides summarize the side meeting findings

ROMemories commented 3 months ago

Closing as the hackathon is over. @chrysn feel free to re-open or open other related topic issues if needed.