이미지의 콘텐츠 인증서를 확인하는 방법
브라우저 드롭 영역부터 명령줄까지, 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 청크를 직접 읽습니다.
확인 시 살펴볼 점
- 누가 서명했는지. Adobe Inc.라는 인증서 주체와 "C2PA Test Signing Cert"은 매우 다릅니다. 테스트 인증서로 서명된 매니페스트는 구조적으로 유효하지만 누구도 보증하지 않습니다.
- 신뢰 목록. CAI는 알려진 서명자 목록을 유지합니다. 목록 밖의 인증서는 반드시 가짜인 것은 아니지만, 직접 판단해야 합니다.
- 콘텐츠 해시가 일치하는지.
c2pa.hash.data가 실제 이미지 콘텐츠와 일치할 때만, 이미지가 서명 이후 변경되지 않았음을 알 수 있습니다. - 활성 매니페스트가 무엇을 말하는지. 여러 번의 편집은 여러 매니페스트를 생성하며, 마지막 것이 활성입니다.
c2pa.actions는 이것이c2pa.created인지c2pa.edited인지, 소스 유형이digitalCapture인지trainedAlgorithmicMedia인지 명시합니다.
일반적인 결과
- 유효한 서명, 카메라 제조사가 서명자, 소스 유형 digitalCapture: 카메라에서 바로 온 것.
- 유효한 서명, OpenAI 또는 Adobe가 서명자, 소스 유형 trainedAlgorithmicMedia: AI 생성이며, 생성기가 그렇게 선언함.
- 유효한 서명, 하지만 성분이 AI로 생성됨: 합성물; 특정 활동을 살펴보세요.
- 매니페스트는 있지만 서명이 유효하지 않음: 서명 이후 이미지가 수정되었거나, 매니페스트가 다른 이미지에서 이식됨.