
Autorità di certificazione che emette certificati di firma del codice a breve scadenza collegati a identità OpenID Connect, consentendo firme verificabili per la catena di approvvigionamento del software.
Una CA gratuita per la firma del codice
Fulcio è un'autorità di certificazione a uso gratuito per l'emissione di certificati di firma del codice per un'identità OpenID Connect (OIDC), come un indirizzo email.
Fulcio emette solo certificati di breve durata validi per 10 minuti.
Fulcio è in disponibilità generale, offrendo un SLO di disponibilità del 99.5, e segue le regole semver per la stabilità dell'API.
Per i dati di uptime dell'istanza pubblica di Fulcio, consulta https://status.sigstore.dev.
La catena di certificati di Fulcio può essere ottenuta dall'API TrustBundle, ad esempio per l'istanza pubblica (https://fulcio.sigstore.dev). Per verificare l'istanza pubblica, è necessario verificare la catena utilizzando la root TUF di Sigstore dal repository sigstore/root-signing).
Per fare ciò, installa e utilizza gli strumenti CLI di go-tuf:
$ go install github.com/theupdateframework/go-tuf/cmd/tuf-client@latest
Quindi, ottieni le chiavi root fidate per Sigstore. Dovrai utilizzare la 5ª iterazione della root TUF di Sigstore per avviare la radice di fiducia, a causa di una modifica non retrocompatibile.
curl -o sigstore-root.json https://raw.githubusercontent.com/sigstore/root-signing/main/metadata/root_history/5.root.json
Inizializza il client TUF con la root ottenuta in precedenza e il repository remoto, https://tuf-repo-cdn.sigstore.dev, e ottieni il certificato root corrente di Fulcio fulcio_v1.crt.pem e il certificato intermedio 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 è uno strumento per creare catene di certificati conformi a Fulcio. Supporta:
Per istruzioni dettagliate sull'uso ed esempi, consulta la documentazione di Certificate Maker.
Puoi anche verificare le release firmate (fulcio-<os>.sig) usando la chiave di firma degli artifact:
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
L'API è definita qui. L'API può essere utilizzata tramite HTTP o gRPC.
Fulcio pubblicherà i certificati emessi in un log di trasparenza dei certificati (CT log). Il log è ospitato all'indirizzo https://ctfe.sigstore.dev/test. Ogni anno, il log verrà aggiornato a un nuovo log ID, ad esempio https://ctfe.sigstore.dev/2022.
Il log fornisce un'API documentata nella RFC 6962.
Incoraggiamo gli auditor a monitorare questo log sia per l'integrità sia per identità specifiche. Ad esempio, gli auditor possono monitorare il momento in cui viene emesso un certificato per determinati indirizzi email, il che consente di rilevare una configurazione errata o una potenziale compromissione dell'identità dell'utente.
Segnala eventuali vulnerabilità seguendo il processo di sicurezza di sigstore.
Fulcio è sviluppato come parte del progetto sigstore.
Usiamo anche un canale Slack! Per maggiori informazioni su Slack e altri canali di comunicazione, consulta il repository della community
Oltre a questo file README, la cartella docs contiene la seguente documentazione aggiuntiva:
Se stai apportando modifiche a uno di questi argomenti, assicurati di modificare anche il file appropriato elencato sopra.