가이드

이미지의 콘텐츠 인증서를 확인하는 방법

브라우저 드롭 영역부터 명령줄까지, C2PA 매니페스트를 읽고 확인하는 네 가지 방법과 각 방법이 보여줄 수 있는 것과 없는 것.

옵션 1: 온라인 도구

이미지를 AuditImage 홈페이지에 놓으면 몇 초 안에 매니페스트의 생성자, 서명자 인증서, 활동 및 성분을 볼 수 있습니다. AuditImage는 CBOR로 인코딩된 단언을 포함한 전체 JUMBF 구조를 분석하고, 서명, 콘텐츠 해시 바인딩, 단언 해시 및 인증서 체인을 C2PA 신뢰 목록과 대조하여 확인하며, C2PA와 EXIF 및 XMP를 교차 검증합니다. 타임스탬프 토큰은 존재하지만 확인되지는 않는 것으로 보고됩니다.

엄격한 서명 확인을 위해서는 verify.contentauthenticity.org를 사용하십시오. CAI 공식 사이트로 서명, 인증서 체인 및 콘텐츠 해시를 확인하고 신뢰 목록 상태를 표시합니다.

옵션 2: 브라우저 확장 프로그램

Chrome 웹 스토어에 "C2PA Content Credentials" 확장 프로그램이 있어 우클릭 메뉴에서 모든 웹 이미지를 검사할 수 있습니다. Chrome 자체도 브라우저와 Google Search에 C2PA 확인을 구축 중이며, 인증된 이미지에 라벨이 표시됩니다.

옵션 3: 명령줄

c2patool은 Rust로 작성된 크로스 플랫폼 C2PA 레퍼런스 구현체입니다:

c2patool photo.jpg              # 매니페스트 요약 (JSON)
c2patool photo.jpg --detailed   # 단언, 성분, 해시 바인딩, 서명 결과
c2patool photo.jpg --tree       # 매니페스트 트리

exiftool도 JUMBF를 읽을 수 있습니다:

exiftool -a -G1 -s -JUMBF:all photo.jpg
exiftool -v3 photo.jpg | grep APP11   # APP11 존재 및 분할 여부 확인

옵션 4: 바이트를 직접 읽기

JPEG에서 매니페스트는 APP11 세그먼트(마커 FF EB)에 위치합니다. 페이로드는 JP로 시작하고, 2바이트 박스 인스턴스 번호, 4바이트 패킷 시퀀스 번호, 그 다음 JUMBF 박스 길이와 jumb 타입이 옵니다. 64KB를 초과하는 매니페스트는 여러 APP11 세그먼트로 분할되고 시퀀스 번호로 재조립됩니다. PNG에서는 caBX 청크를 직접 읽습니다.

확인 시 살펴볼 점

  1. 누가 서명했는지. Adobe Inc.라는 인증서 주체와 "C2PA Test Signing Cert"은 매우 다릅니다. 테스트 인증서로 서명된 매니페스트는 구조적으로 유효하지만 누구도 보증하지 않습니다.
  2. 신뢰 목록. CAI는 알려진 서명자 목록을 유지합니다. 목록 밖의 인증서는 반드시 가짜인 것은 아니지만, 직접 판단해야 합니다.
  3. 콘텐츠 해시가 일치하는지. c2pa.hash.data가 실제 이미지 콘텐츠와 일치할 때만, 이미지가 서명 이후 변경되지 않았음을 알 수 있습니다.
  4. 활성 매니페스트가 무엇을 말하는지. 여러 번의 편집은 여러 매니페스트를 생성하며, 마지막 것이 활성입니다. c2pa.actions는 이것이 c2pa.created인지 c2pa.edited인지, 소스 유형이 digitalCapture인지 trainedAlgorithmicMedia인지 명시합니다.

일반적인 결과

  • 유효한 서명, 카메라 제조사가 서명자, 소스 유형 digitalCapture: 카메라에서 바로 온 것.
  • 유효한 서명, OpenAI 또는 Adobe가 서명자, 소스 유형 trainedAlgorithmicMedia: AI 생성이며, 생성기가 그렇게 선언함.
  • 유효한 서명, 하지만 성분이 AI로 생성됨: 합성물; 특정 활동을 살펴보세요.
  • 매니페스트는 있지만 서명이 유효하지 않음: 서명 이후 이미지가 수정되었거나, 매니페스트가 다른 이미지에서 이식됨.