跳转至

Authenticated Contradictions from Desynchronized Provenance and Watermarking

会议: CVPR 2026
arXiv: 2603.02378
代码: https://github.com/ANCP2021/integrity-clash (有)
领域: AI安全 / 内容溯源 / 数字水印
关键词: C2PA、不可见水印、内容真实性、跨层审计、AI生成检测

一句话总结

本文揭示并形式化了 Integrity Clash(完整性冲突):一张图可以同时携带一个加密有效、声称"人类创作"的 C2PA 溯源清单,和一个标识其为 AI 生成的像素级水印,两个验证层各自单独检查时都通过——作者用标准编辑流水线构造出这种"认证假货",并提出一个把两层联合起来核对的审计协议,在 3500 张测试图、四种冲突状态、三种扰动下做到 100% 分类准确率

研究背景与动机

领域现状:面对以假乱真的 AI 生成图像,业界主推两条平行的"内容真实性"防线。一条是基于密码学的溯源标准 C2PA(Coalition for Content Provenance and Authenticity),把创作/编辑历史写进一个数字签名的元数据清单(manifest),附在文件上;另一条是不可见水印(如 Google SynthID、Meta 的 Pixel Seal),把来源信号直接嵌进像素数据。C2PA 已进入 Photoshop、Nikon、Leica、Sony 固件,水印也由 Google、Meta 平台级部署。官方与平台都把二者宣传为"互补的纵深防御"。

现有痛点:所谓"互补"掩盖了一个结构性漏洞——两层技术上完全独立。C2PA 验证是对元数据做一次密码学签名校验;水印检测是对像素做一次信号解码。两者谁都不以对方的输出为条件。于是同一张图完全可以:清单加密有效、声称是人编辑的,而像素里的水印却在喊"我是 AI 生成的",两边各自单测都 pass。只看一层的验证者拿到的是一份残缺的来源报告。

核心矛盾:C2PA 的签名只证明"元数据自签名后没被篡改、且能归属到某把密钥",并不证明断言的语义为真——一份声称人类创作的清单,哪怕底下像素是 AI 生成的,照样可以是密码学有效的。而水印绑定在像素上、能扛住重压缩/换格式/剥元数据。两个"各自都对"的层放一起,就能在同一资产上产出语义互相矛盾的验证结论,却没有任何已部署系统去裁决它们。

本文目标:(1) 把这种跨层矛盾形式化成可复现的、规范层面的漏洞;(2) 证明它能用现成工具、零密码学攻破地造出来;(3) 给出一个能可靠检出它的检测协议。

切入角度:作者注意到,造假者不需要伪造签名,只需在签名时省略一个断言字段(AI 来源声明)——而 C2PA 规范本身并不强制签名者声明生成式来源。漏洞因此不是密码分析层面的,而是流程/规范层面的。

核心 idea:用一个"冲突矩阵"把(清单状态 × 水印状态)穷举成四象限,定位出 Q4b(认证假货) 这个矛盾态;再用一个同时查两层、按矩阵规则比对的跨层审计协议把它揪出来。

方法详解

整体框架

本文不是提出新模型,而是搭一套受控实验流水线来"制造 + 检测"漏洞。同一组 500 张 SDXL 生成的基图,被送进若干条只在"加不加水印 / 用哪种清单签名"上不同的流水线,分别落到冲突矩阵的不同象限;最后用审计协议对所有产物分类,和已知 ground truth 对账。整体可看作三块:(1) 冲突矩阵——给所有(清单,水印)组合定坐标;(2) 元数据洗白——通过合法签名流程把 AI 水印图洗成"人类编辑",落进 Q4b;(3) 跨层审计——联合两层信号、按矩阵规则判定,把 Q4b 翻出来。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["SDXL 生成图<br/>(关闭自带水印)"] --> B["嵌入 Pixel Seal<br/>256-bit 水印"]
    B --> C["扰动(可选)<br/>JPEG/裁剪/截图模拟"]
    C -->|c2pa.created + 声明AI| D["诚实清单 → Q4a"]
    C -->|c2pa.edited + 省略声明| E["元数据洗白 → Q4b<br/>认证假货"]
    D --> F["跨层审计协议<br/>联合查 清单×水印"]
    E --> F
    F --> G["按冲突矩阵分类<br/>Q1/Q2/Q4a/Q4b"]

关键设计

1. 冲突矩阵:把"两层信号"穷举成可判定的四象限

痛点在于:人们模糊地说"溯源和水印互补",却没有一个框架说清"两层组合到底有几种状态、哪种是矛盾"。作者沿两个二元维度——是否有有效 C2PA 清单是否检出 AI 水印——划出四象限。Q1 Silent Zone:两层皆无,无任何机器可读真实性信号;Q2 Fragile Provenance:无/无效清单但检出水印,有合成证据却无元数据上下文;Q3 Authenticated Content:清单有效但无水印,符合人类创作 + 有效凭证;Q4 Dual Signal:清单有效且检出水印,两层同在,矛盾与否取决于清单内容。Q4 再裂成 Q4a Verified Synthetic(清单如实声明 AI,水印佐证,这是真实性流水线本该有的样子)和 Q4b Authenticated Fake(清单隐瞒 AI、水印却检出合成)——后者就是 Integrity Clash。关键洞察是:造假者若改去剥水印(退到 Q3)或删清单(退到 Q2),都会在某一层留下"可见的缺席";唯独 Q4b 因为两层都完整且各自 pass,最难检测

