ai newsDo., 15. Okt.
EilmeldungMeta and Apple team up to make Muse AI models run better on Macs

Content Credentials in Sora und ChatGPT-Dateien: Prüfung liefert zunächst falsche Ergebnisse

Ob ein Video KI-generiert oder bearbeitet wurde, lässt sich statt über ungenaue Erkennungsmodelle auch über signierte C2PA Content Credentials in der Datei prüfen. Bei eigenen Tests mit Sora- und ChatGPT-Dateien waren zunächst zwei Ergebnisse fehlerhaft.

dev.toMittwoch 13:57 · 14.10.DE3 Min. Lesezeit
Bild: dev.to

Jeder, der sich heute einen Clip online ansieht, stellt dieselbe Frage: Wurde dieser verändert, und wurde er von einer KI erstellt? Erkennungsmodelle antworten mit einer Bewertung, die niemand überprüfen kann. Es gibt einen anderen Weg, diese Frage zu stellen, zumindest bei Dateien, die entsprechende Informationen tragen: Man liest den eigenensignierten Provenienzdatensatz der Datei, die C2PA Content Credentials, und berichtet genau, was dieser Datensatz belegt und was nicht.

Wir haben einen kostenlosen Prüfer gebaut, der genau das tut, und bevor wir jemandem davon erzählt haben, haben wir ihn auf echten öffentlichen Dateien von OpenAI, Adobe, Capture One und Truepic getestet. Zwei der Ergebnisse waren anfangs falsch, und zwar auf lehrreiche Weise. Das haben wir herausgefunden.

Ein Content-Credentials-Datensatz macht mehrere verschiedene Aussagen, und diese stehen und fallen nicht gemeinsam. Der Prüfer meldet daher jede einzelne separat, in einem von vier Zuständen:

Die Aussagen: Stimmt die Signatur mit genau diesen Bytes überein (binding), wer hat signiert, und ist dieser Unterzeichner auf der offiziellen C2PA Trust List vertreten (signer), welche Bearbeitungen deklariert der Unterzeichner, und gibt der Unterzeichner an, dass der Inhalt KI-generiert ist.

Bei jeder Datei stimmt die Signatur mit ihren Bytes überein. Beide OpenAI-Dateien und das Firefly-Bild deklarieren sich selbst als KI-generiert. Keiner der Unterzeichner ist gegen die offizielle C2PA Trust List als VERIFIED eingestuft. Diese Beispieldateien wurden signiert, bevor die offizielle Liste Anfang 2026 die vorläufige ersetzte, oder mit Zertifikaten, die nicht darauf enthalten sind. Ein Foto liest sich hier daher als gültige Signatur, Unterzeichner nicht auf der Liste, was die ehrliche Antwort ist.

In unserem ersten Durchlauf stuften wir die Unterzeichner des Sora-Videos und des ChatGPT-Bildes als CONTRADICTED ein, unsere stärkste negative Bewertung. Der einzige Grund war, dass ihre Signaturzertifikate seit der Signierung abgelaufen sind. Das ist kein Beweis gegen die Signatur, und als widersprochen zu bezeichnen hätte den Eindruck erweckt, OpenAIs eigene Inhalte sähen gefälscht aus.

Nun führt ein abgelaufenes Zertifikat nie zu der Einstufung als Manipulation. Wenn ein validierter Zeitstempel zeigt, dass die Aussage signiert wurde, während das Zertifikat gültig war (die Sora-Datei hat einen), wird der Unterzeichner als DECLARED_ONLY mit dieser Erklärung eingestuft. Ohne einen solchen (das ChatGPT-Bild) lautet die Einstufung INSUFFICIENT: Die Vertrauenswürdigkeit des Unterzeichners kann nicht festgestellt werden, ein abgelaufenes Zertifikat ist kein Beweis für Manipulation. Nur ein widerrufener oder ungültiger Credential widerspricht.

Das Manifest der ChatGPT-Bilddatei auf oberster Ebene vermerkt nur, dass die Datei geöffnet wurde. Die KI-Generierungskennzeichnung (trainedAlgorithmicMedia) sitzt im Manifest des Inhalts, aus dem das Bild erstellt wurde. Da wir nur die oberste Ebene gelesen hatten, meldeten wir keine KI-Kennzeichnung, was falsch war.

Die Korrektur liest auch Ingredient-Manifeste. Unsere eigene Überprüfung wies dann darauf hin, dass dies eine Angriffsfläche eröffnet: Jeder könnte auf ein gefälschtes Ingredient verweisen, um eine Kennzeichnung einzuschleusen. Deshalb zählt eine Kennzeichnung nur von einem Ingredient, das das C2PA-Werkzeug als hash-gebunden an die Datei bestätigt und dessen eigenes Manifest keine Unstimmigkeit aufweist, wobei die Kette rekursiv ausschließlich über validierte Manifeste durchlaufen wird. Die Seite nennt das Ingredient, aus dem die Kennzeichnung stammt.

