-
Notifications
You must be signed in to change notification settings - Fork 377
Add key management documentation for MSI v2 #5513
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
base: main
Are you sure you want to change the base?
Conversation
Document the key management logic and responsibilities in MSI v2, including key selection priorities and flow.
|
||
## Key Responsibilities | ||
|
||
- Generate and hold the RSA private key. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does "hold" mean?
- Generate and hold the RSA private key. | ||
- Ensure the key is protected to the maximum capability of the platform. | ||
- Provide the key for signing (CSR, PoP requests, mTLS handshakes). | ||
- Never allow export if backed by hardware/KeyGuard. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: KeyGuard/TPM
- Requires Virtualization-Based Security (VBS). | ||
- Keys are isolated in a secure enclave. | ||
- Strongest guarantee that the private key cannot be exfiltrated. | ||
- Used for Proof-of-Possession (PoP). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you only put this here and not the other key types? Every Key type listed here can be used in PoP.
### Hardware / TPM / KSP (fallback) | ||
|
||
- Keys are backed by TPM or the Platform Crypto Provider. | ||
- Non-exportable, tied to the device. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
KeyGuard is also not exportable, can you add this to the KeyGuard section too?
- Strongest guarantee that the private key cannot be exfiltrated. | ||
- Used for Proof-of-Possession (PoP). | ||
|
||
### Hardware / TPM / KSP (fallback) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you write out the TPM acronym here?
KeyProvider-->>KeyProvider: Acquire semaphore | ||
alt KeyGuard available | ||
KeyProvider-->>MSAL: KeyGuard key (preferred) | ||
else Hardware/TPM available |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add "KeyGuard not available"
else Hardware/TPM available | ||
KeyProvider-->>MSAL: Hardware key | ||
else | ||
KeyProvider-->>MSAL: In-memory RSA key |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add "KeyGuard and TPM not available"
Document the key management logic and responsibilities in MSI v2, including key selection priorities and flow.