C2PA General Box HashでJPEG・PNG・GIFの整合性を確認する
結果を生成したファイルを保存する
検証ツールで開く前に、受け取ったJPEG、PNG、GIFを保存します。入手元ページ、ダウンロード時刻、ファイル名、サイズ、ファイル識別子を記録します。元ファイルと複数の変換コピーがある場合は、それぞれに番号を付け、確認したコピーを明示します。この記録法は本記事の実務上の提案であり、C2PAが定める報告書式ではありません。
C2PA対応検証ツールの名前と版を記録し、出力全体をファイルと一緒に残します。バッジや一行の状態表示だけでは、どのboxが列挙されたか、順序がアセットと一致したか、どのhash比較が失敗したかを確認できません。検証前の再書き出しは、別の確認対象を作ります。
記録の横に問いを限定して書きます。General box hash assertionが、ツールの表示範囲でこのコピーのboxデータと順序を検証したかを調べます。公開者の身元、説明文の正確さ、描写された出来事の発生は別の証拠で確認します。
Assertionを順序付きの地図として読む
C2PA 2.2はgeneral box hash assertionのlabelをc2pa.hash.boxesと定めています。仕様はJPEG、PNG、GIFなどのBMFF以外のbox形式を使うアセットに、このhard bindingを使うよう示しています。Assertionは構造の配列です。各構造は一つ以上のboxを名前または識別子で列挙し、そのデータを対象にするhashとアルゴリズムを持ちます。
ツールが表示したbox名、グループ、順序、アルゴリズム、hash状態をそのまま記録します。Assertionのboxは、C2PA Manifestを収めるboxを含め、アセットにある順序と同じである必要があります。アセットにあるboxがassertionにない場合や順序が異なる場合、manifestは検証時に拒否されます。JPEGの複数のAPP1 segmentなど、同じ種類が複数あるときは個別に列挙します。
複数のboxを範囲としてまとめると、最初のboxの先頭から最後のboxの末尾までと、box間のbyteがhashに含まれます。Boxを別々に列挙すると、各box内のデータだけが対象です。Box名が同じでもグループにより対象byteが変わるため、グループを保って記録します。
除外boxとManifest boxを確認する
Boxエントリはexcludedというbooleanを持つ場合があります。フィールドがない場合またはfalseなら、validatorはboxをhashして値を比較します。Trueなら、validatorはそのboxとhashを無視できます。表示された値を記録し、比較が表示されないことからexcludedを推測しません。
C2PA Manifest StoreのboxもC2PAという名前と1 byteのzero hashで配列に入ります。JPEGのManifest Storeが複数のAPP11 marker segmentに分かれていても、一つのboxとして表します。C2PAに属さないAPP11 boxはhash boxのリストに残ります。PNGの8 byte headerは特別な値PNGhで最初のboxとして表せます。
正確な失敗コードまたはメッセージを保存します。ファイル識別子、validatorの版、box順序とグループ、excluded値、アルゴリズム、全体の状態を関連付けます。ツールが表示しないフィールドは未報告として残します。
一致と不一致の意味を限定する
比較の成功は、validatorがこのコピーの対象boxデータを計算し、assertionの宣言値と一致したという限定的な観察を支えます。すべてのmetadataが正確であること、署名者に信頼を置けること、現実の出来事に関する説明の正しさは別に確認します。除外boxと表示された範囲外のデータも別途調べます。
不一致や構造上の拒否は、このファイルとassertionが指定された整合性検査に合格しなかったことを示します。この結果だけでは、変更者、変更時刻、影響を受けたpixel、描写された出来事の演出を特定できません。別のコピーには別の識別子を付け、個別に検証してから比較します。
保存した画像、動画、音声、テキストは確率的なメディア分析でリスクシグナルを得られます。その出力はC2PA検証記録と分け、実際に分析したコピーに結び付けます。自動分析には本物を疑わしいとする偽陽性と、合成または変更された資料を見逃す偽陰性があります。高いシグナルは追加確認の根拠です。低いシグナルはファイルを認証せず、C2PA不一致も修復しません。
現実の主張は、元の公開ページ、メディアを提示したアカウントまたは組織、主張された日時と場所、出来事に関する独立した証拠で確認します。ファイル識別子、C2PA出力、使用した検出結果、外部資料の確認、人の判断を最後に残します。
出典
- C2PA, "C2PA Technical Specification — General Box Hash": https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_general_box_hash