パッケージ署名
パッケージ署名 とは何ですか?
パッケージ署名ソフトウェアパッケージに暗号学的署名を付与し、利用者が発行者の身元と公開後に改ざんされていないことを検証できるようにする仕組み。
パッケージ署名は、成果物(バイナリ・ライブラリ・コンテナイメージ・OS パッケージ・言語モジュール)を発行者の暗号学的アイデンティティに結びつけます。利用側は、インストールや実行の前に署名を期待する鍵・証明書・透明性ログのエントリと照合します。代表的なエコシステムには、OCI イメージや言語パッケージ向けの Sigstore Cosign、GPG 署名された Linux ディストリビューションパッケージ、Windows の Authenticode、macOS/iOS の codesign、PGP を用いる Maven Central などがあります。現代では、長期間オフラインで保管する鍵よりも、短命な鍵と OIDC ベースのアイデンティティ(Sigstore)+ 透明性ログ(Rekor)による公開監査性が好まれます。パッケージ署名は SBOM、SLSA プロベナンス、再現可能ビルドと相補的で、「誰が公開し改ざんされていないか」を答えるのに対し、他は「何が入っていて、どう作られたか」を答えます。
● 例
- 01
リリースバイナリに Sigstore Cosign で署名し、署名を Rekor に公開する運用。
- 02
apt とディストリビューションの GPG 公開鍵で Debian パッケージの署名を検証する例。
● よくある質問
パッケージ署名 とは何ですか?
ソフトウェアパッケージに暗号学的署名を付与し、利用者が発行者の身元と公開後に改ざんされていないことを検証できるようにする仕組み。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
パッケージ署名 とはどういう意味ですか?
ソフトウェアパッケージに暗号学的署名を付与し、利用者が発行者の身元と公開後に改ざんされていないことを検証できるようにする仕組み。
パッケージ署名 はどのように機能しますか?
パッケージ署名は、成果物(バイナリ・ライブラリ・コンテナイメージ・OS パッケージ・言語モジュール)を発行者の暗号学的アイデンティティに結びつけます。利用側は、インストールや実行の前に署名を期待する鍵・証明書・透明性ログのエントリと照合します。代表的なエコシステムには、OCI イメージや言語パッケージ向けの Sigstore Cosign、GPG 署名された Linux ディストリビューションパッケージ、Windows の Authenticode、macOS/iOS の codesign、PGP を用いる Maven Central などがあります。現代では、長期間オフラインで保管する鍵よりも、短命な鍵と OIDC ベースのアイデンティティ(Sigstore)+ 透明性ログ(Rekor)による公開監査性が好まれます。パッケージ署名は SBOM、SLSA プロベナンス、再現可能ビルドと相補的で、「誰が公開し改ざんされていないか」を答えるのに対し、他は「何が入っていて、どう作られたか」を答えます。
パッケージ署名 からどのように防御しますか?
パッケージ署名 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
パッケージ署名 の別名は何ですか?
一般的な別名: コード署名, アーティファクト署名。
● 関連用語
- appsec№ 226
Cosign
Sigstore プロジェクト由来のオープンソース CLI で、OCI 成果物などのソフトウェアに対し、鍵あり・鍵なし両方のワークフローで署名・検証・アテステーションを行うツール。
- appsec№ 1044
Sigstore
短命な鍵・OIDC ID・透明性ログを組み合わせ、ソフトウェア成果物の署名・検証・保護を容易にする、Linux Foundation のオープンソースプロジェクト。
- appsec№ 1069
ソフトウェアサプライチェーンセキュリティ
ソースコード・依存関係・ビルド・署名・配布・デプロイに至るまで、ソフトウェア製造の各リンクを改ざん・悪意あるコード・完全性喪失から守る取り組み。
- appsec№ 870
プロベナンスアテステーション
ソフトウェア成果物がどのように作られたか(ソース・ビルドシステム・パラメータ・依存関係)を、署名付きかつ機械可読な形で記述する宣言で、利用者がその出所を信頼できるようにするもの。
- cryptography№ 321
デジタル署名
メッセージや文書の真正性・完全性・否認防止を証明する公開鍵暗号方式のメカニズム。
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts:OpenSSF が公開する段階的要件集で、ソフトウェアのビルド・署名・検証を強化し、サプライチェーン改ざんに対する耐性を段階的に高めるもの。
● 関連項目
- № 304依存関係混同攻撃(Dependency Confusion)
- № 305依存関係のピン留め
- № 921再現可能ビルド
- № 166CI/CD セキュリティ
- № 444GitOps セキュリティ