Git 3.0 SHA-256 기본값, 큰 실수될 것

원제: Git 3.0's upcoming SHA-256 default will be a costly mistake

왜 중요한가

Git은 전 세계 소프트웨어 개발 인프라의 근간으로, 기본 해시 변경은 수억 개 저장소와 연동 도구 전체에 연쇄 영향을 미친다.

GitButler 공동창업자 Scott Chacon이 블로그를 통해 Git 3.0의 SHA-256 기본 해시 알고리즘 전환을 정면 비판했다. SHA-1의 충돌 공격(2017년 SHAttered, 2020년 SHA-1 is a Shambles)이 이론적으로 가능해졌지만, 실제 Git 운용 환경에서 피해 사례는 전무하며 전환 비용 대비 실익이 없다는 것이 핵심 주장이다.

Git은 콘텐츠 주소 지정 방식의 키-값 데이터베이스로, 2005년 Linus Torvalds가 SHA-1을 기본 해시 알고리즘으로 채택한 이후 20년간 수십억 개의 파일·커밋·트리 객체를 저장해 왔다. SHA-1의 160비트 출력 기준으로 동일 프로젝트 내 해시 충돌이 우연히 발생하려면 약 1.4 septillion(1.4×10²⁴)개의 파일이 필요하며, 실제로 이런 사고는 Git 역사 전체를 통틀어 단 한 번도 보고된 적이 없다.

Chaon은 2017년 SHAttered 공격과 2020년 SHA-1 is a Shambles 논문으로 SHA-1이 수학적으로 '깨진' 것은 사실이지만, 이는 '충분한 GPU와 비용을 투입하면 의도적 충돌 생성이 가능하다'는 의미일 뿐이라고 설명한다. Git이 이미 적용 중인 SHA-1DC(충돌 탐지) 패치가 이런 공격을 실질적으로 차단하고 있어 추가 위협이 제한적이라는 것이다.

반면 SHA-256으로의 기본값 전환은 기존 SHA-1 기반 저장소와의 상호운용성 단절이라는 현실적 문제를 야기한다. GitHub, GitLab 등 주요 호스팅 플랫폼과 수많은 CI/CD 도구, 스크립트, 내부 시스템이 40자리 SHA-1 해시를 전제로 구축되어 있어, 64자리 SHA-256 해시로 전환될 경우 업계 전반의 마이그레이션 작업이 불가피하다. Chacon은 이 비용이 얻는 보안 이점에 비해 '이해하기 어려울 정도로' 크다고 주장하며, Git 개발 커뮤니티가 이 변화의 파급력을 제대로 인식하지 못하고 있다고 경고했다.

출처

blog.gitbutler.com — 원문 읽기 →