Hi @S_GUED ,
With these requirements I would propose something like following:
The userID delete policy reference the actually to be protected key – which is not an authentication object:
|
Object ID
|
File Size
|
Object Class
|
Curve/Length
|
AuthObject
|
Policy (Authentication Object + applied Access Rules)
|
Auth attempts cntr
|
Auth attempts limit
|
TagLen for AEAD
|
min Output Length
|
Owner
|
Origin
|
|
0x00000001
|
16
|
UserID
|
N/A
|
Yes
|
0x00000002 DELETE
|
N/A
|
N/A
|
N/A
|
N/A
|
0x00000000
|
EXTERNAL
|
|
0x00000002
|
|
EC key pair
|
NIST P256
|
No
|
0x00000001 SIGN VERIFY 0x00000000 DELETE
|
0x00
|
0x00
|
N/A
|
N/A
|
0x00000000
|
EXTERNAL
|
The UserID has a policy to be deleted with the objectID of the actual key being protected (0x00000002). the actual key cannot be used to create a session as it is not an authentication key. So first the keypair needs to be deleted to make place for an authentication objecto to delete the UserID. In this way it can be ensured that the key needs to be deleted before the userID.
Process to partially factory reset the credentials (only delete 0x00000001+0x00000002):
- Delete EC Key Pair 0x00000002
- Create temporary auth object on 0x00000002 (with policy 0x00000000 DELETE)
- Authenticate with this object 0x00000002
- Delete UserID 0x00000001 – the ID part of the user’s credential is removed
- Delete temporary auth object 0x00000002
This needs one UserID per file, but it does not involve DeleteAll.
Further point:
UserIDs are not changeable - in case users should have the possibility to change PINs maybe AESKey should be used instead. The needed AES key could be hashed out of the user supplied PIN using e.g. HKDF or PBKDF2. When this is being done with an credentials only available to the SE this also slows down brute forcing the calculation of the key needed to try to authenticate so that due to this slow down no authentication try limit needs to be set to prevent excessive brute forcing.
Have a great day,
Kan
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------