C2PA Multi-Asset Hash:如何核查多个绑定资产
保存多部件文件与验证器完整输出
用兼容 C2PA 的验证器打开前,先保存实际文件。记录来源、取得时间、文件名、大小、验证器名称与版本、active manifest label 和完整输出。这张表是本文提出的复核方法,不是 C2PA 规定的报告格式。首次验证前不要重新导出,也不要用截图替代原文件。
找到 label 为 c2pa.hash.multi-asset 的 assertion。保持 parts 数组的原始顺序,把每项的 location、hashAssertion 和 optional 放在同一行。规范说明,这项 assertion 会改变 hard binding 的处理方式,但本身不属于 hard binding。它不能放进 cloud data assertion;在兼容性尚未充分评估时,规范建议避免与 compressed manifest 同用。只记录验证器显示的内容,不猜测哪个软件生成了结构。
核查问题应限定为:这份文件的各个 part 是否按工具报告的位置和 hash 绑定。配文、人物、地点、日期或画面事件是否真实,需要另外寻找证据。
核对每个 location 与完整字节范围
C2PA 2.2 要求所有 part 都在 parts 中以 part-hash-map object 表示,包括 primary part。Location 可以使用 byteOffset 与 length,也可以使用 bmffBox。采用 bmffBox 时,part 只包含该 box 的 payload,不含 box header。应原样保存 locator,不要把 box path 换算成猜测的字节偏移。
各 part 必须按它们在文件中的出现顺序排列,彼此连续、不重叠,并覆盖资产的每一个 byte。对 byte 定位项建立简单范围表:part 编号、start、length、计算出的 end、下一项 start。空隙、重叠、倒序或未覆盖的文件尾都属于结构问题。验证器没有提供足够信息时,应把 coverage 标成“未验证”,并保留完整输出。
每份文件副本都是独立对象。分别验证每份副本,不能用一份副本的结果补齐另一份副本没有显示的字段。
沿引用核对每个 part 的 hash assertion
每个 hashAssertion 都是指向该 part hash assertion 的 hashed URI。C2PA 要求引用对象属于标准 hard binding 类型,例如 c2pa.hash.data;其 label 需要追加 .part 以及适用的 multiple-instance identifier。这个 suffix 把部件绑定与整个资产的标准 hard binding 区分开,也允许一个 manifest 存放多个 part assertion。
只有验证器实际显示时,才记录 URI 原文、解析到的 assertion label、hash algorithm 与结果。整个资产的 hard-binding 结果另起一行。整文件绑定通过不能替代失败或未报告的 part 结果;一个 part 通过也不能证明其他 part 的状态。
optional 是 boolean;字段缺失时默认为 false。Optional part 可以在没有 trusted signer 的流程中被移除,同时仍希望验证剩余文件的完整性。记录字段是否存在及其值。只有 assertion 将部件标为 optional,且验证器报告了剩余检查,才能据此解释缺失;否则不要把缺少 part 视为无害。
如果某个 part 有自己的 C2PA Manifest,但 manifest 并未 self-contained 地存放在该 part 内,规范建议将它存入资产的 Manifest Store,并用 componentOf ingredient 引用。只有检查输出实际出现这项引用时才记录。
报告完整性,不认证现实事件
通过只支持一个有限结论:本次验证器在这份文件中确认了声明的 part 布局与适用的 part hash 一致。失败应继续关联准确的 part、locator、URI、code 或 message 和文件副本。它不能单独说明谁在何时改过文件,也不能证明画面事件是伪造的。
若再用 DeepFakeCheck 分析保存的文件,应把概率性结果放在 C2PA 表之外,并关联实际副本。自动分析可能误报真实媒体,也可能漏报合成或修改媒体。应把概率性结果与 C2PA 验证器结果分开记录。
最后保存文件、验证器完整输出、part 范围表、已解析的 hash 引用、optional 状态、单独的整资产结果、原始发布页面核查和复核决定。
来源
- C2PA《C2PA Technical Specification, Multi-Asset Hash》:https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_multi_asset_hash