파일 해시를 변경하는 원리
대표적인 암호화 해시에는 MD5, SHA-1/256 등이 있으며, 암호화 해시 함수 설계의 핵심 특징은 “눈사태 효과”입니다. 입력에 아주 작은 변화가 있어도 출력에는 큰 변화가 발생한다는 뜻입니다. 즉, 단 1바이트만 수정해도 전체 해시값이 완전히 달라집니다. 예를 들어 2000자짜리 문서를 작성해 Word 파일로 저장한 뒤, 그중 문자 하나만 바꾸거나 공백 하나를 추가해도 이 파일의 md5는 완전히 바뀝니다. 따라서 “파일 해시를 변경한다”는 것의 본질은 파일명 같은 외부 속성이 아니라 파일 내용 자체를 변경하는 것입니다. 이러한 특성 때문에 파일 수준의 해시 변경은 비교적 쉽게 구현할 수 있습니다.
시스템과 형식에 따라 “메타데이터”의 귀속은 다릅니다. 메타데이터가 파일 데이터 안에 포함되어 있다면(예: JPEG/동영상 컨테이너 내부 태그) 이를 변경하면 해시가 바뀝니다. 반면 메타데이터가 파일 시스템의 외부 데이터 스트림이나 속성에 저장되어 있다면 이를 변경해도 파일 내용 기준으로 계산한 해시에는 영향을 주지 않습니다. 이것이 “파일명을 바꿔도 해시는 변하지 않지만, 내장 메타데이터를 바꾸면 해시가 변한다”는 일반적인 현상을 설명합니다.
동영상 플랫폼의 트랜스코딩과 “해시 변경 여부 식별”
사용자가 동영상 플랫폼에 동영상을 업로드하면, 플랫폼은 해당 동영상에 대해 다음 작업을 수행합니다.
원본 파일 수신
형식 검사 및 검증
트랜스코딩 처리(형식 변환, 해상도 조정, 압축)
키프레임 추출
다층 해시 계산
이는 “역다중화→디코딩→처리→재인코딩→다중화”로 이어지는 트랜스코딩 파이프라인으로, 다중 비트레이트/다중 해상도의 적응형 재생용 여러 버전을 생성합니다. 이 과정 자체가 파일의 바이트 시퀀스와 업로드 전의 모든 암호화 해시를 변경합니다.
파일 해시 측면에서 보면, 플랫폼은 트랜스코딩 과정에서 파일을 새로 생성하므로 원본 파일 해시는 자연스럽게 변경됩니다. 따라서 사용자가 미리 수정한 파일 해시는 트랜스코딩 후에는 아무 의미가 없습니다. 그래서 플랫폼은 이 파일의 md5 등이 수정되었는지 식별하려 하지 않습니다. 아무런 의미가 없기 때문입니다!
중복 제거/저작권 검사 단계는 업로더의 파일 해시에 의존하지 않습니다. 대신 플랫폼이 디코딩된 콘텐츠를 기반으로 자체 “오디오·비디오 지문/지각 해시”를 계산하고, 데이터베이스의 기준 지문과 비교합니다. 예를 들어 YouTube의 Content ID는 업로드된 콘텐츠를 “지문화”하여 권리자가 제공한 기준 자료와 매칭합니다.
따라서 플랫폼은 “해시가 변경되었는지 식별”하는 것이 아니라 “업로드 해시는 무시하고, 콘텐츠 지문을 다시 계산해 매칭”합니다. 이 때문에 단순히 파일 바이트나 컨테이너 메타데이터를 수정해 MD5/SHA를 바꾸는 것만으로는 콘텐츠 기반 검사를 우회할 수 없습니다.