
Autoridade certificadora que emite certificados de assinatura de código de curta duração vinculados a identidades OpenID Connect, permitindo assinaturas verificáveis na cadeia de suprimentos de software.
Uma CA de uso gratuito para assinatura de código
Fulcio é uma autoridade certificadora de uso gratuito para emitir certificados de assinatura de código para uma identidade OpenID Connect (OIDC), como um endereço de e-mail.
Fulcio emite apenas certificados de curta duração que são válidos por 10 minutos.
Fulcio está em Disponibilidade Geral, oferecendo um SLO de disponibilidade de 99,5%, e segue as regras de semver para estabilidade da API.
Para dados de disponibilidade da instância pública do Fulcio, consulte https://status.sigstore.dev.
A cadeia de certificados do Fulcio pode ser obtida por meio da API TrustBundle, por exemplo, para a instância pública
(https://fulcio.sigstore.dev). Para verificar a instância pública,
você deve verificar a cadeia usando a raiz TUF da Sigstore, do
repositório sigstore/root-signing).
Para isso, instale e use as ferramentas CLI do go-tuf:
$ go install github.com/theupdateframework/go-tuf/cmd/tuf-client@latest
Em seguida, obtenha as chaves raiz confiáveis da Sigstore. Você usará a 5ª iteração da raiz TUF da Sigstore para iniciar a raiz de confiança, devido a uma mudança incompatível com versões anteriores.
curl -o sigstore-root.json https://raw.githubusercontent.com/sigstore/root-signing/main/metadata/root_history/5.root.json
Inicialize o cliente TUF com a raiz obtida anteriormente e o repositório remoto, https://tuf-repo-cdn.sigstore.dev,
e obtenha o certificado raiz atual do Fulcio fulcio_v1.crt.pem e o certificado intermediário 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 é uma ferramenta para criar cadeias de certificados compatíveis com Fulcio. Ele suporta:
Para instruções detalhadas de uso e exemplos, consulte a documentação do Certificate Maker.
Você também pode verificar lançamentos assinados (fulcio-<os>.sig) usando a chave de assinatura do artefato:
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
A API está definida aqui. A API pode ser acessada via HTTP ou gRPC.
Fulcio publicará os certificados emitidos em um log de Transparência de Certificados (CT log). O log está hospedado em https://ctfe.sigstore.dev/test. A cada ano, o log será atualizado para um novo ID de log, por exemplo https://ctfe.sigstore.dev/2022.
O log fornece uma API documentada na RFC 6962.
Incentivamos auditores a monitorar este log tanto para integridade quanto para identidades específicas. Por exemplo, auditores podem monitorar quando um certificado é emitido para determinados endereços de e-mail, o que detectará configuração incorreta ou possível comprometimento da identidade do usuário.
Relate quaisquer vulnerabilidades seguindo o processo de segurança da sigstore.
Fulcio é desenvolvido como parte do projeto sigstore.
Também usamos um canal do Slack! Para obter mais informações sobre o Slack e outros canais de comunicação, consulte o repositório da comunidade
Além deste arquivo README, a pasta docs contém a documentação adicional:
Se você estiver fazendo alterações em qualquer um desses assuntos, certifique-se de também editar o arquivo apropriado listado acima.