
OpenID Connect ID에 연결된 단기 유효 코드 서명 인증서를 발급하는 인증 기관으로, 검증 가능한 소프트웨어 공급망 서명을 지원합니다.
코드 서명을 위한 무료 사용 CA
Fulcio는 이메일 주소와 같은 OpenID Connect(OIDC) 신원을 위해 코드 서명 인증서를 발급하는 무료 사용 인증 기관(CA)입니다.
Fulcio는 10분 동안 유효한 단기(short-lived) 인증서만 발급합니다.
Fulcio는 GA(General Availability) 상태이며, 99.5 가용성 SLO를 제공하고, API 안정성을 위해 semver 규칙을 따릅니다.
Fulcio 공개 인스턴스의 가동 시간 데이터는 https://status.sigstore.dev에서 확인할 수 있습니다.
Fulcio의 인증서 체인은 TrustBundle API에서 얻을 수 있습니다. 예를 들어 공개 인스턴스의 경우
(https://fulcio.sigstore.dev)에서 얻을 수 있습니다. 공개 인스턴스를 검증하려면
sigstore/root-signing 저장소의 Sigstore TUF 루트를 사용하여 체인을 검증해야 합니다.
이를 위해 go-tuf의 CLI 도구를 설치하고 사용하세요:
$ go install github.com/theupdateframework/go-tuf/cmd/tuf-client@latest
그런 다음 Sigstore의 신뢰할 수 있는 루트 키를 획득합니다. 하위 호환되지 않는 변경으로 인해 Sigstore TUF 루트의 5번째 버전을 신뢰 루트의 시작점으로 사용하게 됩니다.
curl -o sigstore-root.json https://raw.githubusercontent.com/sigstore/root-signing/main/metadata/root_history/5.root.json
이전에 획득한 루트와 원격 저장소인 https://tuf-repo-cdn.sigstore.dev로 TUF 클라이언트를 초기화하고, 현재 Fulcio 루트 인증서 fulcio_v1.crt.pem 및 중간 인증서 fulcio_intermediate_v1.crt.pem을 가져옵니다.
$ tuf-client init https://tuf-repo-cdn.sigstore.dev sigstore-root.json
$ tuf-client get https://tuf-repo-cdn.sigstore.dev fulcio_v1.crt.pem
-----BEGIN CERTIFICATE-----
MIIB9zCCAXygAwIBAgIUALZNAPFdxHPwjeDloDwyYChAO/4wCgYIKoZIzj0EAwMw
KjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MREwDwYDVQQDEwhzaWdzdG9yZTAeFw0y
MTEwMDcxMzU2NTlaFw0zMTEwMDUxMzU2NThaMCoxFTATBgNVBAoTDHNpZ3N0b3Jl
LmRldjERMA8GA1UEAxMIc2lnc3RvcmUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAT7
XeFT4rb3PQGwS4IajtLk3/OlnpgangaBclYpsYBr5i+4ynB07ceb3LP0OIOZdxex
X69c5iVuyJRQ+Hz05yi+UF3uBWAlHpiS5sh0+H2GHE7SXrk1EC5m1Tr19L9gg92j
YzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRY
wB5fkUWlZql6zJChkyLQKsXF+jAfBgNVHSMEGDAWgBRYwB5fkUWlZql6zJChkyLQ
KsXF+jAKBggqhkjOPQQDAwNpADBmAjEAj1nHeXZp+13NWBNa+EDsDP8G1WWg1tCM
WP/WHPqpaVo0jhsweNFZgSs0eE7wYI4qAjEA2WB9ot98sIkoF3vZYdd3/VtWB5b9
TNMea7Ix/stJ5TfcLLeABLE4BNJOsQ4vnBHJ
-----END CERTIFICATE-----
$ tuf-client get https://tuf-repo-cdn.sigstore.dev fulcio_intermediate_v1.crt.pem
-----BEGIN CERTIFICATE-----
MIICGjCCAaGgAwIBAgIUALnViVfnU0brJasmRkHrn/UnfaQwCgYIKoZIzj0EAwMw
KjEVMBMGA1UEChMMc2lnc3RvcmUuZGV2MREwDwYDVQQDEwhzaWdzdG9yZTAeFw0y
MjA0MTMyMDA2MTVaFw0zMTEwMDUxMzU2NThaMDcxFTATBgNVBAoTDHNpZ3N0b3Jl
LmRldjEeMBwGA1UEAxMVc2lnc3RvcmUtaW50ZXJtZWRpYXRlMHYwEAYHKoZIzj0C
AQYFK4EEACIDYgAE8RVS/ysH+NOvuDZyPIZtilgUF9NlarYpAd9HP1vBBH1U5CV7
7LSS7s0ZiH4nE7Hv7ptS6LvvR/STk798LVgMzLlJ4HeIfF3tHSaexLcYpSASr1kS
0N/RgBJz/9jWCiXno3sweTAOBgNVHQ8BAf8EBAMCAQYwEwYDVR0lBAwwCgYIKwYB
BQUHAwMwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU39Ppz1YkEZb5qNjp
KFWixi4YZD8wHwYDVR0jBBgwFoAUWMAeX5FFpWapesyQoZMi0CrFxfowCgYIKoZI
zj0EAwMDZwAwZAIwPCsQK4DYiZYDPIaDi5HFKnfxXx6ASSVmERfsynYBiX2X6SJR
nZU84/9DZdnFvvxmAjBOt6QpBlc4J/0DxvkTCqpclvziL6BCCPnjdlIB3Pu3BxsP
mygUY7Ii2zbdCdliiow=
-----END CERTIFICATE-----
Certificate Maker는 Fulcio 호환 인증서 체인을 생성하기 위한 도구입니다. 지원하는 기능은 다음과 같습니다:
자세한 사용 방법과 예제는 Certificate Maker 문서를 참조하세요.
아티팩트 서명 키를 사용하여 서명된 릴리스(fulcio-<os>.sig)를 검증할 수도 있습니다:
tuf-client get https://tuf-repo-cdn.sigstore.dev artifact.pub > artifact.pub
curl -o fulcio-release.sig -L https://github.com/sigstore/fulcio/releases/download/<version>/fulcio-<os>.sig
base64 -d fulcio-release.sig > fulcio-release.sig.decoded
curl -o fulcio-release -L https://github.com/sigstore/fulcio/releases/download/<version>/fulcio-<os>
openssl dgst -sha256 -verify artifact.pub -signature fulcio-release.sig.decoded fulcio-release
API는 여기에 정의되어 있습니다. API는 HTTP 또는 gRPC를 통해 접근할 수 있습니다.
Fulcio는 발급된 인증서를 인증서 투명성 로그(CT log)에 게시합니다. 로그는 https://ctfe.sigstore.dev/test에서 호스팅됩니다. 매년 로그는 새 로그 ID로 업데이트됩니다(예: https://ctfe.sigstore.dev/2022).
로그는 RFC 6962에 문서화된 API를 제공합니다.
감사자들은 무결성과 특정 신원 모두를 위해 이 로그를 모니터링할 것을 권장합니다. 예를 들어, 감사자는 특정 이메일 주소에 대해 인증서가 발급되는 시점을 모니터링할 수 있으며, 이를 통해 잘못된 구성이나 사용자 신원의 잠재적 침해를 감지할 수 있습니다.
취약점은 sigstore의 보안 프로세스에 따라 신고해 주세요.
Fulcio는 sigstore 프로젝트의 일부로 개발되고 있습니다.
또한 슬랙 채널도 사용합니다! Slack 및 기타 커뮤니케이션 채널에 대한 자세한 정보는 커뮤니티 저장소를 확인하세요.
이 README 파일 외에도 docs 폴더에는 다음과 같은 추가 문서가 포함되어 있습니다:
이러한 주제 중 하나를 변경하는 경우, 위에 나열된 해당 파일도 편집해야 합니다.