
OpenID Connect アイデンティティに紐付けられた短命のコード署名証明書を発行する認証局。検証可能なソフトウェアサプライチェーン署名を実現します。
コード署名のための無料 CA
Fulcio は、OpenID Connect (OIDC) アイデンティティ(メールアドレスなど)に対してコード署名証明書を発行するための、無料で使用できる認証局です。
Fulcio は、10 分間有効な短期間の証明書のみを発行します。
Fulcio は一般提供中で、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 は発行した証明書を Certificate Transparency ログ (CT ログ) に公開します。ログは https://ctfe.sigstore.dev/test でホストされています。ログは毎年新しいログ ID に更新されます。例: https://ctfe.sigstore.dev/2022
このログは、RFC 6962 で文書化された API を提供します。
監査者には、整合性と特定のアイデンティティの両方についてこのログを監視することをお勧めします。たとえば、特定のメールアドレスに対して証明書が発行されたときを監視することで、設定ミスやユーザーのアイデンティティの潜在的な侵害を検出できます。
脆弱性は、sigstore の セキュリティプロセス に従って報告してください。
Fulcio は sigstore プロジェクトの一部として開発されています。
また、slack チャンネル も使用しています。Slack やその他のコミュニケーションチャネルの詳細については、コミュニティリポジトリ を確認してください。
この README ファイルに加えて、docs フォルダーには追加のドキュメントが含まれています:
これらのトピックのいずれかに変更を加える場合は、上記の該当ファイルも必ず編集してください。