10 KiB
title, source_type, url, archive_url, status, confidence, tags, related_projects, related_branches, created, last_reviewed
| title | source_type | url | archive_url | status | confidence | tags | related_projects | related_branches | created | last_reviewed | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| SLSA provenance — build levels와 in-toto attestation | official-doc | https://slsa.dev/spec/v1.0/ | raw | high |
|
|
|
2026-05-22 | 2026-05-27 |
SLSA provenance — build levels와 in-toto attestation
Layer:
raw/official-docs/— SLSA v1.0 spec + in-toto attestation spec verbatim 발췌. ca-tmpl supply chain contract 의 build provenance 의무화 결정의 1차 spec 근거.
Parent / 활용 branch (필수)
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| raw/branch-notes/feature-build-release-supply-chain-contract | SLSA provenance attestation 의무화 + 검증 실패 시 deploy block 결정의 spec 근거 |
| raw/branch-notes/feature-ci-quality-gates-contract | SLSA provenance attestation 을 CI quality gate 로 채택한 근거 |
| raw/branch-notes/feature-container-runtime-contract | container image digest 가 attestation subject 로 사용되는 spec 적합성 |
컨텍스트 / 왜 저장했는지
feature-build-release-supply-chain-contract 결정 "SLSA provenance attestation 의무화 (build.config.source, build.invocation, materials 포함). build provenance 검증 실패 시 deploy block."의 spec 근거. ca-tmpl 이 어느 SLSA build level 을 목표로 하는지, materials/invocation 필드가 spec 어디에 정의되어 있는지 raw 로 확보. (필드명 정확도 보강은 별도 slsa-v1-provenance-schema.md 참조.)
출처 / Source
- 원본 URL:
- SLSA v1.0 spec — https://slsa.dev/spec/v1.0/
- SLSA Build levels — https://slsa.dev/spec/v1.0/levels
- in-toto attestation spec — https://github.com/in-toto/attestation
- SLSA Provenance schema — https://slsa.dev/spec/v1.0/provenance
- 아카이브 URL: (미수집)
- 저자 / 조직: OpenSSF SLSA WG, in-toto project (CNCF)
- 발행일: SLSA v1.0 (2023-04 발표, 이후 minor 개정)
- 마지막 확인일: 2026-05-27
핵심 인용 / Key quotes (verbatim)
[§Build L1] "Software producer follows a consistent build process so that others can form expectations about what a 'correct' build looks like." + "Provenance exists describing how the artifact was built, including the build platform, build process, and top-level inputs."
[§Build L2] "Build platform runs on dedicated infrastructure, not an individual's workstation, and the provenance is tied to that infrastructure through a digital signature." + "Downstream verification of provenance includes validating the authenticity of the provenance."
[§Build L3] "Build platform implements strong controls to prevent runs from influencing one another, even within the same project." + "Prevent secret material used to sign the provenance from being accessible to the user-defined build steps."
[§Provenance — model] "Provenance [is] the verifiable information about software artifacts describing where, when and how something was produced."
[§Provenance — model] "The
builder.ididentifies this platform, representing the transitive closure of all entities that are [trusted] to faithfully run the build and record the provenance." + "resolvedDependenciescaptures these dependencies, if known" as "unordered collection of artifacts needed at build time."
[§in-toto Statement] "An in-toto attestation is an authenticated, machine-readable statement about a software artifact. … The Statement contains a predicate (e.g., SLSA Provenance) and a list of subjects (artifact digests being attested to)." (in-toto attestation spec)
Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| SLSA-FW-C1 | SLSA Build L1 = provenance 가 존재하며 build platform / build process / top-level inputs 를 기술 | [§Build L1] "Provenance exists describing how the artifact was built, including the build platform, build process, and top-level inputs." | official-standard |
SLSA v1.0 채택 build pipeline | L1 만으로 forge 방지 보장된다는 뜻 아님 (L1 = "trivial to bypass or forge" 명시) |
| SLSA-FW-C2 | SLSA Build L2 = hosted dedicated infrastructure + digital signature 로 provenance tied | [§Build L2] "Build platform runs on dedicated infrastructure, not an individual's workstation, and the provenance is tied to that infrastructure through a digital signature." | official-standard |
L2 목표 build pipeline (예: GitHub Actions hosted runner + signed provenance) | hosted runner 가 자동으로 L2 라는 뜻 아님 — provenance signing 도 결합 필요 |
| SLSA-FW-C3 | SLSA Build L3 = strong controls (runs 간 영향 차단) + provenance signing secret 을 user-defined build steps 로부터 격리 | [§Build L3] "Build platform implements strong controls to prevent runs from influencing one another, even within the same project." + "Prevent secret material used to sign the provenance from being accessible to the user-defined build steps." | official-standard |
L3 목표 build pipeline (hermetic / tamper-resistant builder) | GitHub Actions hosted runner 만으로 L3 도달 가능하다는 뜻 아님 |
| SLSA-FW-C4 | Provenance 는 software artifact 가 어디서/언제/어떻게 생산되었는지에 대한 verifiable information | [§Provenance — model] "Provenance [is] the verifiable information about software artifacts describing where, when and how something was produced." | official-standard |
SLSA provenance 생성 일반 | provenance 가 자동으로 signed/authenticated 라는 뜻 아님 — signing 은 별도 |
| SLSA-FW-C5 | builder.id 는 build 를 신뢰 실행하는 entity 들의 transitive closure 를 식별하며, resolvedDependencies 는 build time 에 필요한 artifact 의 unordered collection |
[§Provenance — model] "The builder.id identifies this platform, representing the transitive closure of all entities that are [trusted] to faithfully run the build and record the provenance." + "resolvedDependencies captures these dependencies, if known" |
official-standard |
SLSA Provenance v1.0 필드 의미 | resolvedDependencies 가 complete 보장된다는 뜻 아님 — "if known" 명시 |
| SLSA-FW-C6 | in-toto attestation = authenticated, machine-readable statement; Statement 는 predicate + subjects (artifact digests) 로 구성 | [§in-toto Statement] "An in-toto attestation is an authenticated, machine-readable statement about a software artifact. … The Statement contains a predicate (e.g., SLSA Provenance) and a list of subjects (artifact digests being attested to)." | official-standard |
in-toto attestation 사용하는 모든 SLSA 구현 | DSSE envelope 의 정확한 signing 알고리즘은 본 인용 범위 밖 |
Strength 근거
모두 official-standard — SLSA 는 OpenSSF/Linux Foundation 의 industry consensus standard. in-toto 는 CNCF graduated project 의 spec.
Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
SLSA-FW-C1~C3: SLSA Build L1/L2/L3 의 정확한 요구사항 차이SLSA-FW-C4~C5: provenance 의 정의와builder.id/resolvedDependencies필드 의미SLSA-FW-C6: in-toto attestation Statement 구조 (predicate + subjects)
- 이 자료가 증명하지 않는 것:
- ca-tmpl 약식 필드명 (
build.config.source,build.invocation,materials) 이 spec 필드명과 동일하다는 것 — 실제 spec 필드는buildDefinition.externalParameters,runDetails.metadata.invocationId,buildDefinition.resolvedDependencies(별도slsa-v1-provenance-schema.md참조) - GitHub Actions hosted runner 가 L3 도달 가능한지 (본 인용은 L3 요구사항만 명시, runner 적합성 평가 X)
- provenance 만 있으면 supply chain 공격이 완전 차단된다는 보장 (verify policy 가 별도 필요)
- ca-tmpl 약식 필드명 (
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- ca-tmpl GitHub Actions 기반 build pipeline 이 L2 에 도달했는지 (provenance signing + hosted runner 동시 만족 검증)
- SLSA verifier (slsa-verifier) 의
--builder-id/--source-uri검사 동작이 ca-tmpl provenance 와 매칭되는지
메모 / Notes (내 프로젝트 해석)
본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.
- ca-tmpl branch 가 명시한 필드
build.config.source,build.invocation,materials는 SLSA Provenance v1.0 의buildDefinition.externalParameters/runDetails.builder/buildDefinition.resolvedDependencies와 매핑. branch note 표현은 약식이므로 wiki/concepts 변환 시 spec 필드명을 따라야 함. - Build L3 는 hermetic build + tamper-resistant builder 를 요구. ca-skeleton 단계에서는 GitHub Actions hosted runner 기반 L2 가 현실적 목표.
- in-toto attestation = signing envelope (DSSE) + predicate. Cosign 이 DSSE envelope 을 sign 하므로 SLSA + Cosign 이 한 체인에서 작동.
- 함정: provenance 만 있고 verify policy 가 없으면 의미 없음. branch note "build provenance 검증 실패 시 deploy block" 이 이를 강제하지만, 검증 정책 문서 가 별도 branch 에 없으면 누수.
Related / 관련
- 같은 주제 다른 official-doc:
- raw/official-docs/slsa-v1-provenance-schema (spec 필드명 정확 캡처)
- raw/official-docs/cosign-keyless-identity-verification-policy (DSSE envelope signing + identity 매칭)
- 인용하는 branch:
- raw/branch-notes/feature-build-release-supply-chain-contract — SLSA provenance 의무 + verify 실패 시 deploy block
- raw/branch-notes/feature-ci-quality-gates-contract — SLSA provenance attestation gate
- raw/branch-notes/feature-container-runtime-contract — image digest 가 attestation subject 로 사용됨
- 인용하는 wiki: