RIOT-OS / RIOT

RIOT - The friendly OS for IoT
https://riot-os.org
GNU Lesser General Public License v2.1
4.87k stars 1.98k forks source link

Make OSCORE (application-layer security for CoAP) usable in RIOT #11761

Open chrysn opened 5 years ago

chrysn commented 5 years ago

Description

The OSCORE protocol promises to provide lightweight security for data-in-transit between constrained devices. Support for it would benefit RIOT-OS especially if CoAP examples would out-of-the-box provide the security we all expect from the IoT.

Useful links

Plan

I'm about to write a portable implementation of that protocol and to wrap it up as a RIOT package; in the course of that I'd appreciate feedback from the RIOT community on the API design and may have individual pull requests for gcoap to allow integrating such a module at all.

kb2ma commented 5 years ago

The rumors are true, then! We look forward to this work, @chrysn.

chrysn commented 5 years ago

The work-in-progress library is online at https://gitlab.com/oscore/liboscore; currently it consists mostly of API documentation.

With respect to integration in RIOT, I envision two consecutive steps (described for server application, but same for client applications):

Currently I'm focused on the first step, and https://gitlab.com/oscore/oscore-implementation/blob/master/API-SKETCH.rst describes the rough idea, and the concrete documentation (as far as the sketch was transferred to C so far) is available on https://oscore.gitlab.io/oscore-implementation/group__oscore__native__msg.html.

I'd appreciate any feedback both on the integration steps (especially: Does deep integration align well with the roadmap for Gcoap?) and the proposed APIs.

edit: update liboscore link (Kaspar)

emmanuelsearch commented 5 years ago

@kaspar030 @kb2ma any opinions on this?

emmanuelsearch commented 5 years ago

@bergzand might also have some opinion too wrt to libcose ?

chrysn commented 5 years ago

@bergzand might also have some opinion too wrt to libcose ?

We're tracking that primarily at https://github.com/bergzand/libcose/issues/89 at the moment.

emmanuelsearch commented 4 years ago

@chrysn what's the latest status? Do you have any ETA for your OSCORE code (possibly still in WIP state) so that people can start playing with that in RIOT?

mp3patel19 commented 4 years ago

Hi @chrysn can i integrate LibOSCORE with LibCOAP as per current status of your library? Actually we have application on LibCOAP and we want to use OSCORE, so given the current status of LibOSCORE, is it possible?

biboc commented 9 months ago

Any update on this @chrysn ? We're interested in using it

chrysn commented 9 months ago

The biggest holdup is the inflexibility of the CoAP APIs to accommodate drivers. Work on making that more modular is being done in a student group at Dresden, but I don't know how far that has progressed since its kick-off at the IETF hackathon in November.

In parallel, I'm starting to assemble libOSCORE and lakers (an EDHOC implementation) into a usable stack from the Rust side around riot-rs. Accessing that composition from C can become possible when the API refactoring gets done, but would probably need a driving use case (because all current applications I know of lean toward going through Rust anyway). This includes things like stdio-over-CoAP.

What are your use case requirements?