
Autorité de certification délivrant des certificats de signature de code à courte durée de vie liés à des identités OpenID Connect, permettant des signatures vérifiables de la chaîne d'approvisionnement logicielle.
Autorité de certification gratuite pour la signature de code
Fulcio est une autorité de certification gratuite qui délivre des certificats de signature de code pour une identité OpenID Connect (OIDC), telle qu'une adresse e-mail.
Fulcio n'émet que des certificats à courte durée de validité, valables 10 minutes.
Fulcio est en disponibilité générale, offrant un SLO de disponibilité de 99,5 %, et suit les règles semver pour la stabilité de l'API.
Pour les données de disponibilité de l'instance publique Fulcio, consultez https://status.sigstore.dev.
La chaîne de certificats de Fulcio peut être obtenue via l'API TrustBundle, par exemple pour l'instance publique (https://fulcio.sigstore.dev). Pour vérifier l'instance publique, vous devez vérifier la chaîne à l'aide de la racine TUF de Sigstore issue du dépôt sigstore/root-signing.
Pour ce faire, installez et utilisez les outils CLI de go-tuf :
$ go install github.com/theupdateframework/go-tuf/cmd/tuf-client@latest
Ensuite, obtenez les clés racine de confiance pour Sigstore. Vous utiliserez la 5e itération de la racine TUF de Sigstore pour amorcer la racine de confiance, en raison d'un changement incompatible avec les versions antérieures.
curl -o sigstore-root.json https://raw.githubusercontent.com/sigstore/root-signing/main/metadata/root_history/5.root.json
Initialisez le client TUF avec la racine obtenue précédemment et le dépôt distant, https://tuf-repo-cdn.sigstore.dev, puis récupérez le certificat racine Fulcio actuel fulcio_v1.crt.pem et le certificat intermédiaire 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 est un outil permettant de créer des chaînes de certificats conformes à Fulcio. Il prend en charge :
Pour des instructions d'utilisation détaillées et des exemples, consultez la documentation de Certificate Maker.
Vous pouvez également vérifier les versions signées (fulcio-<os>.sig) à l'aide de la clé de signature des artefacts :
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 est définie ici. L'API est accessible via HTTP ou gRPC.
Fulcio publiera les certificats émis dans un journal de transparence des certificats (journal CT). Le journal est hébergé à l'adresse https://ctfe.sigstore.dev/test. Chaque année, le journal sera mis à jour avec un nouvel identifiant de journal, par exemple https://ctfe.sigstore.dev/2022.
Le journal fournit une API documentée dans la RFC 6962.
Nous encourageons les auditeurs à surveiller ce journal à la fois pour l'intégrité et pour des identités spécifiques. Par exemple, les auditeurs peuvent surveiller le moment où un certificat est émis pour certaines adresses e-mail, ce qui permet de détecter une mauvaise configuration ou une compromission potentielle de l'identité de l'utilisateur.
Veuillez signaler toute vulnérabilité en suivant le processus de sécurité de sigstore.
Fulcio est développé dans le cadre du projet sigstore.
Nous utilisons également un canal Slack ! Pour plus d'informations sur Slack et les autres canaux de communication, consultez le dépôt communautaire.
En plus de ce fichier README, le dossier docs contient la documentation complémentaire suivante :
Si vous apportez des modifications à l'un de ces sujets, assurez-vous de modifier également le fichier correspondant listé ci-dessus.