Git 3.0では、デフォルトのコンテンツハッシュアルゴリズムをSHA-1からSHA-256に変更する予定で、Scott ChaconはGitButlerにおいてこの移行を『理解不能なほど高コストであり、最終的に価値のない回避可能な地球規模の悪夢』と表現している。彼は、この変更は`git init`で作成されるすべての新しいリポジトリに影響を及ぼし、明示的に上書きしない限りSHA-256が使用されることを指摘している。

新しいリポジトリ作成時にハッシュアルゴリズムの選択肢を示すForgeインターフェース
新しいリポジトリを初期化する際にハッシュアルゴリズム(SHA-1またはSHA-256)を選択するようユーザーに尋ねるコードForgeインターフェースのモックアップ。これにより、Git 3.0のデフォルト変更がユーザーに与える影響が示されている。blog.gitbutler.com

この画像は、Gitのデフォルトハッシュアルゴリズムの変更が`git init`で作成されるすべての新しいリポジトリに影響を及ぼし、ほとんどのユーザーが理解できない可能性がある中で、情報に基づいた選択を強制されるという記事の点を裏付ける。

Chaconは、SHA-1が衝突攻撃(SHAtteredデモなど)に対して理論的な弱点を示しているものの、それらの弱点を悪用するには天文学的な計算リソースが必要であり、巨大なGPUファームを使っても数十億年かかると見積もられていると主張する。さらに、バージョン管理システムへの実際の攻撃はハッシュの衝突ではなく、信頼できる配布チャネルの侵害に依存しているとし、Linus Torvaldsの『実際のセキュリティは配布にある』という見解に同意している。

ブログ記事によれば、実際の影響は、SHA-256で初期化されたリポジトリは、GitHubや同様のホストが明示的にサポートを追加するまでプッシュできなくなることで、プロジェクトは一方のハッシュアルゴリズムに固執せざるを得なくなり、SHA-1ハッシュを前提とした既存のツール、ビルドスクリプト、ワークフローが壊れる可能性がある。Chaconはこれをほとんどセキュリティ上の利益がないと見ている。

ハッシュアルゴリズムの非互換性により斜線が引かれたさまざまな開発ツールを示す図
新しいSHA-256デフォルトのリポジトリに直面した際、SHA-1ハッシュを期待する既存のツールがどのように壊れる可能性があるかを視覚的に表し、記事で述べられた実際の影響を強調している。blog.gitbutler.com

この画像は、SHA-256で初期化されたリポジトリはGitHubや同様のホストがサポートを追加するまでプッシュできず、SHA-1ハッシュを前提とした既存のワークフローやビルドスクリプトが壊れる可能性があるという記事の主張を示している。