C2PA Data Hash Assertion:如何核查资产绑定
先保存产生结果的文件
在验证工具打开文件前,先保存实际收到的媒体副本。记录来源页面、下载时间、文件名、大小;现有流程若会计算文件哈希,也一并保留。平台如果提供原始文件和多个转码版本,应分别编号,并写清本次核查使用哪一份。这套记录方法是本文的操作建议,不是 C2PA 规定的记录格式。
使用兼容的 C2PA 验证工具,记下工具名称和版本,把完整输出与文件放在一起。只有徽标或简短状态,看不出工具检查了哪项 assertion、排除了哪些字节范围,也无法确认结果对应哪份副本。验证前不要转换、重新导出或改写证据副本的 metadata;这些操作会产生新的核查对象。
把问题写在文件记录旁边:data hash assertion 是否按验证工具显示的范围绑定了这份文件的字节。谁发布了媒体、配文是否准确、画面事件是否发生,需要另外寻找证据。
读取 assertion 与排除范围
C2PA 2.2 将 data hash assertion 的 label 定为 c2pa.hash.data。规范说明,这项 assertion 保存对资产指定字节范围计算的密码学 hash,hash 值必填。alg 字段可以指定算法;没有该字段时,验证器从外层结构读取 alg。两个位置都没有算法时,结构无效,不存在默认算法。
Assertion 还可以包含 exclusions。每个排除范围都有 start 和 length。规范要求这些范围按 start 递增排列,彼此不能重叠。一个范围的起点和终点必须位于同一逻辑单元内;除 free-box 或 padding data 外,不能覆盖该单元的 header 或 length field。可排除内容被限定为 C2PA Manifest Store,或 EXIF、IPTC 等资产 metadata。
只抄录工具实际显示的 assertion label、算法、hash 状态,以及各排除范围的 start 和 length。未显示的字段直接标为“未显示”,不要借用另一份副本的 byte offset。规范还把旧 url 字段列为已弃用,并要求 claim generator 不再加入该字段。
Data hash assertion 不能出现在 cloud data assertion 中,也不能与 compressed manifest 一起使用。工具若报告相关错误,应保留完整文案;不要猜测由哪个软件写入,也不要在没有证据时解释结构为何异常。
限定匹配与不匹配的含义
匹配结果支持一项范围明确的观察:验证器针对纳入计算的字节得到 hash,并与 assertion 声明的值一致。它不能证明所有 metadata 都准确,不能证明签名方值得信任,也不能确认现实事件的配文。排除范围没有进入这次 hash 计算,需要另行核查。
不匹配表示这份文件与这项 assertion 的计算值和声明值不同。保存确切失败代码或消息,并让结果继续对应被检查的文件。它不能单独说明哪个字节发生变化、由谁在何时修改,也不能证明画面记录的是虚假事件。比较另一份副本前,先给它单独编号并独立验证。
工具没有显示 exclusions、算法来源或完整状态时,就把这些内容留作“未验证”。明确但不完整的记录,胜过用推测补齐的表格。
分开记录检测与现实核查
保存的图像、视频、音频或文本可以交给 DeepFakeCheck 获取概率性风险信号。该输出应放在 C2PA 验证记录之外,并关联到实际分析的副本。c2pa.hash.data 核查应使用兼容的 C2PA 验证工具,DeepFakeCheck 输出另栏记录。
自动分析可能把真实材料误报为可疑,也可能漏报合成或修改过的材料。高风险结果可以支持进一步调查;低风险结果不能认证文件,不能修复 hash 不匹配,也不能确认画面事件。
现实主张仍需查看原始发布页面、发布媒体的账号或机构、声称的日期地点,以及事件本身的独立证据。最后记录文件编号、验证工具与版本、assertion 字段、排除范围、完整状态、检测输出、外部信源核对和实际决定。
来源
- C2PA《C2PA Technical Specification — Data Hash》:https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_data_hash