Skip to content

Add the sush proxy to the switch zone - #11253

Draft
plotnick wants to merge 2 commits into
sush-sled-agentfrom
sush-switch-proxy
Draft

Add the sush proxy to the switch zone#11253
plotnick wants to merge 2 commits into
sush-sled-agentfrom
sush-switch-proxy

Conversation

@plotnick

@plotnick plotnick commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Continues the integration of the Support Shell (RFD 620), building on the sled-agent embedding: a new switch zone service, sush-proxy, terminates technician-port connections and routes each request to a sled's sush server. The proxy finds sush servers by probing the bootstrap and underlay prefixes given by DDM, and polls MGS for the cubby map so a request may name its target sled by cubby.

For security review:

On real hardware the proxy serves TLS backed by the sled's platform identity. At zone startup, sled-agent generates an ephemeral key and has the RoT sign its certificate with the TQ key (Ed25519 over the SHA3-256 digest of the TBS certificate), and the sush client verifies that the chain ends at a platform identity root. Simulated and emulated environments have no RoT, so their proxies serve plaintext. This is described in the transport security section of RFD 620.

This continues the integration of the
[Support Shell](https://github.com/oxidecomputer/sush)
([RFD 620](https://rfd.shared.oxide.computer/rfd/0620)), building on
the sled-agent embedding: a new switch zone service, `sush-proxy`,
terminates technician-port connections and routes each request to a
sled's sush server. The proxy finds sush servers by probing the bootstrap
and underlay prefixes given by DDM, and polls MGS for the cubby map
so a request may name its target sled by cubby.

**For security review:**

On real hardware the proxy serves TLS backed by the sled's platform
identity. At zone startup, sled-agent generates an ephemeral key and
has the RoT sign its certificate with the TQ key (Ed25519 over the
SHA3-256 digest of the TBS certificate), and the sush client verifies
that the chain ends at a platform identity root. Simulated and emulated
environments have no RoT, so their proxies serve plaintext.

Co-Authored-By: Claude Mythos 5 <noreply@anthropic.com>
Co-Authored-By: Claude Mythos 5 <noreply@anthropic.com>
@plotnick

plotnick commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

A heads-up: @rmustacc identified a very serious problem in the security story here, which is that we are forbidden by policy (which we're currently ignoring) from signing certificates with the platform id leaf certificate. I will be sketching a work-around tomorrow (Wed, Sep 9), and it will have some knock-on effects (mostly positive, I think).

@plotnick

Copy link
Copy Markdown
Contributor Author

Heads-up follow-up: I did not get to implement the previously mentioned work-around today (Wed), but I did document it in the transport security section of RFD 620. Feedback would be welcome, and I'll try again to prototype it tomorrow (Thu) based on the sketch there.

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

Successfully merging this pull request may close these issues.

1 participant