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

C2PA Claim 위치와 구조 오류를 검토하는 방법

파일과 validator 출력을 보존합니다

C2PA validator로 열기 전에 실제 파일을 그대로 저장합니다. 출처 URL 또는 local path, 가져온 시각, 파일 식별자, validator 이름과 version, current manifest label, 전체 출력을 기록합니다. 같은 bytes와 validator version을 찾을 수 없다면 후속 결과로 첫 검토를 재현하기 어렵습니다. 이 기록표는 본문이 제안하는 실무 방식이며 C2PA가 요구하는 보고 형식은 아닙니다.

질문은 하나의 허용된 claim box를 찾고 구조를 해석하며 claim이 요구하는 reference를 해결했는지로 제한합니다. 이 단계는 claim signature의 암호학적 검증과 assertion 내용 검증보다 앞섭니다. 구조 통과는 caption, 인물, 날짜, 장소, 사건이 사실임을 증명하지 않습니다. 구조 실패도 그 주장이 거짓이라는 증거가 아닙니다.

Claim box가 정확히 하나인지 확인합니다

Current manifest를 찾은 뒤 validator는 claim JUMBF Superbox를 찾습니다. Version 2 claim의 label은 c2pa.claim.v2, 이전 형식은 c2pa.claim입니다. 둘 다 JUMBF type UUID 6332636C-0011-0010-8000-00AA00389B71, 즉 c2cl을 사용합니다. 파일명으로 version을 추정하지 말고 도구가 보고한 label과 UUID를 기록합니다.

Current manifest 안에는 해당 box가 하나만 있어야 합니다. 둘 이상이면 claim.multiple로 reject됩니다. 개수와 정확한 code를 함께 보존합니다. 빨간 badge만 남기면 이 조건을 claim 누락, 접근 불가, 구조 오류와 구분할 수 없습니다. 도구가 개수를 표시하지 않으면 미보고로 적고 다른 validator에서 확인할 수 있도록 전체 출력을 남깁니다.

이 확인은 active manifest 위치 확인과 별개입니다. 앞 단계는 어느 manifest가 current인지 정하고, 여기서는 그 manifest 안의 claim을 찾습니다. 두 식별자를 모두 기록해야 다른 담당자가 어느 객체에서 오류가 발생했는지 확인할 수 있습니다.

CBOR와 필수 필드를 점검합니다

Claim 내용은 well-formed CBOR여야 합니다. C2PA는 이 검사를 위해 RFC 8949 Appendix C를 참조합니다. CBOR가 올바르지 않으면 claim.cbor.invalid입니다. 전송, 편집 또는 generator가 원인이라고 추정하지 말고 code를 그대로 보존합니다. 이 code는 실패한 구조 검사만 나타냅니다.

c2pa.claim.v2 object에는 명세가 정한 필수 field가 있습니다. 하나라도 없으면 claim.malformed로 reject됩니다. claim_generator_info에 필수 name이 없을 때도 같은 code가 사용됩니다. Validator가 누락 field를 보여 주면 함께 기록합니다. claim.malformed만 제공하면 field 이름을 만들어내지 말고 상세 정보를 보여 주는 도구에서 확인할 미해결 항목으로 남깁니다.

Generator information의 icon은 reference이므로 명세의 reference 규칙에 따라 검증합니다. Icon, 도구 이름, version이 표시됐다는 사실은 모든 provenance 진술이 맞다는 뜻이 아닙니다. Claim 구조에서 확인할 별도 reference가 하나 더 있다는 의미입니다.

Signature와 assertion reference를 분리해 확인합니다

Claim의 signature field에서 URI를 읽어 COSE signature 위치를 해결합니다. Signature는 같은 manifest 안에 embedded되어야 합니다. 허용된 self#jumbf 위치가 아니라 C2PA Manifest box 밖을 가리키면 claim이 reject됩니다. 암호학적 signature 검사로 넘어가기 전에 URI 원문, 해결 결과, 반환 code를 기록합니다. 이 글은 위치와 구조까지만 다루며 signature 값, certificate chain, time-stamp, revocation 검증을 대신하지 않습니다.

제한된 결과로 보고합니다

파일 식별자, manifest label, claim label, box 개수, CBOR 결과, 필수 field 결과, signature URI, validator code, version, 미해결 질문을 한 표에 둡니다. 전체 출력도 첨부합니다. 그래야 claim.multiple, claim.cbor.invalid, claim.malformed를 이후 signature 또는 assertion failure와 구분할 수 있습니다.

보존한 asset을 DeepFakeCheck로 분석한다면 확률적 risk signal을 C2PA 구조 표 밖에 둡니다. 자동 탐지는 진짜 media를 의심하는 오탐과 합성 또는 변경 media를 놓치는 미탐을 낼 수 있습니다. DeepFakeCheck는 claim box를 찾거나 본문의 C2PA code를 발행하지 않습니다.

구조 통과는 해당 validator 실행에서 current manifest의 claim이 이 위치와 구조 검사를 통과했다는 제한된 관찰입니다. 실패는 조사할 구체적인 기술 조건을 가리킵니다. Publisher, caption, 인물, 날짜, 장소와 사건은 원 출처 및 독립 자료로 확인합니다.

출처

  • C2PA, “C2PA Technical Specification, Locating and Validating the Claim”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_locating_and_validating_the_claim

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

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

이미지 분석하기