2. 元数据洗白:靠"省略单一断言字段"零密码学造出认证假货

威胁模型里造假者能力很弱——能用公开模型生成图、用开源工具嵌/保水印、把图过 C2PA 合规签名流程,但不能伪造签名、不能攻破 CA、不能破密码学原语。漏洞因此是程序性而非密码分析性的。具体做法(provenance laundering):拿一张已嵌 Pixel Seal 水印的 AI 图,用两份只差一个字段的清单模板签名。诚实模板声明 c2pa.created 动作、digitalSourceType = trainedAlgorithmicMedia、软件代理 StableDiffusionXL/1.0误导模板声明 c2pa.edited、软件代理 PhotoEditor/2.0,并完全省略 digitalSourceType 字段——而 C2PA 规范不强制声明生成式来源。两份清单用同一把证书、同一时间戳签名,密码学上都有效。换句话说,"如实标注的 AI 图"和"认证假货"之间的全部距离,就是少写一个断言字段。作者用自签 ECDSA P-256 证书链 + DigiCert 时间戳完成签名,自签是故意的——漏洞是语义省略而非证书伪造,自签链走的是和商用可信凭证完全相同的验证路径

3. 跨层审计协议:联合两层、按矩阵规则比对,无需任何新基础设施

既有流程把两层各管各的,Q4b 对双方都是隐形的。审计协议对每张图抽两个信号:(1) 是否存在密码学有效的 C2PA 清单,若有,其断言是否含 AI 来源声明(即 digitalSourceType 是否为 trainedAlgorithmicMedia);(2) 水印比特准确率(bit accuracy,正确恢复的 256-bit 占比)是否超过检测阈值 0.75。阈值取 0.75 是因为它正好是随机解码(256-bit 期望 \(\approx 0.50\))与完美恢复(\(1.0\))的中点,对扰动下的退化更公平。然后按矩阵规则落子:两者皆无→Q1;仅检出水印→Q2;仅有效清单无水印→Q3;两者都有则看清单内容——声明 AI 为 Q4a,否则为 Q4b(正类,即检出跨层矛盾)。妙在它不需要任何超出现有设施的东西:一个 C2PA 清单验证器 + 一个水印检测器本就都存在,协议的全部贡献是那段联合比对逻辑,去交叉引用两个输出、标出单层永远暴露不出的语义不一致

一个完整示例

拿同一张 AI 生成、已嵌水印的图,提交给已部署的 Content Credentials Verify 工具,三种条件:(a) 不附清单——工具报"无内容凭证";(b) 附诚实清单——工具正确识别为 AI 生成并显示生成模型;(c) 附误导清单——工具显示为"人类编辑"、只字不提 AI。输出完全由附带的元数据决定,工具根本没有机制去查像素里的水印。两次签名情形下,唯一警告只关于证书签发者(因研究用自签证书不在信任库里)——而换成 CA 签发的可信证书,这条警告会消失,底下的语义矛盾却依然无人察觉。这一例直观说明:现实验证器看的是"签名可信吗",不是"元数据和像素一不一致"。

实验关键数据

数据集:500 张 SDXL-Base-1.0 在 \(1024\times1024\) 生成的 PNG,提示词取自 Parti-Prompts 并按 round-robin 均衡覆盖类别;显式关闭 SDXL 自带水印,确保下游水印只来自受控嵌入步骤。水印用 Pixel Seal(Meta Seal 套件最强模型),嵌入固定 256-bit 载荷。

主实验:四条核心流水线

流水线 \(N\) C2PA 有效率(%) 平均比特准确率 最低比特准确率 正确分类(%) 象限
Baseline(无水印无清单) 500 0.0 0.502 0.410 100.0 Q1
Watermarked(仅水印) 500 0.0 0.999 0.973 100.0 Q2
Honest Manifest(如实声明) 500 100.0 0.999 0.973 100.0 Q4a
Misleading Manifest(误导) 500 100.0 0.999 0.973 100.0 Q4b

Baseline 均值 0.502、最低 0.410,远低于 0.75 阈值,证明检测器对无水印内容不误报;三条带水印流水线比特准确率统计完全一致(均值 0.999、最低 0.973),证明 C2PA 签名只动文件级元数据、不改像素。核心结果是 Misleading 流水线:500 张全部携带加密有效、只声称"人类编辑"的清单,却同时带着标识 AI 的水印——它和 Honest 流水线输入的是同一批水印图,唯一差别就是签名时用了哪个模板。

跨层审计协议评估(含扰动鲁棒性)

扰动在签名前施加于水印图:(i) JPEG 质量 80;(ii) 中心裁剪 10% 后缩放回 \(1024\times1024\);(iii) 截图模拟(降到 75% 分辨率 → JPEG 质量 70 → 升回原尺寸)。每种扰动独立作用于全部 500 图,新增 1500 个测试样本。

