【コサイン】

Cosign とは?

最終更新:
💡 期待した署名者か、署名した内容と一致するかを確かめる

Sigstoreのソフトウェア署名・検証ツール。コンテナイメージやファイルなどの署名を確認し、期待する署名者と成果物の一致を確かめるために使う。署名が正しくても、そのソフトウェアの安全性や開発過程まで保証されるわけではない。

📌 このページのポイント
署名した相手と内容を、条件付きで確かめる 標準的なキーレス署名の概念例 署名者・CI 一時的な鍵ペアを使う 身元 発行 Fulcio 身元と公開鍵を結ぶ 短期証明書 署名 成果物 署名+証明書 記録 Rekor 透明ログ 成果物・署名・証明書 ログの証拠 利用者が検証 期待する身元・認証元/内容との一致 有効な署名 ≠ ソフトウェアの安全性の保証
矢印は身元情報の確認、証明書の受取り、署名・ログ記録、検証材料の受渡しを表します。一時的な秘密鍵を使うので「鍵が不要」ではありません。別の鍵管理方式や独自サービスの構成もあります。
ひよこ ひよこ
Cosignって何を確かめるツール?
ペンギン先生 ペンギン先生
Sigstoreの署名・検証ツールだよ。コンテナイメージやファイルに署名し、受け取った側が期待する署名者の署名か、署名された内容と一致するかを確認する。ソフトウェアの配布や利用の前に確かめる材料になるんだ。
ひよこ ひよこ
署名があれば、安全なソフトウェアなの?
ペンギン先生 ペンギン先生
署名だけでは判断できないよ。署名者は必ずしも作者とは限らないし、危険なコードにも署名できる。署名の検証は、決めた署名者や内容との一致を確かめるもの。コードの安全性やビルドの過程を確認するには、別の情報や検査も必要なんだ。
ひよこ ひよこ
キーレス署名は秘密鍵を使わないの?
ペンギン先生 ペンギン先生
秘密鍵は使うよ。署名時に一時的な鍵のペアを作り、OIDCで得た身元情報と公開鍵をFulcioの短期証明書で結び付ける。長く保管する秘密鍵を減らす仕組みなんだ。認証情報やCI環境が悪用される可能性まで、ゼロになるわけではないよ。
ひよこ ひよこ
署名の記録はどこに残るの?
ペンギン先生 ペンギン先生
標準的なキーレス署名ではRekorという透明ログに署名の情報を記録するよ。後から監査や検証に使えるんだ。ただしCosignには自分で管理する鍵を使う方式や、独自のSigstoreサービスを使う構成もある。すべてが同じ公開ログを使うとは限らないよ。
ひよこ ひよこ
開発ではどう使うの?
ペンギン先生 ペンギン先生
たとえばCIでビルドしたイメージを署名し、配布やデプロイ前に検証するよ。キーレス検証なら、期待する証明書の身元をcertificate-identity、認証元をcertificate-oidc-issuerで指定する。誰かの署名が有効というだけでなく、受け入れる相手を決めて確認するんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Cosign」って出てきたら「ソフトウェア成果物の署名者と内容の一致を確かめるツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Cosign」 = 共同署名・連署
💬 英語のco-signは「共同で署名する」という意味だよ。ここではSigstoreの署名・検証ツールの名前として使われているんだ

参考資料

← 用語集にもどる