C2PA Actions Assertion:如何核对结构与 Ingredient 引用
保存资产与验证器完整输出
用兼容 C2PA 的验证器打开前,先保存未经编辑的实际资产。记录来源 URL 或本地路径、取得时间、文件标识、验证器名称与版本、active manifest label、claim version 和完整输出。这张表是本文提出的复核方法,不是 C2PA 规定的报告格式。首次运行前不要重新导出,也不要用截图替代原文件。
只核对验证器实际报告的 actions assertion。记录 label 是 c2pa.actions 还是 c2pa.actions.v2、它在 claim 中的位置,以及各 action 的值与顺序。原样保留工具显示的 parameters、ingredients 或旧格式 ingredient、redacted、softwareAgent、softwareAgents 与 template 字段。没有显示的字段应标为“未报告”,不要依据另一文件或预期流程补写。
这项复核只检查 assertion 的结构与引用,不能重建 manifest 没有记录的编辑史。结构通过不能证明是谁执行了 action、配文是否准确或画面事件是否发生;失败也不能证明媒体为假。
检查 actions 字段与首项顺序
Label 为 c2pa.actions 或 c2pa.actions.v2 的 assertion 必须包含 actions 字段。缺少时,claim 以 assertion.action.malformed 拒绝。把 label、实际字段和准确 code 放在同一行,避免把字段缺失与其他 actions 错误混为一谈。
当 action 是 c2pa.created 或 c2pa.opened 时,还要满足顺序规则。对 version 2 claim,该 actions assertion 必须是 created_assertions 或 gathered_assertions 数组中的第一个 actions assertion;对 version 1 claim,则必须是 assertions 数组中的第一个 actions assertion。这个 action 还必须是该 assertion 的 actions 数组首项。任一条件不满足,code 都是 assertion.action.malformed。
分别记录 claim version、数组名称、assertion 位置、action 位置与返回 code。如果验证器只显示汇总徽标,不能断言具体哪条顺序规则失败,应保留完整输出并把原因留作未决项。
按 action 类型解析 ingredient 引用
c2pa.opened、c2pa.placed 与 c2pa.removed 需要非空 parameters 和 ingredient 引用字段。Version 2 使用 ingredients,旧 c2pa.actions 格式使用 ingredient。Version 2 的值必须是至少包含一项的数组。缺少或为空时返回 assertion.action.ingredientMismatch。
不同 action 的目标不同。c2pa.opened 要求恰好一个有效 hashed URI,解析到 current manifest 中 relationship 为 parentOf 的 ingredient assertion。c2pa.placed 要求一个或多个有效 hashed URI,解析到 current manifest 中 componentOf 的 ingredient assertion。c2pa.removed 同样要求一个或多个 componentOf ingredient assertion,但引用应解析到另一个 manifest。
c2pa.transcoded 或 c2pa.repackaged 的 ingredient 引用是可选项;一旦存在,每项都必须是有效 hashed URI,并解析到 current manifest 中的 parentOf ingredient assertion。不符合对应条件时返回 assertion.action.ingredientMismatch。应记录 URI 原文、解析到的 manifest、工具报告的 relationship 与 code,不能擅自换成名称相近的 ingredient。
分开检查 redaction 与 icon 引用
若 parameters object 含 redacted 字段,应检查它的 JUMBF URI。URI 缺失或无法解析到 assertion 时返回 assertion.action.redactionMismatch。这与 ingredient mismatch 指向不同引用,记录时不要合并。
Action 的 softwareAgent、actions map 的 softwareAgents 或 template 中出现 icon 时,C2PA 要求按引用验证流程检查。只记录验证器实际暴露的结果。Icon、agent 名称或 template label 不能证明 action 确实按记录发生。
建议表格包含资产编号、manifest 与 claim 标识、assertion label 与位置、action 与位置、parameters 状态、ingredient 或 redaction URI、解析到的 manifest、relationship、准确 code、验证器版本和未决字段。附上完整输出,不要把红绿徽标扩写成工具没有显示的字段级结果。
用有限结论报告技术结果
通过只支持一个有限结论:本次验证器运行中,所查 actions assertion 满足这些结构与引用规则。Claim signature、certificate、assertion hash、asset binding 与 ingredient manifest 仍需单独检查。发布者、人物、配文、日期、地点和事件应通过原始来源与独立证据核查。
若再用 DeepFakeCheck 分析保存的资产,应把概率性信号放在 C2PA 表之外,并关联实际分析文件。自动检测可能误报真实媒体,也可能漏报合成或修改媒体。DeepFakeCheck 不验证 actions assertion,也不签发本文列出的 C2PA failure code。
来源
- C2PA《C2PA Technical Specification, C2PA Actions Validation》:https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_c2pa_actions_validation