Secure Monitor: Difference between revisions
No edit summary |
|||
Line 66: | Line 66: | ||
The overall concept here is the following: | The overall concept here is the following: | ||
* All key material (AES and RSA) is stored in userspace, but it's encrypted with random AES kek's ("key encryption | * All key material (AES and RSA) is stored in userspace, but it's encrypted with random AES kek's ("key encryption keys"). | ||
* Each kek is generated as a function of an access key (picked at random). | * Each kek is generated as a function of an access key (picked at random). | ||
* The kek is generated differently depending on the [[#CryptoUsecase]] the key is used for. | * The kek is generated differently depending on the [[#CryptoUsecase]] the key is used for. | ||
Line 73: | Line 73: | ||
* After the kek has been generated, it is wrapped with a session-specific key and given back to userspace. | * After the kek has been generated, it is wrapped with a session-specific key and given back to userspace. | ||
** This means: Plaintext kek keys never leave TrustZone. | ** This means: Plaintext kek keys never leave TrustZone. | ||
** Further, this means: Actual AES/RSA keys never leave TrustZone. | |||
=== GenerateAesKek === | === GenerateAesKek === | ||
Line 134: | Line 135: | ||
| 3 || CryptoUsecase_RsaWrappedAesKey | | 3 || CryptoUsecase_RsaWrappedAesKey | ||
|} | |} | ||
== Id 1 == | == Id 1 == |