C2PA Multi-Asset Hashで複数の結合アセットを確認する方法
Multi-part fileとvalidatorの全出力を保存する
C2PA対応validatorで開く前に実際のfileを保存します。入手元、取得時刻、file名、size、validator名とversion、active manifest label、全出力を記録します。この表は本文の実務提案で、C2PA指定の報告形式ではありません。初回検証前に再exportしたりscreenshotへ置き換えたりしません。
c2pa.hash.multi-asset labelのassertionを探します。parts arrayの順序を保ち、各entryのlocation、hashAssertion、optionalを同じ行に置きます。仕様上、このassertionはhard bindingの扱いを変更しますが、それ自体はhard bindingではありません。Cloud data assertionには入れられず、互換性の評価が終わるまではcompressed manifestとの併用を避けることが推奨されています。構造を作ったsoftwareは推測せず、validatorの表示を記録します。
確認する質問は、このfileの各partが報告された位置とhashで結合されているかです。Caption、人物、場所、日付、描写された出来事が真実かは決定しません。
各locationと全byte範囲を確認する
C2PA 2.2はprimary partを含む全partをparts内のpart-hash-map objectで表すよう求めます。LocationはbyteOffsetとlength、またはbmffBoxを使います。bmffBoxではbox headerを除いたpayloadだけがpartです。Locatorをそのまま保存し、box pathを推測したbyte offsetへ置き換えません。
Partはfile内の順序で並び、連続し、重ならず、assetの全byteを覆う必要があります。Byte指定のentryにはpart番号、start、length、計算したend、次のstartを表にします。Gap、overlap、逆順、未被覆の末尾は構造上の問題です。Validatorが計算に必要な値を示さない場合はcoverageを未確認とし、全出力を保存します。
File copyごとに別の対象として扱います。それぞれを独立して検証し、一つのcopyの結果で別copyの未表示fieldを補いません。
各partのhash assertionをたどる
各hashAssertionはpartのhash assertionを指すhashed URIです。参照先はc2pa.hash.dataなどのstandard hard binding assertionで、labelには.partと該当するmultiple-instance identifierが追加されます。このsuffixはpart bindingをasset全体のstandard hard bindingから区別し、一つのmanifestに複数のpart assertionを置けるようにします。
Validatorが表示した場合だけ、URI、解決先assertion label、hash algorithm、結果を記録します。Asset全体のhard-binding結果は別行にします。全fileのpassは失敗または未報告のpart結果を置き換えず、一つのpartのpassも他partの状態を証明しません。
optional booleanがない場合のdefaultはfalseです。Optional partはtrusted signerを伴わないworkflowで削除されることがあり、残りのfileの完全性を検証する目的は維持できます。Fieldの有無と値を記録します。Optional指定と残りの検証結果がなければ、欠けたpartを問題なしと解釈しません。
Partに独自のC2PA Manifestがあり、そのpart内にself-containedでない場合、仕様はassetのManifest Storeへ保存してcomponentOf ingredientで参照することを推奨します。検査出力に実際に現れる場合だけ記録します。
完全性結果と出来事の判断を分ける
Passが示すのは、このvalidatorがこのfileで宣言されたpart配置と適用されたpart hashを整合的と判断したことだけです。Failureは正確なpart、locator、URI、codeまたはmessage、file copyに結び付けます。それだけで誰がいつ変更したか、描写された出来事が捏造かは分かりません。
保存したfileをDeepFakeCheckで分析する場合、確率的結果はC2PA表の外に置き、実際のcopyへ関連付けます。自動分析には本物を疑う誤検知と合成・変更mediaを見逃す見逃しがあります。確率的結果はC2PA validator結果と分けて記録します。
File、validator全出力、part範囲表、解決したhash参照、optional状態、別のasset全体結果、元の公開情報、reviewerの判断を保存します。
出典
- C2PA, “C2PA Technical Specification, Multi-Asset Hash”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_multi_asset_hash