You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: unify RA-TLS cert attestation format and fix onboard os_image_hash
Two changes:
1. ra-tls: use unified PHALA_RATLS_ATTESTATION OID for TDX certs instead
of the legacy separate TDX_QUOTE + EVENT_LOG OIDs. The new format
preserves vm_config (including os_image_hash). The reader already
prefers the new format and falls back to old OIDs for backward compat.
2. kms: when the remote source KMS uses the old cert format (missing
vm_config), the receiver-side onboard check fills os_image_hash from
the local KMS's own value. This is safe because mrAggregated already
validates OS image integrity through the RTMR measurement chain.
This workaround should be removed once all source KMS instances use
the new cert format.
Copy file name to clipboardExpand all lines: tests/docs/kms-self-authorization.md
+7-9Lines changed: 7 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ This guide is written as a deployment-and-test runbook so an AI agent can follow
25
25
> 7. KMS now always requires quote/attestation. For local development without TDX hardware, use `sdk/simulator` instead of trying to run a no-attestation KMS flow.
26
26
> 8. For `auth-simple`, `kms.mrAggregated = []` is a deny-all policy for KMS. Use that as the baseline deny configuration, then add the measured KMS MR values for allow cases.
27
27
> 9.**Port forwarding is simpler than gateway for testing.** Using `--gateway` requires the auth API to return a valid `gatewayAppId`, which adds unnecessary complexity. Use `--port tcp:0.0.0.0:<host-port>:8000` instead.
28
-
> 10.**Remote KMS attestation has an empty `osImageHash`.**When the receiver verifies the source KMS during onboard, the `osImageHash` field in the attestation is empty (because `vm_config` is not available for the remote attestation). Auth configs for receiver-side checks must include `"0x"` in the `osImages`array to match this empty hash.
28
+
> 10.**~~Remote KMS attestation has an empty `osImageHash`.~~**Fixed: RA-TLS certs now use the unified `PHALA_RATLS_ATTESTATION` format which preserves `vm_config`. For old source KMS instances that still use the legacy cert format, the receiver-side `ensure_kms_allowed` automatically fills `osImageHash` from the local KMS's own value. No special `"0x"`entry in `osImages`is needed anymore.
29
29
> 11. The `source_url` in the `Onboard.Onboard` request must use an address **reachable from inside the CVM** (e.g., `https://10.0.2.2:<port>/prpc`), not `127.0.0.1` which is the CVM's own loopback.
30
30
31
31
---
@@ -49,13 +49,13 @@ This guide is written as a deployment-and-test runbook so an AI agent can follow
49
49
50
50
## 1. Why this document exists
51
51
52
-
PR #538 already proposes a richer `kms/e2e/` framework, but as of **2026-03-19** it is still open/draft and touches overlapping KMS files. To avoid waiting for that PR, this guide uses:
52
+
This guide provides a standalone test procedure that does not depend on a dedicated e2e framework. It uses:
53
53
54
54
- existing KMS deploy flows
55
55
-`auth-simple` as a controllable auth API
56
56
- manual RPC calls via `curl`
57
57
58
-
This keeps the test independent from PR #538 while still exercising real deployment paths.
58
+
This exercises real deployment paths with minimal dependencies.
59
59
60
60
---
61
61
@@ -98,7 +98,7 @@ Policy responsibilities:
98
98
99
99
Before starting, make sure the following are available:
100
100
101
-
1. A branch or image containing the PR #573KMS changes
101
+
1. A KMS image built from current `master` (includes PR #573auth checks, #579 mandatory attestation, #581 dedup refactor)
102
102
2. A working `dstack-vmm` or teepod deployment target
103
103
3. Two routable KMS onboard URLs
104
104
4.`bun` installed on the host, because `kms/auth-simple` runs on Bun
@@ -315,12 +315,10 @@ All three values above are expected to be hex strings **without** the `0x` prefi
315
315
316
316
Use a wrong `mrAggregated` value while allowing the observed OS image.
317
317
318
-
> **Important:** include `"0x"` in `osImages` to handle remote KMS attestation during onboard receiver-side checks, where `osImageHash` is empty because `vm_config` is unavailable for the remote attestation.
0 commit comments