invinoveritas.dev/check hasht eine Datei in deinem Browser, sodass sie dein Gerät nie verlässt, und schlägt sie nach. Um die Credentials selbst zu prüfen, lade sie hoch (kostenlos, bis zu 2 GB):

curl -F "file=@clip.mp4" https://api.babyblueviper.com/verify-media Enter fullscreen mode Exit fullscreen mode Es gibt außerdem ein kostenloses MCP-Tool, verify_media, für Agenten. Zwei kostenpflichtige Funktionen sind live, jeweils 100 Sats pro Datei. Ein Herausgeber kann ein Original registrieren (ein signiertes Urteil plus Bitcoin-Zeitstempel), sodass jeder mit einer Kopie sie prüfen kann, ohne sie hochzuladen. Und ein KI-Anbieter kann eine von ihm generierte Datei allein über ihren SHA-256 als declared synthetic registrieren. Jede Deklaration wird demjenigen zugeschrieben, der sie vorgenommen hat, mehrere können koexistieren, und keine kann eine andere überschreiben, sodass niemand die echte Aufnahme eines anderen als synthetisch kennzeichnen und ihm den Zugriff sperren kann.

Gerade bei KI-Audio und -Video ist dieser letzte Punkt wichtig. Artikel 50 des EU AI Act verlangt von Anbietern synthetischer Audio- und Videoinhalte, ihre Ausgaben maschinenlesbar zu kennzeichnen, und die beiden öffentlichen Showcase-Clips, die wir von einem beliebten TTS-Anbieter geprüft haben, trugen keinerlei Credentials.

Automatisch übersetzt. Das Original auf Englisch ist unten aufklappbar.

Original (Englisch) anzeigen

Everyone looking at a clip online now asks the same thing: was this changed, and was it made by AI? Detection models answer with a score nobody can audit. There's another way to ask, at least for files that carry it: read the file's own signed provenance record, C2PA Content Credentials, and report exactly what that record establishes and what it doesn't.

We built a free checker that does that, and before telling anyone about it we ran it on real public files from OpenAI, Adobe, Capture One and Truepic. Two of the results were wrong at first, in instructive ways. Here's what we found.

A Content Credentials record makes several different claims, and they don't stand or fall together. So the checker reports each one separately, as one of four states:

The claims: does the signature match these exact bytes (binding), who signed and is that signer on the official C2PA trust list (signer), what edits the signer declares, and whether the signer declares the content AI-generated.

Every file's signature matches its bytes. Both OpenAI files and the Firefly image declare themselves AI-generated. None of the signers is VERIFIED against the official C2PA trust list. These sample files were signed before the official list replaced the interim one at the start of 2026, or by certificates that aren't on it, so a photo here reads "valid signature, signer not on the list", which is the honest answer.

Our first pass marked the Sora video's and ChatGPT image's signers CONTRADICTED, our strongest negative. The only reason was that their signing certificates have expired since they signed. That is not evidence against the signature, and calling it "contradicted" would have told people OpenAI's own content looked forged.

Now an expired certificate never reads as tampering. If a validated timestamp shows the claim was signed while the certificate was valid (the Sora file has one), the signer is DECLARED_ONLY with that explanation. Without one (the ChatGPT image), it's INSUFFICIENT: "signer trust cannot be established; an expired certificate is not evidence of tampering." Only a revoked or invalid credential contradicts.

The ChatGPT image's top-level manifest only records that the file was opened. The AI-generation label ( trainedAlgorithmicMedia ) sits in the manifest of the ingredient it was made from. Reading only the top level, we reported "no AI label", which was wrong.

The fix reads ingredient manifests too. Our own review then pointed out that this opens an attack: anyone could reference a forged ingredient to plant a label. So a label only counts from an ingredient the C2PA tool confirms is hash-bound to the file and whose own manifest has no mismatch, walking the chain recursively through validated manifests only. The page names the ingredient the label came from.

invinoveritas.dev/check hashes a file in your browser, so it never leaves your device, and looks it up. To check the credentials themselves, upload it (free, up to 2 GB):

curl -F "file=@clip.mp4" https://api.babyblueviper.com/verify-media Enter fullscreen mode Exit fullscreen mode There's also a free MCP tool, verify_media, for agents. Two paid pieces are live at 100 sats per file. A publisher can register an original (a signed verdict plus a Bitcoin timestamp), so anyone with a copy can check it without uploading. And an AI deployer can register a file it generated as "declared synthetic" by its SHA-256 alone. Each declaration is attributed to whoever made it, several can coexist, and none can overwrite another, so nobody can label someone else's genuine recording as synthetic and lock them out.

That last piece matters for AI audio and video in particular. The EU AI Act's Article 50 asks providers of synthetic audio and video to mark output in a machine-readable way, and the two public showcase clips we checked from one popular TTS provider carried no credentials at all.

Originaltitel: We checked OpenAI's own Sora and ChatGPT files for Content Credentials. Two of our results were wrong at firstQuelle: dev.to (dev.to). Original öffnen