DeepFake Check
ブログに戻る
6 分で読めます

C2PA Actions Assertionの構造とIngredient参照を検証する方法

Assetとvalidatorの全出力を保存する

C2PA対応validatorで開く前に実際のassetを保存します。入手元URLまたはlocal path、取得時刻、ファイル識別子、validator名とversion、active manifest label、claim version、全出力を記録します。この表は実務上の提案で、C2PA指定の形式ではありません。初回実行前に再exportしたりscreenshotに置き換えたりしません。

Validatorが報告したactions assertionだけを確認します。Labelがc2pa.actionsかc2pa.actions.v2か、claim内の位置、action値と順序を記録します。表示されたparameters、ingredientsまたは旧形式のingredient、redacted、softwareAgent、softwareAgents、template fieldを保存し、表示されないfieldは未報告とします。

この確認はassertionの構造とreferenceを対象にします。Manifestに記録されない編集履歴は復元できません。合格しても誰がactionを実行したか、captionが正しいか、出来事が起きたかは証明しません。失敗もmediaが虚偽だという証明にはなりません。

Actions fieldと先頭位置を確認する

c2pa.actionsまたはc2pa.actions.v2にはactions fieldが必要です。なければclaimはassertion.action.malformedでrejectされます。Label、観察したfield、正確なcodeを同じ行に残します。

Actionがc2pa.createdまたはc2pa.openedなら順序規則も適用されます。V2 claimではactions assertionがcreated_assertionsまたはgathered_assertions arrayの最初のactions assertionでなければなりません。V1ではassertions arrayの最初です。Action自体もそのactions arrayの先頭elementである必要があります。違反はassertion.action.malformedです。

Claim version、array名、assertion位置、action位置、codeを別々に記録します。Validatorが全体badgeしか出さない場合、どの条件が失敗したかは推測せず全出力を保存します。

Action別にingredient referenceを解決する

c2pa.opened、c2pa.placed、c2pa.removedには空でないparametersとingredient referenceが必要です。V2はingredients、以前の形式はingredientを使います。V2では一つ以上のelementを含むarrayでなければならず、欠落や空の値はassertion.action.ingredientMismatchです。

c2pa.openedはcurrent manifest内でrelationshipがparentOfのingredient assertionへ解決する有効なhashed URIを一つだけ要求します。c2pa.placedはcurrent manifest内のcomponentOfへ解決するURIを一つ以上要求します。c2pa.removedもcomponentOfを要求しますが、別manifestのingredient assertionへ解決します。

c2pa.transcodedまたはc2pa.repackagedではingredient referenceは任意です。存在する場合はcurrent manifest内のparentOf ingredient assertionへ解決する必要があります。条件不一致はassertion.action.ingredientMismatchです。URI、解決先manifest、relationship、codeを保存し、似た名前のingredientに置き換えません。

Redactionとiconを分けて確認する

parameters objectにredacted fieldがあればJUMBF URIを確認します。URIがない、またはassertionへ解決できない場合はassertion.action.redactionMismatchです。Ingredient mismatchとは分けて記録します。

softwareAgent、softwareAgents、templateにiconがあればC2PAのreference validationを適用します。Validatorが表示した範囲だけを記録します。Icon、agent名、template labelはactionが記録どおり起きた証拠ではありません。

表にはasset、manifestとclaim、assertion labelと位置、actionと位置、parameters状態、ingredientまたはredaction URI、解決先manifest、relationship、code、validator version、未解決fieldを入れ、全出力を添付します。

技術結果を真偽判定から分ける

合格が示すのは、そのvalidator実行でactions assertionがこれらの構造とreference規則を満たしたことだけです。Claim signature、certificate、assertion hash、asset binding、ingredient manifestは別に検査します。Publisher、人物、caption、日付、場所、出来事は元の情報と独立資料で確認します。

保存したassetをDeepFakeCheckで分析する場合、確率的signalはC2PA表の外に置きます。自動検出には本物を疑う誤検知と、合成・変更mediaを見逃す見逃しがあります。DeepFakeCheckはactions assertionを検証せず、本文のC2PA codeも発行しません。

出典

  • C2PA, “C2PA Technical Specification, C2PA Actions Validation”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_c2pa_actions_validation

この画像、AIで作られたかも?

高精度のディープフェイク検出ツールで、画像を今すぐ分析しましょう。

画像を分析する