C2PA 是什么?AI 图片/视频溯源标准完整解读

普通元数据(EXIF、XMP)的问题是谁都能改:一行 exiftool 命令就能把"Midjourney"改成"Canon EOS R5"。C2PA(Coalition for Content Provenance and Authenticity)解决的就是这个问题——它把内容的来源记录做成带数字签名的 manifest 嵌进文件,改动任何一个字节,签名校验就会失败。这让它成为目前 AI 内容溯源里唯一具备防篡改能力的方案。

它是怎么来的

C2PA 不是凭空出现的。2019 年 Adobe 牵头发起了 CAI(Content Authenticity Initiative),同期 BBC 和微软在做面向新闻业的 Project Origin,两边解决的是同一个问题。2021 年初,两个项目的技术路线合并,在 Linux 基金会旗下成立了 C2PA 联盟,制定统一的开放规范。创始成员包括 Adobe、Arm、BBC、Intel、Microsoft、Truepic;OpenAI、Google、Sony 等是后来加入的,目前成员早已过百。规范本身完全公开,参考实现 c2pa-rs(Rust)在 GitHub 上开源——AICheck365 命令行版的完整 C2PA 解析用的就是这个库。

技术结构:manifest、claim、assertion、签名

一个 C2PA 记录的层级是这样的:文件里嵌一个 manifest store,里面可以装多个 manifest(每次编辑追加一个,形成链);每个 manifest 包含若干 assertion(断言,描述内容的具体事实)、一个把这些断言绑定起来的 claim,以及对 claim 的 COSE 数字签名和签名方的 X.509 证书链。

对 AI 检测来说,最有价值的是这几处:

digitalSourceType:判断 AI 来源的核心字段

这个字段的取值来自 IPTC 的受控词表,C2PA 和 XMP/IPTC 用的是同一套。和 AI 相关的有六个值,证据强度并不一样:

取值含义证据强度
trainedAlgorithmicMedia完全由训练算法(即 AI 模型)生成
compositeWithTrainedAlgorithmicMedia包含 AI 生成成分的合成内容(如 AI 修图)
compositeSynthetic包含合成元素
algorithmicMedia算法生成,但不一定经过模型训练(如分形图)
dataDrivenMedia数据驱动生成(如数据可视化)
trainedAlgorithmicDataAI 生成的数据

manifest 实际存在文件的哪里

C2PA 数据用 JUMBF(JPEG Universal Metadata Box Format,ISO/IEC 19566-5)容器封装,不同文件格式有不同的嵌入位置,这部分细节在多数介绍文章里都被略过了,但对理解检测原理很关键:

哪些平台在写 C2PA?

截至 2026 年中的大致情况(平台行为会变,以实测为准):

平台/工具状态备注
OpenAI DALL-E 3 / Sora支持图片自 2024 年初起带 C2PA,Sora 部分导出带
Adobe Firefly支持创始成员,Content Credentials 全线打通
Microsoft Bing Image Creator支持含 Copilot 图像生成
Google Imagen / Gemini部分入口支持同时使用 SynthID 像素水印;不同产品入口行为不一致
Midjourney不支持写 XMP(CreatorTool、DigitalSourceType),无签名
Stable Diffusion / ComfyUI默认不支持本地生成无平台私钥可签;参数走 PNG 文本块
Leica M11-P、部分 Sony 相机支持反方向应用:拍摄时机内签名,证明"是真照片"

完整验证 vs 快速扫描:一个该说清楚的区别

"检测 C2PA"其实有两个深度档位,混为一谈容易产生误解:

完整验证解析整个 manifest store,校验 COSE 签名、证书链和信任列表,能给出"这条记录由某机构签发、未被篡改"的结论。c2patool 和 contentcredentials.org/verify 做的是这个。

快速扫描(AICheck365 浏览器版的做法)是在本地定位 JUMBF 块后,在 manifest 字节里做文本级匹配:找 digitalSourceType 的六个 AI 取值、匹配已知工具名清单、识别 Google 凭证链路的特征字符串。命中 trainedAlgorithmicMedia 记高置信度,命中已知工具名记高置信度,只命中 Google + C2PA 关联特征记中等。这个档位足够回答"这文件有没有 AI 来源声明",但它不验证签名——如果你需要法律或新闻场景的可信结论,请走完整验证。

局限性:C2PA 不能做什么

把 C2PA 当万能解药会失望,它的边界很清楚:

想知道你手里的文件带不带 C2PA 来源声明?拖进来扫一下,本地完成,不上传

开始检测 →

常见问题

C2PA 签名可以被伪造吗?

在签名密码学层面极难。manifest 用 COSE 格式签名,验证时检查 X.509 证书链,伪造等价于攻破签名方的私钥。但要注意两点:一是任何人都可以用自己的证书给图片签一个'看起来像样'的 manifest,所以验证时必须看签名方身份是否可信,而不是只看'有没有签名';二是把 manifest 整个删掉很容易,C2PA 防篡改,不防剥离。

所有 AI 平台都会写 C2PA 吗?

不是。OpenAI(DALL-E 3、Sora)、Adobe(Firefly)、微软(Bing Image Creator)、Google(Imagen/Gemini 部分入口)已经在写。Midjourney 用的是 XMP 而非 C2PA;Stable Diffusion 等本地部署的开源工具默认不写——本地生成根本没有可用于签名的平台私钥。

如何查看一个文件的 C2PA 信息?

完整验证用 Adobe 的 contentcredentials.org/verify 或官方命令行工具 c2patool,它们会解析整个 manifest store 并校验签名链。AICheck365 的浏览器版做的是轻量扫描:在本地提取 manifest 字节、匹配 digitalSourceType 和已知工具名,速度快、不上传文件,但不做签名链验证,定位是快速筛查而非法证审计。

C2PA 只用于 AI 图片吗?

不是。它是通用的内容溯源标准,相机拍摄、人工编辑同样可以记录。Leica M11-P、部分 Sony 机型已经支持拍摄时在机内写入 C2PA 签名;新闻机构用它证明照片'确实出自这台相机、中间没被改过'。AI 标注只是它的用途之一。

图片经过编辑后 C2PA 还在吗?

取决于编辑工具。支持 C2PA 的工具(如 Photoshop 开启 Content Credentials 后)会在原 manifest 之上追加新的 manifest,形成可追溯的编辑链;不支持的工具保存时会直接丢弃 APP11 段或 caBX chunk,记录就断了。