Skip to content

Commit 68cb658

Browse files
committed
trusted-workload-launcher: align reproducibility wording
Drop "reproducibly built" claims outside VERIFY.md. The release workflow publishes a Sigstore build-provenance attestation that binds the image digest to a specific GitHub workflow run / repo / ref / SHA; that is a signed chain of custody, not a guarantee of bit-for-bit reproducibility. Updated README.md trust-model diagram and verifier list, and the examples/web-app.conf header.
1 parent 3c44cce commit 68cb658

2 files changed

Lines changed: 20 additions & 12 deletions

File tree

trusted-workload-launcher/README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,12 @@ pinned workload commit, see [`VERIFY.md`](./VERIFY.md).
4747

4848
```
4949
launcher image digest ──► launcher implementation identity
50-
(this directory at commit L,
51-
reproducibly built; published by the release
52-
workflow with a Sigstore attestation)
50+
(this directory at commit L; the release
51+
workflow publishes a Sigstore build-provenance
52+
attestation that binds the image digest to a
53+
specific GitHub workflow run / repo / ref /
54+
SHA. This is a signed chain of custody, not a
55+
claim of bit-for-bit reproducibility.)
5356
5457
launcher config file ──► workload pin
5558
(REPO_URL + full COMMIT_SHA U; selects which
@@ -75,8 +78,11 @@ attestation:
7578
Once the config is attested by one of the first two options, a relying party
7679
verifies in four steps:
7780

78-
1. The launcher image digest in the dstack attestation matches a reproducible
79-
build of this directory at commit `L`.
81+
1. The launcher image digest in the dstack attestation matches the digest
82+
published by the release workflow for this directory at commit `L`
83+
(verified via the Sigstore build-provenance attestation, which binds
84+
the digest to a specific GitHub Actions workflow run / repo / ref /
85+
SHA — see [`VERIFY.md`](./VERIFY.md) for the exact check).
8086
2. The launcher script at commit `L` is the audited script — small, parses
8187
(does not source) its config, refuses anything but a full commit SHA, and
8288
verifies `HEAD` after checkout.

trusted-workload-launcher/examples/web-app.conf

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@
55
# to. The launcher refuses to start unless COMMIT_SHA is a full 40-hex SHA-1
66
# or 64-hex SHA-256. Branches, tags, and short SHAs are rejected.
77
#
8-
# REPO_URL must be the public canonical URL of the workload repository. When
9-
# the launcher image is built reproducibly, a verifier checks:
8+
# REPO_URL must be the public canonical URL of the workload repository.
9+
# A verifier checks:
1010
#
11-
# image digest -> launcher repo at commit L
12-
# -> this config file
13-
# -> upstream workload repo at COMMIT_SHA
11+
# image digest -> launcher repo at commit L
12+
# (via the Sigstore build-provenance attestation
13+
# on the published image digest)
14+
# attested config -> REPO_URL + COMMIT_SHA
15+
# (via dstack compose-hash, or a derived image digest)
16+
# upstream repo -> workload bytes at COMMIT_SHA
1417
#
15-
# so the launcher and its config together pin exactly which workload code
16-
# runs inside the dstack TEE.
18+
# Together these pin exactly which workload code runs inside the dstack TEE.
1719

1820
REPO_URL=https://github.com/example-org/example-web-app.git
1921
COMMIT_SHA=0000000000000000000000000000000000000000

0 commit comments

Comments
 (0)