C2PA Active Manifest:埋め込み・リモート資格情報の探し方
アセットと取得状況を一緒に保存する
確認前に実際のアセットを編集せず保存します。ファイル名、取得元URLまたはローカルパス、取得時刻、メディア種別、validator名と版を記録します。HTTPで取得した場合は、ダウンロードしたbytesとresponse headerも残します。後のコピーはheader、metadata、埋め込みデータが異なる可能性があり、最初の結果を置き換えません。この記録方法は本文の実務提案であり、C2PAが要求する手順ではありません。
問いは、validatorがこのアセットに関連するC2PA Manifest Storeを見つけ、一致を確認できるかに絞ります。Storeの発見は中間の技術結果です。描写された出来事の作成者、発生時刻、captionの正確さを証明しません。
標準の埋め込み位置から調べる
C2PA 2.2は、C2PA Manifest Store内の最後のC2PA Manifest superboxをactive manifestとします。Validatorはまずアセット形式の標準位置に埋め込まれたStoreを探します。発見の有無と個数を記録します。
多くのアセットでは複数のManifest Storeが埋め込まれているとすべて無効になり、manifestが見つからなかったものとして扱われます。PDF incremental updateには条件があります。異なるupdate sectionにstoreを置けますが、同じsection内の複数storeは無効です。「資格情報あり」という表示だけでなくsectionと個数を保存します。
HTTPで取得したアセットでは、全体をダウンロードする前にresponseのLink headerを確認できます。仕様は大きなアセットやstreamingで有用だと説明しています。リモート参照は取得状況にも結び付くため、元のheaderを保管します。
リモート参照を記録した順序で追う
埋め込みstoreがなければ、relationがc2pa-manifestのLink headerを確認します。通常のHTTPまたはHTTPS URIを指定できます。JUMBF URI fragmentでアセット内のStoreを指すこともできますが、特定のchild manifest参照は許可されず、validatorはchild label部分を無視します。
次にC2PA Manifest外の標準位置にあるXMPからdcterms:provenance keyを確認します。C2PA tableを持つfontでactiveManifestUriLengthが0以外なら、そのURIを使います。それでも見つからなければ、同じpathまたはURIで拡張子が.c2paのファイルを試し、validatorは他の適切な場所も検索できます。
各試行について位置種別、正確な参照、取得結果、該当するHTTP status、validator messageを記録します。リモート位置が示されているのに存在しない、またはofflineなどで利用できない場合、C2PAはmanifest.inaccessibleを使います。「資格情報は存在しなかった」と書き換えません。この確認状況では記録されたstoreを取得できなかったという結果です。
Storeがアセットと一致するか確認する
Manifest Storeを見つけた後、active manifestのhard-binding assertionでこのstoreがアセットに対応し、manifest更新なしの変更がないか確認します。位置の発見だけを最終成功にしません。
Hard bindingが一致しない場合、その結果だけではアセットが変更されたのか、誤ったStoreを見つけたのか分かりません。仕様はnon-matching hard bindingとしてmanifestを拒否します。種類によりassertion.dataHash.mismatch、assertion.boxesHash.mismatch、assertion.collectionHash.mismatch、assertion.bmffHash.mismatchを使います。返されたcodeだけを記録し、原因を推測しません。
位置の証拠、active manifest識別子、hard-binding種別、validator全出力、ファイル識別子をまとめます。次の担当者は、リモートstoreが取得できない場合と、storeは見つかったが一致しない場合を区別できます。
Provenance、検出、出来事の確認を分ける
位置とhard bindingが通った場合、このコピーについてvalidatorがManifest Storeを見つけ、記録された一致結果を得たと述べられます。Caption、話者、撮影時刻、場所、出来事は原掲載ページと独立資料で確認します。
保存したファイルをDeepFakeCheckでも分析する場合、確率的risk signalを別欄に置きます。自動検出には本物を疑う偽陽性と、合成・加工メディアを見逃す偽陰性があります。高いriskは追加確認の理由です。この確率的signalとC2PA provenance credentialは別の証拠メカニズムであり、どちらも描写された出来事を単独では証明しません。
最後にアセット識別子、取得状況、試した位置、参照、アクセス結果、active manifest識別子、hard-binding status、未解決の問い、対応を残します。次の担当者がどのコピーとリモートresponseを調べたか推測せず、同じ検索を再現できる状態にします。
出典
- C2PA, “C2PA Technical Specification, Locating the Active Manifest”: https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_locating_the_active_manifest