atsign-foundation / at_client_sdk

The Dart implementation of atSDK used for implementing Atsign's technology into other software
https://pub.dev/publishers/atsign.org/packages
BSD 3-Clause "New" or "Revised" License
1.46k stars 31 forks source link

[Tracker] Use private keys within secure element rather than in memory #756

Open cpswan opened 2 years ago

cpswan commented 2 years ago

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

We generally work with private keys that have been copied from a secure element into memory, but this isn't best practice, and isn't possible with properly implemented hardware generated keys e.g. IoT SAFE.

Describe the solution you'd like

Delegate operations using private keys to hardware based elements where possible so that we don't need to copy keys into memory.

MVP description

We shall modify the HRO2 demo (nee MWC demo) such that it uses a keypair generated in the ZARIOT supplied Kigen manufactured SIM card using GSMA IoT SAFE.

NB that this will also be dependent on #755 as IoT SAFE makes use of ECC keys.

High-level tasks (please add additional tasks here!)

gkc commented 2 years ago

As a first step on this journey, we need to

This structural change will set us up to build other implementations of the interface which delegate operations to secure elements without requiring any core code changes.

gkc commented 2 years ago

More on this:

gkc commented 2 years ago

Applying the 'Urgent' label as the first part of this (creating the interface and restructuring code to use it) is a prerequisite for for multiple other platform improvements.

gkc commented 2 years ago

I removed the urgent label again as I guess it's not currently truly urgent. It is very very important though.

gkc commented 2 years ago

8SP for PR49 to design / define the interface, get it reviewed and agreed on arch call(s)

gkc commented 1 year ago

Removing 8SP label as this issue will be the top-level aggregator of the various other tickets we will create

cpswan commented 1 year ago

Added MVP description section to root comment for this issue.