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

Add TF-M support #805

Open
jqiaobln opened this issue Dec 22, 2021 · 1 comment
Open

Add TF-M support #805

jqiaobln opened this issue Dec 22, 2021 · 1 comment

Comments

@jqiaobln
Copy link

Is your feature request related to a problem? Please describe.

In IoT, PSA is the standard to ensure IoT device security. I followed TF-M as it is PSA certified and widely adopted by the industry. One of the key ideas is that the runtime of a device is divided into Secure Processing Environment (SPE) and Non Secure Processing Environment (NSPE). All keys are stored in SPE and never leave SPE, nor accessed directly by NSPE. NSPE can only call APIs from SPE as security services.

Currently in libcoap, the PSK is being passed around, e.g. calling setup_psk before creating a session using coap_new_client_session_psk2. This is against TF-M's principle and makes device less secure.

Describe the solution you'd like

libcoap should provide "opaque" apis, like Mbedtls' mbedtls_pk_setup_opaque vs mbedtls_pk_parse_key. This way the keys are no more passing around and will be stored in SPE safely.

Refer to Mbedtls' PSA-enabled primitives here: Mbedtls

@obgm
Copy link
Owner

obgm commented Jan 31, 2022

Thanks, @jqiaobln for the heads up. We will definitely have a look into this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants