피드로 돌아가기
Hacker NewsHacker News
Security

IDL 기반 random 64-bit 도메인 분리자를 통해 암호학적 서명의 타입 오용 공격을 원천 차단함

Signing data structures the wrong way

2026년 4월 1일8advanced

Context

서명, 암호화, MAC, 해싱 전 데이터 패ackaging에서 도메인 분리가 부재하여 다른 타입의 데이터가 동일한 바이트 시퀀스로 직렬화될 수 있음. TreeRoot와 KeyRevoke처럼 필드 레이아웃이 일치하지만 의미는 다른 구조물 간 서명 위조 공격이 Bitcoin, Ethereum, TLS, JWTs, AWS 등에서 반복 발생함.

Technical Solution

  • Snowpack: IDL에 random 64-bit 도메인 분리자를 직접 삽입하는 직렬화 프레임워크를 개발함
  • GetUniqueTypeID(): 타입 시스템이 모든 서명 가능 객체에 도메인 분리자 반환을 강제하는 메서드를 인터페이스로 정의함
  • Sign/Verify 흐름: 도메인 분리자와 직렬화 데이터를 연결한 후 암호학 프리미티브에 전달함
  • Canonical Encoding: 최소 크기 정수 인코딩 사용, 다중 키-값 딕셔너리는 인코딩 배제하여 정규화 출력 보장함
  • Self-describing Bytes: 내부 변환 시 자체 기술 형식 사용하여 Snowpack 프로토콜 정의 없이도 전방 호환성 확보함

IDL 기반 분산 시스템 설계 시 struct 정의에 random 64-bit 도메인 분리자를 부여하고 타입 시스템으로 Sign/Verify/Encrypt 함수에 전달 가능한 객체를强制制限해야 함. 이를 통해 필드 레이아웃 충돌로 인한 서명 타입 오용 공격을 컴파일 타임에 차단할 수 있음.

원문 읽기