Git 3.0のSHA-256デフォルト化は高コストな誤り

原題: Git 3.0's upcoming SHA-256 default will be a costly mistake

なぜ重要か

SHA-256移行はGitHub等すべてのホスティング基盤に影響し、対応コストは業界全体で数億ドル規模になりうる転換点となる。

Git共同創設者でGitButler開発者のScott Chaconが、Git 3.0でSHA-256をデフォルトのハッシュアルゴリズムとする計画について強く警鐘を鳴らした。SHA-1の「破損」は理論上の脅威に留まり、実際の被害報告はゼロ。一方でSHA-256への移行は全世界のリポジトリに対して膨大なコストと互換性問題をもたらすと指摘している。

GitButlerの開発者でGitの共同創設者でもあるScott Chaconが、自社ブログ「Butler's Log」にてGit 3.0の重大な設計判断を批判する長文記事を公開した。

Gitは2005年のLinus Torvalds設計以来、コンテンツアドレッサブルなキー・バリューデータベースとしてSHA-1ハッシュを採用してきた。同アルゴリズムは160ビット出力を持ち、誕生日境界の観点から単一プロジェクト内で偶発的な衝突が起きるには約1.4セプティリオン個のファイルが必要で、現実的には不可能に近い。実際、これまで数十億ものリポジトリで意図せずSHA-1衝突が発生した事例は一件も確認されていないとChaconは述べる。

問題の発端はSHA-1が暗号学的に「破損」と見なされるようになったことだ。2017年の「SHAttered」、2020年の「SHA-1 is a Shambles」といった研究により、大量のGPUと資金を投じれば意図的に衝突を生成できる理論的手法が示された。これを受け、Git開発コミュニティはSHA-256をデフォルトに変更するGit 3.0の準備を進めている。

しかしChaconが問題視するのは、「破損」の実態だ。衝突攻撃が理論上可能になったとはいえ、Gitのユースケースで悪意ある衝突を実際に悪用した事例は皆無に等しく、仮に衝突が起きても被害はリポジトリの整合性チェックエラー程度に留まる可能性が高い。一方でSHA-256移行の代償は甚大で、既存のSHA-1ベースのリポジトリとSHA-256リポジトリは互換性がなく、GitHub・GitLab・Bitbucketをはじめとするすべてのホスティングサービス、CIツール、クライアントが対応を迫られる。世界中の開発者が移行コストを負担することになる。

Chaconは「実害がほぼゼロの脅威に対して、全人類の開発インフラを巻き込む変更を加えるのは割に合わない」というのが主旨であり、Git 3.0リリース前にこの議論を広める必要があると訴えている。記事は「virtually nobody knows what's coming(ほぼ誰もこの変更を知らない)」と締めている。

出典

blog.gitbutler.com — 元記事を読む →