HN 日本語サマリー

← 一覧へ戻る
プログラミング

Git Hash Chain Malleability

Git Hash Chain Malleability (arxiv.org)

9 pointsby xqb645 コメント

要約

Gitのコミット署名が、コミットハッシュが特定の署名済みコンテンツを一意かつ不変に識別するという保証を満たさないことが示されました。攻撃者は署名鍵なしで、SHA2を破ることなく、同一のツリー、メタデータ、有効な署名を持つ別のコミットを作成できます。これにより、後続のすべてのコミットハッシュの値が連鎖的に変更される「ハッシュチェーンの可変性」という現象が発生します。この論文では、ECDSAの代数的逆元、OpenPGPサブパケットの挿入、DERエンコーディングの再エンコーディングといった3つの可変経路を示し、GitHubなどのGitフォージで「Verified」バッジを取得できることを証明しています。

全文翻訳

コンピュータサイエンス > 暗号理論とセキュリティ arXiv:2607.02820 (cs) [2026年7月2日提出] タイトル: Git Hash Chain Malleability 著者: Jacob Ginesin Jacob Ginesinによる「Git Hash Chain Malleability」というタイトルのPDFを表示 PDFを表示 HTML(実験的) 要旨: Gitのコミット署名は、コミットハッシュが特定の署名済みコンテンツを一意かつ不変に識別するという証拠として広く信頼されています。私たちはこの不変性が成り立たないことを示します。署名鍵へのアクセスを持たず、SHA2を破ることなく、任意の署名済みコミットに対して、攻撃者は同一のツリー、同一のメタデータ、有効な署名、およびGithubのようなGit Forgeからの「Verified」バッジを持つ、コミットハッシュのみが異なる、2番目の異なるコミットを生成できます。変更されたコミットは、後続の依存するすべてのコミットハッシュの値を変更するために連鎖するため、この現象を説明するために「ハッシュチェーンの可変性」という用語を導入します。 署名済みGitハッシュの可変性は、コミットを構成する多くのデータ表現に存在する固有の可変性により実現可能です。本稿では、3つの可変経路を示します。(i) ECDSAの代数的逆元 s -> n-s; (ii) RSAおよびEdDSAのためのハッシュされないOpenPGPサブパケット(RFC4880 5.2.3)の構造的挿入; および (iii) S/MIMEのためのCMSエンベロープ内の非標準DER長再エンコーディング(X.690 10.1)。ECDSA署名の代数的逆元とサブパケット挿入はローカル検証(git verify-commit)を通過することが判明し、3つの方法すべてがGitHub上で永続的で独立した「Verified」レコードを生成します。ハッシュベースのコミットブロッキング、依存関係のピン留め(Nixpkgs、Go modules、Github Actions)、およびコミットハッシュをコンテンツアドレス可能なプライマリキーとして扱う再現可能なビルドシステムに対するGitハッシュチェーン可変性の結果について議論し、3つの経路すべてを自動化する概念実証ツールを提供します。 コメント: 5ページ 主題: 暗号理論とセキュリティ (cs.CR) ACMクラス: D.2.3 引用形式: arXiv:2607.02820 [cs.CR] (またはこのバージョンについては arXiv:2607.02820v1 [cs.CR]) https://doi.org/10.48550/arXiv.2607.02820 DataCite経由のarXiv発行DOI(登録保留中) 投稿履歴 投稿者: Jacob Ginesin [メールを表示] [v1] 2026年7月2日 木曜日 23:19:37 UTC (11 KB) 全文リンク: 論文にアクセス: Jacob Ginesinによる「Git Hash Chain Malleability」というタイトルのPDFを表示 PDFを表示 HTML(実験的) TeXソース 表示ライセンス 現在の閲覧コンテキスト: cs.CR < 前 | 次 > 新着 | 最近 | 2026-07 以下の方法で閲覧を変更: cs 参考文献と引用 NASA ADS Google Scholar Semantic Scholar エクスポート BibTeX引用 読み込み中... BibTeX形式の引用 × 読み込み中... 提供元データ: ブックマーク 書誌ツール 書誌および引用ツール 書誌エクスプローラー 書誌エクスプローラーを切り替える(エクスプローラーとは何ですか?) Connected Papers Connected Papersを切り替える(Connected Papersとは何ですか?) Litmaps Litmapsを切り替える(Litmapsとは何ですか?) scite.ai sciteスマート引用を切り替える(スマート引用とは何ですか?) コード、データ、メディア この論文に関連するコード、データ、メディア alphaXiv alphaXivを切り替える(alphaXivとは何ですか?) コードへのリンク CatalyzeX Papers for Code Finder(CatalyzeXとは何ですか?) DagsHub DagsHubを切り替える(DagsHubとは何ですか?) GotitPub Gotit.pubを切り替える(GotitPubとは何ですか?) Huggingface Hugging Faceを切り替える(Huggingfaceとは何ですか?) ScienceCast ScienceCastを切り替える(ScienceCastとは何ですか?) デモ デモ Replicate Replicateを切り替える(Replicateとは何ですか?) Spaces Hugging Face Spacesを切り替える(Spacesとは何ですか?) Spaces TXYZ.AIを切り替える(TXYZ.AIとは何ですか?) 関連記事 レコメンダーおよび検索ツール Influence Flowerへのリンク Influence Flower(Influence Flowersとは何ですか?) Coreレコメンダー COREレコメンダーを切り替える(COREレコメンダーとは何ですか?) 著者 会場 機関 トピック arXivLabsについて arXivLabs: コミュニティ協力者との実験的なプロジェクト arXivLabsは、協力者が当社のウェブサイトで直接新しいarXiv機能を開発および共有できるフレームワークです。arXivLabsと協力する個人および組織は、オープンさ、コミュニティ、卓越性、ユーザーデータプライバシーという私たちの価値観を受け入れ、受け入れています。arXivはこの価値観にコミットしており、それに準拠するパートナーのみと協力します。arXivコミュニティに価値をもたらすプロジェクトのアイデアがありますか?arXivLabsの詳細をご覧ください。 この論文の著者のうち、誰が推薦者ですか? | MathJaxを無効にする(MathJaxとは何ですか?)