|
| 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. |
0 commit comments