Skip to content

Werke prüfen und signieren

Das am weitesten verbreitete Tool zum Lesen und Schreiben von C2PA-Manifesten ist c2patool, das als Teil der Referenzimplementierung gepflegt wird. Es läuft von der Kommandozeile und funktioniert mit den wichtigsten unterstützten Formaten.

Um eine Datei zu inspizieren:

c2patool image.jpg

Die Ausgabe zeigt, ob ein Manifest vorhanden ist, und fasst seine Assertions zusammen. Mit --output json werden strukturierte Daten erzeugt, die von anderen Programmen geparst werden können. Für Massenprüfungen reicht eine kurze Shell-Schleife oder ein Python-Skript, das das Tool für jede Datei aufruft.

Das Schreiben eines Manifests erfordert eine Manifest-Definition und einen Signierschlüssel. Eine minimale Definition könnte eine Erstellungsaktion und einige grundlegende Metadaten deklarieren. Das Tool signiert dann die Definition gegen die Datei und bettet das Ergebnis ein.

c2patool input.jpg \
  --manifest manifest.json \
  --signer-file key.pem \
  --output output.jpg

Die Manifest-Definition selbst ist ein JSON-Dokument. Sie kann eine Actions-Assertion, eine Metadaten-Assertion oder beides enthalten. Der Signierende kontrolliert den Inhalt dieser Assertions.

Mehrere praktische Grenzen treten sofort auf. Das Tool kann nicht erzwingen, dass ein Manifest jede nachfolgende Bearbeitung überlebt. Viele gängige Bildeditoren und Exportpfade werden die C2PA-Daten verwerfen oder ungültig machen. Schlüssel müssen vom Signierenden verwaltet werden; es gibt keine eingebaute Wiederherstellung, wenn das private Material verloren geht. Und die Claims innerhalb des Manifests bleiben Claims. Die Verifizierung bestätigt die Signatur und die Integrität der signierten Daten, nicht die Wahrheit der Aussagen über den künstlerischen Ursprung.

Das Massensignieren ist unkompliziert zu skripten, sobald die Manifest-Definition stabil ist. Die Schwierigkeit liegt woanders: zu entscheiden, was die Definition eigentlich sagen soll, wenn das Ziel ist, den Stand einer bestimmten Arbeit zu schützen, anstatt eine automatisierte Pipeline zu befriedigen.

CC BY 4.0 — Translations and contributions for other languages are welcome.