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
editorial: draft: Improve instructions to verify source VSAs (#1498)
The prior instructions weren't complete and were somewhat spread out.
Tried to consolidate in one spot. Also fixed a typo in the general
verification summary docs that incorrectly referenced slsaResult instead
of verificationResult.
fixes#1445
---------
Signed-off-by: Tom Hennen <tomhennen@google.com>
Copy file name to clipboardExpand all lines: docs/spec/draft/source-requirements.md
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -590,10 +590,8 @@ Example implementations:
590
590
591
591
#### How to verify
592
592
593
-
- VSAs for source revisions MUST follow [the standard method of VSA verification](./verification_summary.md#how-to-verify).
594
-
- Users SHOULD check that an allowed branch is listed in `subject.annotations.sourceRefs` to ensure the revision is from an appropriate context within the repository.
595
-
- Users SHOULD check that the expected `SLSA_SOURCE_LEVEL_` is listed within `verifiedLevels`.
596
-
- Users MUST ignore any unrecognized values in `verifiedLevels`.
593
+
See [Verifying Source](./verifying-source.md) for instructions how to verify
[VSA verification instructions](./verification_summary.md#how-to-verify) and the
93
+
[validation-model] using the revision identifier to perform subject matching and
94
+
checking the `verifier.id` against the root-of-trust described above.
102
95
103
96
### Step 2: Check Expectations
104
97
@@ -117,12 +110,15 @@ fields:
117
110
118
111
| What | Why
119
112
| ---- | ---
120
-
| Verifier (SCS) identity from [Step 1] | To prevent an adversary from substituting a VSA making false claims from an unintended SCS.
113
+
| `verifier.id` identity from [Step 1] | To prevent an adversary from substituting a VSA making false claims from an unintended SCS.
114
+
| `subject.digest` from [Step 1] | To prevent an adversary from substituting a VSA from another revision.
115
+
| `verificationResult` | To prevent an adversary from providing a VSA for a revision that failed some aspect of the organization's expectations.
121
116
|`predicate.resourceUri`| To prevent an adversary from substituting a VSAfor the intended repository (e.g. `git+https://github.com/IntendedOrg/hello-world`) foranother (e.g. `git+https://github.com/AdversaryOrg/hello-world`)
122
117
|`subject.annotations.sourceRefs`| To prevent an adversary from substituting the intended revision from one branch (e.g. `release`) withanother (e.g. `experimental_auth`).
123
118
|`verifiedLevels`| To ensure the expected controls were in place for the creation of the revision. E.g. `SLSA_SOURCE_LEVEL_3`, `ORG_SOURCE_STATIC_ANALYSIS`, etc...
0 commit comments