你的手机已经拥有能够证明照片真实的硬件,但没有人使用它。

发布: (2026年2月17日 GMT+8 02:22)
5 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您想要翻译的完整文本内容(除代码块和 URL 之外),我将把它翻译成简体中文并保持原有的格式和 Markdown 语法。谢谢!

介绍

2025 年,Adobe 内容真实性倡议报告称,97 % 的组织遭遇了 AI 生成内容被用于对付它们——深度伪造、合成产品照片、伪造证据。
如今每部智能手机都内置了防篡改的加密芯片,但大多处于闲置状态:iOS 的 Secure Enclave、Android 的 StrongBox 或 TEE。这些硬件模块旨在以无法提取或伪造的方式对数据进行签名,然而它们在照片来源追溯方面却很少被使用。

C2PA – 媒体真实性标准

C2PA(内容真实性倡议)是一项由 Adobe、Microsoft、Intel 等公司支持的开放标准。它的工作方式类似于媒体文件的 HTTPS:一个加密清单直接嵌入 JPEG 中,包含以下信息:

  • 拍摄图像的设备
  • 时间戳和地点
  • 完整的编辑历史
  • 若任何像素被更改则失效的签名

徕卡、索尼和尼康已经推出了支持 C2PA 的相机,但移动平台——> 90 % 的照片都是在这些平台上拍摄的——几乎没有得到采用。

Source:

attestation‑photo‑mobile

attestation-photo-mobile 是一个 React Native 包,用于弥合这一鸿沟。它可以在文件 未写入磁盘之前 捕获照片、对其进行哈希、使用硬件支持的密钥进行签名,并嵌入完整的 C2PA 清单。

Architecture

  1. Native layer (Swift/Kotlin) – 访问硬件密钥库,在 Secure Enclave 或 StrongBox 中生成 ECDSA P‑256 密钥,并确保密钥永不离开硬件。
  2. Rust layer (c2pa‑rs) – 构建 JUMBF 清单,计算资产哈希,并生成 C2PA 声明。(不推荐使用纯 JS 实现。)
  3. React Native bridge – 暴露单一的 signPhoto(path) 函数以及 useAttestedCapture hook,负责密钥供应、位置预取和错误包装。
import { useAttestedCapture, saveToGallery } from '@rolobits/attestation-photo-mobile';

function CaptureScreen() {
  const { signPhoto, isReady } = useAttestedCapture({
    includeLocation: true,
    appName: "My App",
    nonce: "server-challenge-token",
  });

  const onCapture = async (photoPath) => {
    // Sign and embed C2PA manifest
    const signed = await signPhoto(photoPath);

    // signed.trustLevel -> "secure_enclave" | "strongbox" | "tee"
    // signed.embeddedManifest -> true
    // signed.signature -> SHA‑256 hex of original asset

    await saveToGallery({ filePath: signed.path });
  };
}

Verifying the Output

生成的 JPEG 可以使用任何 C2PA 工具进行验证,例如:

cargo install c2patool
c2patool verify output.jpg

或上传至 verify.contentauthenticity.org

Device Integrity Checks

在签名之前,SDK 会执行完整性检查:

  • Jailbroken/rooted devicesE_COMPROMISED_DEVICE
  • No Secure Enclave / StrongBoxE_NO_TRUSTED_HARDWARE

这些行为可以通过 requireTrustedHardware 选项(true | false)进行控制。

真实场景

  1. 保险理赔 – 应用内的损坏照片通过设备 ID、位置和时间戳进行硬件签名;理赔员可以自动验证真实性。
  2. 市场列表 – 对汽车、房地产或租赁的已验证图片让买家确信照片真实且非 AI 生成。
  3. 现场检查 – 对建筑工地或设备审计的带时间戳、签名的照片提供防篡改的合规证据。
  4. KYC(了解你的客户) – 基于自拍的身份验证可以证明图像来源于真实设备,而非合成面孔。

路线图(v1 限制)

  • 自签名证书 – 目前签名密钥没有 CA 链,因此验证者显示有效签名但“未知签名者”。归属信息因此缺失。下一步的重点是集成受信任的 CA。

仓库

👉 GitHub: RoloBits/attestation-photo-mobile

0 浏览
Back to Blog

相关文章

阅读更多 »

n8n 是纯粹的精彩

!Miguel Valdeshttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2...