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

C2PA Claim 서명 검증 결과를 확인하는 방법

정확한 파일과 전체 출력을 보존합니다

미디어 파일을 편집하지 않고 저장한 뒤 C2PA 호환 validator의 전체 출력을 보존합니다. 파일명, 입수 경로와 시각, validator 이름과 버전을 기록합니다. 플랫폼이 여러 사본을 제공하면 각각 다른 식별자를 부여합니다. 검증 결과는 실제로 검사한 사본에만 연결해야 합니다. 이 기록 방식은 본문이 제안하는 실무 절차이며 C2PA가 요구하는 절차는 아닙니다.

질문은 좁게 유지합니다. validator가 명세에 정의된 절차에 따라 claim signature를 찾고 검증했는지 확인합니다. 색상 badge나 한 단어 결과만으로는 어느 단계가 통과하거나 실패했는지 알기 어렵습니다. 다음 검토자가 같은 검사를 반복할 수 있도록 원래 상태 코드와 진단 문구를 남깁니다.

신뢰 결과보다 먼저 서명 참조를 확인합니다

C2PA 2.2는 validator가 claim의 signature 필드를 읽고 URI를 해석해 COSE signature를 가져오도록 규정합니다. 서명은 같은 C2PA Manifest 안의 self#jumbf 위치에 있어야 합니다. 필드가 없거나 URI를 해석할 수 없거나 다른 manifest를 가리키면 claim은 거부됩니다. 명세는 필드가 없거나 해석할 수 없는 경우 claimSignature.missing을 사용하며, claim과 signature가 같은 manifest에 없으면 그 manifest를 유효하다고 볼 수 없다고 설명합니다.

이 위치 검사를 뒤의 결과와 분리해 기록합니다. 파일 식별자, claim 식별자, 표시된 signature URI, 해석 결과, 정확한 상태 코드를 한 줄에 둡니다. 다른 다운로드에서 찾은 URI로 빈 값을 채우지 않습니다. 두 번째 사본에서 정상 해석되더라도 두 파일과 출력을 모두 보존합니다.

Credential, 알고리즘, 신뢰 체인과 서명을 나눕니다

서명을 찾은 뒤에는 그 서명에 사용된 credential을 C2PA trust model에 따라 검증합니다. 허용되지 않는 credential에는 signingCredential.invalid가, 허용 또는 deprecated 목록 밖의 signature algorithm에는 algorithm.unsupported가 적용됩니다. 이어서 credential에서 적용 가능한 trust anchor까지 신뢰 체인을 구성합니다. 체인을 확인하지 못하면 signingCredential.untrusted, 확인하면 signingCredential.trusted가 기록됩니다.

각 코드는 다른 검사를 설명하므로 한 행씩 나눠 둡니다. Credential이 trusted라고 해서 암호학적 signature 검증이 끝난 것은 아닙니다. 앞 단계에서 claim이 거부되지 않았다면 validator는 정의된 digital signature 절차를 계속합니다. 실패하면 claimSignature.mismatch, 성공하면 claimSignature.validated가 기록됩니다. 이를 임의의 “검증된 미디어”라는 한 문장으로 합치지 않습니다.

표에는 검사 단계, 관찰한 값, 정확한 코드, 대상 manifest, 다음 조치를 적습니다. claimSignature.missing이면 파일을 보존하고 게시자가 제공한 원본 사본을 찾습니다. algorithm.unsupported이면 다른 호환 validator를 시도하기 전에 현재 도구와 버전을 기록합니다. signingCredential.untrusted이면 표시된 체인 정보를 보존하고 적용된 신뢰 맥락을 확인합니다. claimSignature.mismatch이면 해당 사본과 전체 진단을 보존합니다. 이는 코드 의미를 바꾸지 않는 본문의 검토 제안입니다.

인접 검사와 현실 주장을 분리합니다

Time-stamp 검증, credential revocation, trust list 정책은 각각 별도의 검사입니다. claimSignature.validated에서 그 결과를 추정하지 않습니다. 서명 실패 역시 누가 파일을 바꿨는지, 변경 시각이나 이유가 무엇인지 알려 주지 않습니다. 제공된 증거에서 정의된 기술 검사가 실패했다는 범위만 기록합니다.

유효한 claim signature가 말해 주는 범위도 제한적입니다. Validator가 signature를 찾았고 credential, algorithm, trust chain, signature 단계에서 표시된 결과를 얻었다고 기록할 수 있습니다. Caption, 화자 신원, 촬영 날짜, 장소나 화면 속 사건은 원 게시물과 독립 자료로 확인해야 합니다.

보존한 사본을 DeepFakeCheck로 분석할 경우 확률적 위험 신호를 별도 항목에 둡니다. 자동 탐지는 실제 미디어를 의심스럽게 표시하는 오탐과 합성 또는 조작 미디어를 놓치는 미탐을 낼 수 있습니다. 높은 위험은 추가 검토의 근거이고 낮은 위험은 C2PA claim이나 현실 사건을 인증하지 않습니다.

마지막에는 파일 식별자, 전체 validator 출력, 각 상태 코드, 미해결 질문, 외부 출처 확인과 실제 결정을 남깁니다. 이 사본에서 서명이 missing, unsupported, untrusted, mismatched 또는 validated였다는 제한된 결론이면 충분합니다. 다음 검토자가 같은 출발점에서 재현할 수 있습니다.

출처

  • C2PA, “C2PA Technical Specification, Validate the Signature”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_validate_the_signature

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

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

이미지 분석하기