Wie man die Content Credentials eines Bildes verifiziert
Vier Möglichkeiten, ein C2PA-Manifest zu lesen und zu verifizieren, von einer Browser-Dropzone bis zur Kommandozeile, und was jede davon kann und nicht kann.
Option 1: Online-Tools
Ziehen Sie das Bild auf die Startseite von AuditImage und innerhalb von Sekunden sehen Sie den Generator des Manifests, das Signaturzertifikat, Aktionen und Zutaten. AuditImage parst die vollständige JUMBF-Struktur einschließlich CBOR-kodierter Aussagen, verifiziert die Signatur, die Inhalts-Hash-Bindung, die Aussagen-Hashes und die Zertifikatskette gegen die C2PA-Vertrauensliste und gleicht C2PA mit EXIF und XMP ab. Der Zeitstempel-Token wird als vorhanden gemeldet, aber nicht verifiziert.
Für eine strenge Signaturverifizierung verwenden Sie verify.contentauthenticity.org, die offizielle CAI-Website. Sie prüft die Signatur, die Zertifikatskette und den Inhalts-Hash und zeigt den Vertrauenslistenstatus an.
Option 2: Browser-Erweiterung
Im Chrome Web Store gibt es eine „C2PA Content Credentials"-Erweiterung, die jedes Webbild über das Kontextmenü untersucht. Chrome selbst integriert C2PA-Verifizierung in den Browser und Google Search, wo Bilder mit Credentials ein Label erhalten.
Option 3: Kommandozeile
c2patool ist die C2PA-Referenzimplementierung, geschrieben in Rust und plattformübergreifend:
c2patool photo.jpg # Manifest-Zusammenfassung als JSON
c2patool photo.jpg --detailed # Aussagen, Zutaten, Hash-Bindungen, Signaturergebnis
c2patool photo.jpg --tree # Manifestbaum
exiftool liest auch JUMBF:
exiftool -a -G1 -s -JUMBF:all photo.jpg
exiftool -v3 photo.jpg | grep APP11 # bestätigen, dass APP11 existiert und ob es aufgeteilt ist
Option 4: Die Bytes selbst lesen
In einem JPEG befindet sich das Manifest in APP11-Bereichen (Marker FF EB). Die Nutzlast beginnt mit JP, dann eine 2-Byte-Box-Instanznummer, eine 4-Byte-Paket-Sequenznummer, dann die JUMBF-Box-Länge und der Typ jumb. Manifeste über 64 KB werden auf mehrere APP11-Bereiche aufgeteilt und nach Sequenznummer zusammengesetzt. In einem PNG lesen Sie den caBX-Block direkt.
Was bei der Verifizierung zu beachten ist
- Wer signiert hat. Ein Zertifikatsbetreff von Adobe Inc. und einer von „C2PA Test Signing Cert" sind sehr unterschiedliche Dinge. Ein mit einem Testzertifikat signiertes Manifest ist strukturell gültig, aber niemand verbürgt sich dafür.
- Die Vertrauensliste. Die CAI pflegt eine Liste bekannter Unterzeichner. Ein Zertifikat außerhalb der Liste ist nicht unbedingt gefälscht, aber Sie müssen es selbst beurteilen.
- Ob der Inhalts-Hash übereinstimmt. Nur wenn
c2pa.hash.datamit dem tatsächlichen Bildinhalt übereinstimmt, wissen Sie, dass das Bild nach der Unterzeichnung nicht geändert wurde. - Was das aktive Manifest sagt. Mehrere Bearbeitungsrunden erzeugen mehrere Manifeste; das letzte ist aktiv. Sein
c2pa.actionsgibt an, ob diesc2pa.createdoderc2pa.editedwar und ob der QuelltypdigitalCaptureodertrainedAlgorithmicMediaist.
Typische Ergebnisse
- Gültige Signatur, Kamerahersteller als Unterzeichner, Quelltyp digitalCapture: direkt aus der Kamera.
- Gültige Signatur, OpenAI oder Adobe als Unterzeichner, Quelltyp trainedAlgorithmicMedia: KI-generiert, und der Generator hat es angegeben.
- Gültige Signatur, aber eine Zutat ist KI-generiert: ein Zusammenschnitt; schauen Sie sich die spezifischen Aktionen an.
- Manifest vorhanden, aber Signatur ungültig: Das Bild wurde nach der Unterzeichnung verändert, oder das Manifest wurde von einem anderen Bild übertragen.