状态 / 条件 正确分类(%) 说明
Q1 Silent Zone 100.0 500 图
Q2 Fragile Provenance 100.0 500 图
Q4a Verified Synthetic 100.0 500 图
Q4b 无扰动 100.0 正类
Q4b + JPEG Q80 100.0 最低比特准确率 0.973
Q4b + 裁剪10%+缩放 100.0 最低比特准确率 0.902
Q4b + 截图模拟 100.0 最低比特准确率 0.906,扩散最宽

合计 2000 个 Q4b 实例(无扰动 + 三种扰动各 500)全部检出,Q4b 作为正类 TPR=1.000、FPR=0.000、Accuracy=1.000

关键发现

  • 水印够鲁棒是审计能成立的前提:三种扰动下每张图的比特准确率都稳在 0.75 阈值以上(最低 0.902),矛盾信号才能存活到被联合核对。截图模拟退化最重但仍 min=0.906。
  • 100% 准确率高度依赖 Pixel Seal 的强鲁棒性:作者诚实指出,若换成更弱的水印方案,扰动后可能跌破阈值——那时误导清单成了唯一信号、无任何反证,这种失效比 Integrity Clash 本身更危险,因为连跨层审计都无能为力。
  • 漏洞是组织性而非技术性的:两套验证基础设施由不同社区、不同标准机构、不同集成点各自发展,没有任何规范要求一层以另一层为条件——所以"补上"在技术上极其直接(只需让验证器查两层并比对)。

亮点与洞察

  • "零密码学攻破"的攻击叙事很有冲击力:不碰签名、不碰 CA,只少写一个规范允许省略的字段,就把"如实 AI 图"洗成"认证假货"——把矛头从密码学强度精准引向规范的语义空洞,定位极准。
  • 冲突矩阵是个干净的分析脚手架:把模糊的"两层互补"压缩成四象限 + 一个被裂开的 Q4,既能讲清漏洞、又能直接当审计协议的判定规则,分析框架和检测方法天然同构。
  • 防御方案"几乎零成本"是最强论点:审计协议不引入任何新组件,只加一段联合比对逻辑——这把"该不该修"从技术可行性问题变成了纯粹的意愿/规范问题,论证非常有力。
  • 可迁移性:这套"两个各自正确的验证层因互不条件化而产生联合矛盾,用穷举状态矩阵 + 跨层一致性核对来兜底"的思路,可推广到视频/音频溯源、乃至任何多签名/多证书并存的真实性系统。

局限与展望

  • 单一水印方案:核心实验只用 Pixel Seal,鲁棒性最强但不代表所有部署方案;更弱的水印在相同扰动下可能失效,导致审计也失灵(作者明确承认这是更危险的失效模式)。
  • 自签证书:用研究自签证书导致验证器报"签发者不可信"警告;换商用可信证书会消除警告,但语义矛盾依旧——这反而说明警告挡不住真实攻击。
  • 平台测试不完整:只对 Content Credentials Verify 网站验证,未测平台级审核流水线(可能有清单验证之外的额外启发式)。
  • 受控且限于图像:签名与检测都由作者控制,仅图像模态。未来应扩到视频/音频;并设计向终端用户传达跨层冲突的界面;最根本的是修改 C2PA 规范,要求签名应用在出清单前先检查像素中是否已有水印,把语义缺口堵在签名点而非依赖下游审计。

相关工作与启发

  • vs 单层水印鲁棒性研究(WAVES、Tree-Ring、对抗去水印):他们研究水印在压缩/裁剪/对抗下能否存活、能否被生成式重建抹掉;本文不攻水印本身,而是利用"水印存活 + 清单可隐瞒"的并存,制造跨层矛盾——视角从"单层强度"转到"层间一致性"。
  • vs 单层 C2PA 安全分析(清单剥离、重签名、软绑定碰撞):他们枚举溯源层自身的威胁;本文强调即使每层都"正确工作",规范允许的语义省略仍会在层间产出矛盾,是规范层面而非实现层面的漏洞。
  • vs 已有多信号一致性框架(Origin Lens、媒体完整性、agent 取证流水线):他们或指出生态碎片化(如审计显示仅 38% 生成器有充分水印、仅 18% 接入 C2PA 标注),或倡议"对齐多信号",但没人把跨层矛盾做成可复现的规范级漏洞、也没给出针对它的检测协议;本文同时补上"构造攻击"与"评估防御"两端。

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 首次把 C2PA 与水印的跨层矛盾形式化为可复现的规范级漏洞并命名 Integrity Clash,视角独到
  • 实验充分度: ⭐⭐⭐⭐ 3500 图、四象限、三扰动、对接真实验证器,闭环完整;但仅单一水印方案、单一模态、受控环境
  • 写作质量: ⭐⭐⭐⭐⭐ 威胁模型—冲突矩阵—攻击—审计逻辑链清晰,对 100% 准确率的依赖条件交代得很诚实
  • 价值: ⭐⭐⭐⭐⭐ 直指已部署内容真实性基础设施的真实盲点,且给出近乎零成本的修补路径,对标准制定有现实影响