【シグストア】

Sigstore とは?

💡 コードの出所を証明する、ソフトウェアの戸籍制度
📌 このページのポイント
Sigstore — コード署名の3コンポーネント 開発者/CI OIDC Token Fulcio 認証局(CA) 短命証明書発行 Cosign 署名ツール sign / verify Rekor 透明性 ログ 署名済みコンテナイメージ sha256:abc123... ✓ signed 検証者 cosign verify ログ照合 Keyless署名のフロー OIDCトークン → Fulcioが一時証明書を発行 → Cosignで署名 → Rekorにログ記録(秘密鍵の長期保管不要)
Sigstore:Cosign・Fulcio・Rekorの3コンポーネントによるコード署名フロー
ひよこ ひよこ

Sigstoreって、コードに署名するためのもの?

ペンギン先生 ペンギン先生

そうだよ。配布するソフトウェアコンテナイメージに署名して、「このファイルは本当にこの人が作って、途中で改ざんされていない」と証明できる仕組みなんだ。

ひよこ ひよこ

コード署名って昔からあるんじゃないの?

ペンギン先生 ペンギン先生

従来の署名は秘密鍵の管理が大変で、鍵が漏れたら全署名が信用できなくなるリスクがあったんだ。SigstoreはOIDCトークンで一時的な証明書を使う「keyless署名」でその問題を解決したよ。

ひよこ ひよこ

Cosign・Fulcio・Rekorって3つが出てきたけど、それぞれ何なの?

ペンギン先生 ペンギン先生

Cosignが実際に署名・検証するCLIツール、FulcioがOIDCトークンをもとに短命証明書を発行する認証局、RekorがすべてのCosign署名を記録する改ざんできない透明性ログだよ。

ひよこ ひよこ

透明性ログって何がいいの?

ペンギン先生 ペンギン先生

全署名が公開ログに記録されるから、誰でも「この署名がいつ・どのIDで行われたか」を検証できるんだ。不正な署名があればすぐ発見できるよ。

ひよこ ひよこ

GitHub ActionsCI/CDで使えるって聞いたけど、設定は難しいの?

ペンギン先生 ペンギン先生

GitHubOIDCトークンをそのまま使えるから意外とシンプルだよ。`cosign sign` コマンドにイメージ名を渡すだけで署名できて、秘密鍵の管理は不要なんだ。近年はKubernetesリリースでも採用されてるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Sigstore」って出てきたら「コンテナイメージソフトウェアの改ざん検知・出所証明のフレームワーク」と思えればだいたいOK!
📖 おまけ:英語の意味
「Sigstore」 = 署名のストア(保管庫)
💬 「Sig(Signature=署名)」と「Store(保管庫)」を合わせた名前で、署名情報を透明性ログとして公開保管する仕組みを表してるんだよ
← 用語集にもどる