Skip to content

Commit 70a5050

Browse files
authored
docs: adding SLSA verification steps for cpp-server-sdk (#356)
Adds documentation for how consumers may use the SLSA framework to verify SDK packages published with provenance to improve supply chain security.
1 parent aa45174 commit 70a5050

File tree

4 files changed

+47
-0
lines changed

4 files changed

+47
-0
lines changed

PROVENANCE.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## Verifying SDK build provenance with the SLSA framework
2+
3+
LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published SDK packages.
4+
5+
As part of [SLSA requirements for level 3 compliance](https://slsa.dev/spec/v1.0/requirements), LaunchDarkly publishes provenance about our SDK package builds using [GitHub's generic SLSA3 provenance generator](https://github.com/slsa-framework/slsa-github-generator/blob/main/internal/builders/generic/README.md#generation-of-slsa3-provenance-for-arbitrary-projects) for distribution alongside our packages. These attestations are available for download from the GitHub release page for the release version under Assets > `OSNAME-multiple-provenance.intoto.jsonl`.
6+
7+
To verify SLSA provenance attestations, we recommend using [slsa-verifier](https://github.com/slsa-framework/slsa-verifier). Example usage for verifying SDK packages for Linux is included below:
8+
9+
```
10+
# Ensure provenance file is downloaded along with packages for your OS
11+
$ ls /tmp/launchdarkly-cpp-client-3.4.0
12+
linux-gcc-x64-dynamic.zip linux-gcc-x64-static.zip linux-multiple-provenance.intoto.jsonl
13+
14+
# Run slsa-verifier to verify provenance against package artifacts
15+
$ slsa-verifier verify-artifact \
16+
--provenance-path linux-multiple-provenance.intoto.jsonl \
17+
--source-uri github.com/launchdarkly/cpp-sdks \
18+
linux-gcc-x64-static.zip linux-gcc-x64-dynamic.zip
19+
Verified signature against tlog entry index 59501683 at URL: https://rekor.sigstore.dev/api/v1/log/entries/24296fb24b8ad77ad75383b2cf5388a2587a27acf06c948205b60999c208ae5fcbe89fae6a6aae70
20+
Verified build using builder "https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.7.0" at commit 533d512ccf050e6bf50078d64ec97338dc03aaef
21+
Verifying artifact linux-gcc-x64-static.zip: PASSED
22+
23+
Verified signature against tlog entry index 59501683 at URL: https://rekor.sigstore.dev/api/v1/log/entries/24296fb24b8ad77ad75383b2cf5388a2587a27acf06c948205b60999c208ae5fcbe89fae6a6aae70
24+
Verified build using builder "https://github.com/slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@refs/tags/v1.7.0" at commit 533d512ccf050e6bf50078d64ec97338dc03aaef
25+
Verifying artifact linux-gcc-x64-dynamic.zip: PASSED
26+
27+
PASSED: Verified SLSA provenance
28+
```
29+
30+
Alternatively, to verify the provenance manually, the SLSA framework specifies [recommendations for verifying build artifacts](https://slsa.dev/spec/v1.0/verifying-artifacts) in their documentation.
31+
32+
**Note:** These instructions do not apply when building our SDKs from source.

libs/client-sdk/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,11 @@ Contributing
108108
We encourage pull requests and other contributions from the community. Read
109109
our [contributing guidelines](../../CONTRIBUTING.md) for instructions on how to contribute to this SDK.
110110

111+
Verifying SDK build provenance with the SLSA framework
112+
------------
113+
114+
LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published SDK packages. To learn more, see the [provenance guide](../../PROVENANCE.md).
115+
111116
About LaunchDarkly
112117
-----------
113118

libs/server-sdk-redis-source/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ Contributing
9191
We encourage pull requests and other contributions from the community. Read
9292
our [contributing guidelines](../../CONTRIBUTING.md) for instructions on how to contribute to this SDK.
9393

94+
Verifying SDK build provenance with the SLSA framework
95+
------------
96+
97+
LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published SDK packages. To learn more, see the [provenance guide](../../PROVENANCE.md).
98+
9499
About LaunchDarkly
95100
-----------
96101

libs/server-sdk/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ for consistency across SDKs, as well as test networking behavior in a long-runni
102102
method in the SDK, and verify that event sending, flag evaluation, stream reconnection, and other aspects of the SDK all
103103
behave correctly.
104104

105+
Verifying SDK build provenance with the SLSA framework
106+
------------
107+
108+
LaunchDarkly uses the [SLSA framework](https://slsa.dev/spec/v1.0/about) (Supply-chain Levels for Software Artifacts) to help developers make their supply chain more secure by ensuring the authenticity and build integrity of our published SDK packages. To learn more, see the [provenance guide](../../PROVENANCE.md).
109+
105110
Contributing
106111
------------
107112

0 commit comments

Comments
 (0)