DeepFake Check
블로그로 돌아가기
DeepCheckAI Team 3분 소요

C2PA Multi-Asset Hash로 여러 결합 자산을 검토하는 방법

Multi-part 파일과 validator 전체 출력을 보존합니다

C2PA 호환 validator로 열기 전에 실제 파일을 저장합니다. 출처, 입수 시각, 파일명, 크기, validator 이름과 version, active manifest label, 전체 출력을 기록합니다. 이 표는 본문이 제안하는 실무 방식이며 C2PA가 정한 보고 형식은 아닙니다. 첫 검증 전에 다시 export하거나 screenshot으로 대체하지 않습니다.

c2pa.hash.multi-asset label을 가진 assertion을 찾습니다. parts array의 순서를 유지하고 각 entry의 location, hashAssertion, optional 값을 같은 행에 둡니다. 규격에 따르면 이 assertion은 hard binding 처리에 영향을 주지만 그 자체가 hard binding은 아닙니다. Cloud data assertion에는 들어갈 수 없고, compressed manifest와 함께 쓰는 것은 호환성 평가가 끝날 때까지 피하도록 권고됩니다. 구조를 만든 software를 추정하지 말고 validator가 표시한 내용만 기록합니다.

확인할 질문은 이 파일의 각 part가 보고된 위치와 hash에 맞게 결합됐는지입니다. Caption, 인물, 장소, 날짜 또는 화면의 사건이 사실인지는 이 검사로 결정하지 않습니다.

각 location과 전체 byte 범위를 확인합니다

C2PA 2.2는 primary part를 포함한 모든 part를 parts 안의 part-hash-map object로 표현하도록 합니다. Location은 byteOffset과 length 조합 또는 bmffBox를 사용합니다. bmffBox일 때 part는 box header를 제외한 payload입니다. Locator를 그대로 옮기고 box path를 추정 byte offset으로 바꾸지 않습니다.

Part는 파일에 나타나는 순서대로 나열돼야 합니다. 전체 part는 서로 이어지고 겹치지 않으며 asset의 모든 byte를 덮어야 합니다. Byte 기반 entry에는 part 번호, start, length, 계산한 end, 다음 start를 표로 만듭니다. Gap, overlap, 역순 또는 덮이지 않은 tail은 구조상 문제입니다. Validator가 범위 계산에 필요한 값을 보여 주지 않으면 coverage를 미확인으로 두고 전체 출력을 보존합니다.

각 파일 사본은 별도 대상으로 다룹니다. 각 사본을 독립적으로 검증하고, 한 사본의 결과로 다른 사본의 빈 field를 채우지 않습니다.

각 part의 hash assertion을 추적합니다

각 hashAssertion은 해당 part의 hash assertion을 가리키는 hashed URI입니다. 참조 대상은 c2pa.hash.data 같은 standard hard binding assertion이어야 하며 label에는 .part와 필요한 multiple-instance identifier가 붙습니다. 이 suffix는 part binding을 asset 전체의 standard hard binding과 구분하고 한 manifest 안의 여러 part assertion을 허용합니다.

Validator가 보여 준 경우에만 URI 원문, 해석된 assertion label, hash algorithm과 결과를 기록합니다. Asset 전체 hard-binding 결과는 별도 행에 둡니다. 전체 파일 검사가 통과해도 실패하거나 미보고된 part 결과를 대신하지 않으며, 한 part 통과로 다른 part 상태를 판단할 수 없습니다.

optional boolean이 없으면 기본값은 false입니다. Optional part는 trusted signer가 참여하지 않는 workflow에서 제거될 수 있고, 나머지 파일의 무결성 검증은 유지할 수 있습니다. Field의 존재 여부와 값을 기록합니다. Assertion이 optional로 표시하지 않았거나 validator가 나머지 검사를 보고하지 않았다면 누락 part를 무해하다고 해석하지 않습니다.

Part 자체의 C2PA Manifest가 그 part 안에 self-contained 형태로 들어 있지 않다면, 규격은 해당 manifest를 asset의 Manifest Store에 저장하고 componentOf ingredient로 참조하도록 권고합니다. 검사 출력에 실제로 보일 때만 기록합니다.

무결성 결과와 사건 판단을 분리합니다

통과는 해당 validator가 이 파일에서 선언된 part 배치와 적용된 part hash를 일관되게 확인했다는 제한된 관찰입니다. 실패는 정확한 part, locator, URI, code 또는 message, 파일 사본에 연결합니다. 이 결과만으로 누가 언제 파일을 바꿨는지 또는 화면의 사건이 조작됐는지 알 수 없습니다.

보존한 파일을 DeepFakeCheck로 분석할 경우 확률적 결과는 C2PA 표 밖에 두고 실제 사본에 연결합니다. 자동 분석은 진짜 media를 잘못 표시하는 오탐과 합성·변경 media를 놓치는 미탐을 낼 수 있습니다. 확률적 결과는 C2PA validator 결과와 분리합니다.

파일, validator 전체 출력, part 범위 표, 해석된 hash reference, optional 상태, 별도 전체 asset 결과, 원 게시물 확인과 reviewer 결정을 함께 남깁니다.

출처

  • C2PA, “C2PA Technical Specification, Multi-Asset Hash”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_multi_asset_hash

혹시 AI가 만든 이미지인가요?

고정밀 딥페이크 탐지 도구로 이미지를 바로 분석해 보세요.

이미지 분석하기