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

Encrypt and authenticate MGS ⇔ SP traffic #152

Open
DemiMarie opened this issue Oct 28, 2023 · 2 comments
Open

Encrypt and authenticate MGS ⇔ SP traffic #152

DemiMarie opened this issue Oct 28, 2023 · 2 comments

Comments

@DemiMarie
Copy link

DemiMarie commented Oct 28, 2023

This would allow the MGS to verify that it is talking to an SP on a board with a genuine RoT and that the RoT has attested the SP. It would also provide for cryptographic verification of the identity of a sled, thereby solving #141. It would even allow for a sled to keep its identity when it is moved between slots on a rack, or even between racks.

@jgallagher
Copy link
Collaborator

👍 Related issue in hubris: oxidecomputer/hubris#723

@DemiMarie
Copy link
Author

Some notes (disclaimer: not affiliated with Oxide, merely very excited about it):

  • Since Oxide controls both sides of the connection, it is not necessary to use a standard protocol such as TLS. TLS has a large amount of legacy cruft and requires a reliable ordered stream. A simple protocol based on Noise, like WireGuard, would be more suitable.
  • The long-term key should be held in the RoT and should not be extractable by the SP. This ensures that the long-term key can only be used by an authorized SP that has authenticated to the RoT. However, the SP can probably be trusted with short-lived session keys, so whether session keys live on the SP or RoT can be determined by non-security factors (such as performance or implementation simplicity).
  • The RoT should sign a document that includes the long-term key and a hash of the RoT’s measurements. The MGS can use this to display the firmware version and other information about the SP.
  • If the protocol provides mutual authentication (again, like WireGuard does), Authenticate requests from MGS to the SP hubris#723 would be solved as well.
  • The MGS’s authorized key should be included in the RoT’s measurements.

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

No branches or pull requests

2 participants