TOOLPIPO LAB C2PA
Content Credentialsは再保存すると消える?
画像の作成・編集についての記録は、保存し直しても残るのでしょうか。コピー、JPEGへの再保存、スクリーンショットで比べました。
公開日:2026年9月28日 / 検証日:2026年9月28日

結論
見た目が同じでも、再保存で埋め込まれた来歴が失われる場合があります。来歴がないことだけでは、AI生成かどうかを判定できません。
検証概要
- 使用ツール
- AI画像・編集来歴チェッカー
- 検証日
- 検証条件
- 自作ファイル・条件・実測結果は本文に掲載
- 再現用ファイル
- 本文に作成条件・確認方法を掲載
コピーでは残り、再保存とスクリーンショットでは確認できなかった
Content Credentialsは、画像の作成・編集についての情報を記録する仕組みです。今回は、その情報をC2PA形式で画像ファイルに埋め込んだサンプルを使いました。
見た目が同じでも、埋め込まれた来歴が引き継がれるとは限りません。
ファイルをそのままコピーすると、ハッシュ値も埋め込みC2PAも変わりませんでした。JPEGに再保存した画像と、画面から撮影したPNGでは、元のC2PAを確認できませんでした。
C2PAが見つからないことだけを理由に、AI生成・AI編集されていないとは判断できません。
| ファイル・処理 | pixel寸法 | サイズ | SHA-256 | 埋め込みC2PA |
|---|---|---|---|---|
| 元の合成JPEG | 16×16 | 43,633 bytes | c78dd174bdf6020a… | 検出。trainedAlgorithmicMediaを確認 |
| byte-for-byteコピー | 16×16 | 43,633 bytes | 元と同一 | 元と同じC2PAを検出 |
| Canvas JPEG再保存 | 16×16 | 762 bytes | c7a24e663e6d757f… | 今回のlocal解析では確認できず |
| Chromium screenshot PNG | 16×16 | 112 bytes | 4ff2faadd756f869… | 今回のlocal解析では確認できず |
ここで調べたのは各ファイルに埋め込まれた来歴です。外部データベースからの復元、透かし、画像指紋の照合は行っていません。
検証に使ったC2PA画像
元画像は、ToolPipoが検証用に用意した16×16ピクセルの合成JPEGです。実在する人物や外部の著作物は含みません。
サンプルの署名と検証上の注意点
テスト証明書で署名したC2PAの記録には trainedAlgorithmicMedia がありました。AI画像・編集来歴チェッカーでも「来歴記録あり」と表示されますが、署名については signingCredential.untrusted と報告されます。この画像が特定の生成AIサービスで作られたと証明する実験ではありません。
元ファイル:43,633 bytes / SHA-256 c78dd174bdf6020aa21ab4e2f092eaecece6aa69b000192b48b2783d9aa8f209。
| 元C2PA JPEG | Canvas JPEG再保存 | Chromium screenshot PNG |
|---|---|---|
![]() | ![]() | ![]() |
実験1:ファイルをそのままコピー
元のJPEGを、内容を変えずにコピーしました。サイズは43,633 bytes、SHA-256は元と同じ c78dd174bdf6020aa21ab4e2f092eaecece6aa69b000192b48b2783d9aa8f209 です。
C2PAの解析結果も変わらず、active manifestの trainedAlgorithmicMedia と signingCredential.untrusted を確認できました。
実験2:JPEGとして再保存
元画像をChromiumで読み込み、16×16ピクセルのCanvasに描いてから canvas.toBlob(..., "image/jpeg", 0.92) で保存しました。コピーとは違い、新しく作ったJPEGです。
サイズは762 bytes、SHA-256は c7a24e663e6d757f89c254441a66ed642018d987a24f59094fd1ffeef1306e00。チェッカーで埋め込みC2PAは確認できず、調べたメタデータ項目にもAI関連の文字列はありませんでした。C2PA対応アプリで新しい来歴を付けたわけではありません。
実験3:画像要素のスクリーンショット
元画像をChromiumの img 要素に表示し、その要素の表示領域だけをPlaywrightで撮影して新しいPNGを作りました。OS全画面スクリーンショットの再現ではありません。
生成ファイルは16×16 pixel、112 bytes、SHA-256 4ff2faadd756f869e8b7904fd6f76752974d86e7348f089c87f836ea351e925a。チェッカーでは埋め込みC2PAを確認できず、対象metadata項目にもAI関連文字列は見つかりませんでした。PNGのバイト列とハッシュはChromiumの版・環境で変わり得ます。
| 出発点 | C2PA付き合成JPEG |
|---|---|
| byte copy | 同じファイルデータ → C2PA検出 |
| Canvas JPEG | pixelをdecode → Canvasに描画 → 新しいJPEGへencode |
| screenshot PNG | ブラウザで表示 → 画像要素の領域を撮影 → 新しいPNG |
ファイル内で見つからなくても、来歴がすべて消えたとは限らない
CAIのDurable Content Credentialsの説明では、ファイルに埋め込むmanifestに加え、見えない透かしや画像指紋を使って、オンラインに保存したmanifestを探し直す方法が説明されています。CAI公式FAQも、通常の画像のスクリーンショットには元画像のC2PA metadataが含まれない一方、透かしや指紋による復元の可能性を区別しています。
今回はクラウド上のmanifest、透かし、画像指紋を照合していません。スクリーンショットに埋め込みC2PAがなくても、外部から来歴を復元できるかは分かりません。ToolPipoのチェッカーも外部には問い合わせず、選んだファイルの内部だけを調べます。
| 今回確認したこと | 4ファイル内の埋め込みC2PAと、元画像との違い |
|---|---|
| 確認していないこと | 透かし・画像指紋・クラウド上のmanifestからの来歴復元 |
合成サンプルをダウンロード
3ファイルすべてToolPipoの合成fixtureまたはその派生ファイルです。実在人物・実在個人情報・外部著作物は含みません。
自分で確認する
- 上の3ファイルをダウンロードします。
- AI画像・編集来歴チェッカーに元JPEGを読み込み、C2PAの記録と検証上の注意点を確認します。
- Canvas JPEGとscreenshot PNGを順に読み込み、表示内容を冒頭の表と比較します。
- 必要なら各ファイルのSHA-256を計算し、記事に記載した値と照合します。
画像はブラウザ内で解析され、ToolPipoのチェッカーは外部manifestを取得しません。
一次資料と検証方法
- C2PA Technical Specification 2.4:manifest、asset rendition、soft bindingの仕様
- Content Authenticity Initiative公式FAQ:screenshotと来歴の関係
- Content Authenticity Initiative:Durable Content Credentials:透かし・指紋・オンライン復元の説明
仕様の説明と、ToolPipoの合成ファイルから得た実測結果は分けて記載しました。元fixtureは既存のToolPipoテスト素材から作られ、再エンコードとscreenshotはChromium 151.0.7922.34で生成しました。コンテンツ制作・計算検証方針もご覧ください。

