기타 Lobsters · 4일 전

"그냥 합쳐서 해시 돌렸더니 대참사"… 개발자용 다중 해시 오픈소스 공개

핵심 요약
  • 보안 기업 트레일 오브 비츠가 다양한 해시 함수와 호환되는 새로운 다중 해시 규격 'SequenceHash'와 'SequenceMAC'을 발표했습니다.
  • 단순 연결 방식으로 데이터를 합칠 경우 동일 해시가 나와 영지식 증명 등에서 심각한 위조 취약점이 생기는 문제를 해결합니다.
  • 기존 NIST TupleHash의 한계를 넘어 SHA-256 등 범용 해시를 지원하며 Rust, Go, Python 구현체가 함께 공개되었습니다.
요약 보안 전문 기업 트레일 오브 비츠(Trail of Bits)가 개발자들을 위한 새로운 다중 해시(Multihashing) 규격인 'SequenceHash'와 자매 함수 'SequenceMAC'을 공개했습니다. 암호학에서 여러 개의 입력값을 하나로 묶어 해시를 생성하는 '다중 해싱'은 영지식 증명(ZKP)의 피아트-샤미르 변환(Fiat-Shamir transform), 아카이브 파일 무결성 검증, 암호화폐 트랜잭션 묶음 처리 등 다양한 분야에서 널리 쓰이는 핵심 작업입니다. 하지만 단순하게 문자열을 이어 붙여(Concatenate) 해시를 돌릴 경우, 서로 다른 입력값 조합(예: ['Test 0', 'Test 1', 'Test 2']와 ['Test 0Test 1', 'Test 2'])이 완벽히 동일한 해시 결과를 산출하는 입력 인코딩 모호성 취약점이 발생합니다. 특히 암호화폐 분야의 영지식 증명에서 이러한 실수가 발생하면 수백만 달러 규모의 위조 공격으로 직결될 수 있습니다. 현재 개발 현장에서는 구분자 문자를 어설프게 쓰거나 Base64 인코딩 후 특수문자로 쪼개는 등 표준화되지 않고 위험한 방식이 난립해 왔습니다. 미국 국립표준기술연구소(NIST)의 'TupleHash'라는 표준이 존재하지만, 이는 특정 해시 계열(Keccak)에 묶여 있고 바이트 정렬되지 않은 복잡한 계산이 필요하다는 단점이 있었습니다. 이에 트레일 오브 비츠는 SHA-256/384/512, BLAKE, RIPEMD 등 기존의 거의 모든 안전한 해시 함수와 즉시 연동되는 'SequenceHash'를 설계해 커뮤니티 암호학 규격 프로젝트(C2SP)에 포함시켰습니다. 현재 Rust, Go, Python용 초기 구현체와 디버깅을 위한 테스트 벡터도 함께 배포된 상태입니다.
Sponsored · 광고