C2PA Manifest 状态:如何区分 Well-Formed、Valid 与 Trusted
先保存文件与完整结果
用兼容 C2PA 的验证工具打开已保存的原文件,并保留完整输出,不只截取颜色标记或总结果。记录文件名或来源 URL、取得时间、验证工具名称与版本、active-manifest label,以及工具展示的每个 status code。这套表格是本文提出的复核方法,不是 C2PA 规定的工作表。
先限定问题:本次运行中的 active manifest 满足哪一层 validation state,哪些检查支撑这个状态。C2PA 定义了明确的包含关系:Trusted manifest 一定是 Valid,Valid manifest 一定是 Well-Formed,反向不能成立。
Manifest 状态还要与 asset 和现实事件分开。C2PA 认为,当 content binding 覆盖的 asset 部分自 active manifest 生成后没有被修改,且 active manifest 为 Valid 或 Trusted 时,该 asset 才是 Valid asset。这仍是对被覆盖字节和 provenance validation 的技术判断,不能确认配文、身份、地点或画面事件是否符合事实。
从 Well-Formed 条件开始
Manifest 内容符合 validation process 检查的规范要求、只包含该 manifest type 允许的 assertion、各 assertion 满足自身要求,并且所有 ingredient 满足相应要求时,该 manifest 才是 Well-Formed。复核表应为这四类条件分别留一行。
原样抄录验证工具显示的结果。某项没有显示时,应写“未显示”,不能从总标记倒推它已经通过。Well-Formed 描述结构与规则合规,是 Valid 的前提;它没有说明 manifest 自签名后是否保持不变,也没有说明 claim signature、有效期或 signer trust 已经通过。
为 Valid 补齐签名、时间与吊销检查
Valid manifest 首先必须是 Well-Formed。规范还要求验证确认 manifest 自签名后没有被修改,claim signature 获得 claimSignature.validated,签名有效期检查获得 claimSignature.insideValidity。
Signer credential 不能因 signingCredential.ocsp.revoked 或 signingCredential.ocsp.unknown failure code 被拒绝。把签名、时间和吊销结果分栏记录;它们回答不同问题,但都是 Valid 的必要条件。
Manifest 达到 Valid 后,claim 可以归属于 claim 的 claim_generator_info 字段所标识的 claim generator。只记录字段实际展示的对象,不把这种归属扩写成“工具见证了事件”或“assertion 内所有陈述都是真的”。
只有 signer trust 通过才能写 Trusted
Trusted 在 Valid 基础上增加一项:signing credential 必须获得 signingCredential.trusted。如果工具只报告 Valid,却没有这项 success code,不能因为发布者或软件名称熟悉就自行升级为 Trusted。
Trust 还与验证工具的配置有关。规范要求验证器维护可接受的 Extended Key Usage 值及其 X.509 trust anchor;对 c2pa-kp-claimSigning EKU,anchor 包括 C2PA Trust List,但列表可以为空,工具也可以允许用户配置其他 anchor。记录输出中可见的验证器版本与 trust context。
表格可依次列出 manifest label、Well-Formed 条件、signature integrity、validity period、revocation、signer trust、最终状态和未解决项。这样可以避免“trusted”一个词掩盖实际检查过程。
分开记录状态码、资产完整性与事实核查
不要把 success、informational、failure status code 列表与 validation state 混成一个结论。Status code 是单项检查记录,Well-Formed、Valid、Trusted 则由各自必要条件得出。Valid manifest 也不等于 Valid asset;后者还需要对应的 content-binding 结果。
如果还用 DeepFakeCheck 分析保存的文件,应把概率性风险信号放在独立区域。自动检测可能误报真实媒体,也可能漏报合成或修改媒体。DeepFakeCheck 不签发 C2PA validation code,也不决定 manifest state。
低风险结果不会把 Well-Formed manifest 变成 Valid 或 Trusted;Trusted manifest 同样不能证明画面事件发生过、配文准确或说话人身份无误。现实主张仍需核对原始发布页面与独立来源。最后保存准确文件、完整输出、状态所需检查、trust context、可见的 content-binding 结果与实际处置。
来源
- C2PA《C2PA Technical Specification, Validation states》:https://spec.c2pa.org/specifications/specifications/2.2/specs/C2PA_Specification.html#_validation_states