はじめに
前回まで、C2PAの基本概念と最新の対応状況を解説してきました。しかし、セキュリティ技術を評価する上で最も重要なのは「攻撃者の視点」です。
今回は、セキュリティ研究者による検証結果を交えながら、C2PAの脆弱性と限界について率直に解説します。結論から言えば、C2PAは「改ざん」よりも「回避」が驚くほど簡単です。
攻撃の種類と難易度
まず、C2PAに対する攻撃を難易度別に整理します。
| 攻撃タイプ | 難易度 | 必要なスキル | 一般ユーザーでも可能か | |
|---|---|---|---|---|
| メタデータ除去(Stripping) | ★☆☆☆☆ | なし | ✅ 誰でも可能 | |
| 再撮影・スクリーンショット | ★☆☆☆☆ | なし | ✅ 誰でも可能 | |
| 実装の穴を突く | ★★☆☆☆ | 低 | ⚠️ 手順を知れば可能 | |
| 偽の署名で新規作成 | ★★★☆☆ | 中 | ❌ 技術知識が必要 | |
| 正規証明書の不正取得 | ★★★★☆ | 中〜高 | ❌ 資金と手間が必要 | |
| 暗号の突破 | ★★★★★ | 極めて高 | ❌ 事実上不可能 |
レベル1:誰でも即座にできる攻撃
メタデータ除去(Stripping)
C2PAの来歴情報は、画像ファイルに埋め込まれたメタデータです。これを削除するのは極めて簡単です。
具体的な方法:
- スクリーンショットを撮る
- SNSにアップロード→ダウンロード(多くのSNSはメタデータを削除)
- 画像編集アプリで「別名で保存」
- オンラインのメタデータ削除ツールを使用
つまり:
「C2PA署名付きの本物の写真」から署名を剥がして「署名なしの写真」にすることは、スマホしか使えない人でも30秒でできる
これはC2PA自身も認識している「根本的な限界」です。C2PAは「署名がある=信頼できる」というポジティブな証明は(一定条件下で)できますが、「署名がない=偽物」とは言えません。
レベル2:カメラ機能を悪用した攻撃
Nikon Z6IIIの脆弱性(2025年9月発覚)
DPReviewフォーラムのユーザーであるAdam Horshack氏が発見した方法です。
手順:
- C2PA非対応のカメラで「AI生成画像を表示した画面」を撮影
- そのSDカードをC2PA対応のZ6IIIに入れる
- Z6IIIの「多重露光モード」を使用
- レンズキャップをしたまま2枚目を撮影(真っ黒な画像)
- カメラが2枚を合成し、正規のC2PA署名を付与
検証結果:
- Adobe Content Credentials:✅ 認証通過
- CAI検証サイト:✅「Nikon Z6IIIで撮影」と表示
難易度: カメラの操作マニュアルを読める程度のリテラシーがあれば可能
Horshack氏の主張を要約すると、「これは暗号を破ったわけではないが、暗号を本質的に無意味にした」というものです。つまり、暗号の堅牢性は維持されたまま、システム全体の信頼性が損なわれたことを意味しています。
Nikonの対応: 発覚後、Z6IIIのC2PA機能を一時停止。さらに、発行済みのC2PA証明書を全て無効化する措置に至りました。
レベル3:無料ツールで偽署名を作成
Hacker Factor Blogの実証
セキュリティ研究者Dr. Neal Krawetz氏は、自身のブログ「Hacker Factor」で、C2PAの脆弱性を継続的に検証・公開しています。
偽造の手順概要:
1. Microsoft Designerなどの無料AI画像生成サービスで画像を作成
(C2PA署名が自動付与される)
2. 既存のC2PA署名付き画像からメタデータを抽出
3. ddコマンドやhexeditでメタデータを移植・編集
4. 完成:偽の「認証済み」画像
使用ツール(すべて無料):
- AI画像生成+C2PA署名:Microsoft Designer(無料アカウントで利用可能)
- メタデータ操作:ExifTool、dd(Linux標準コマンド)、hexedit
検証結果:
- Adobe Content Credentials:✅ 問題なし
- Microsoft Content Integrity:✅ 問題なし
- 暗号署名:✅ すべて有効
Krawetz氏のコメント:
「この偽造で一番難しかったのは、Microsoftアカウントのキャプチャ認証だった(3回失敗した)」
(原文:"The most difficult part of this entire forgery process was entering Microsoft's captcha to change my account's name. (It took me 3 tries!)" — Hacker Factor Blog)
レベル4:正規証明書を取得して偽造
より本格的な偽造を行う場合、DigiCertなどの認証局から正規の署名証明書を購入することも可能です。
費用: コードサイニング証明書で約$375〜$575/年、ドキュメントサイニング証明書でリセラー経由$283〜$513/年程度
ただし、前述のKrawetz氏が実証した手法では証明書の購入すら不要です。Microsoft Designerの無料アカウントだけでC2PA署名付きの画像を作成できるため、コストはゼロです。
結果:
- 正規証明書を使えば「不明なソース」という警告すら出なくなる
- 完全に「信頼できる」署名として認識される
詐欺は年間数十億ドル規模の産業であり、犯罪者にとって数百ドルの証明書費用は大した障壁にはなりません。ましてや無料で偽造が可能であれば、金銭的ハードルはほぼ存在しないと言えます。
実証された偽造シナリオ
ShmooCon 2025発表を受けたブログ上の実証
2025年1月に開催されたセキュリティカンファレンス「ShmooCon 2025」で、MicrosoftのChristian Paquin氏がC2PAの有効性について発表を行いました。これに対し、Krawetz氏は自身のブログ上で反論として偽造のデモンストレーションを公開しました。
シナリオ: Krawetz氏はMicrosoftアカウントの表示名をPaquin氏の実名「Christian Paquin」に変更した上で、Microsoft DesignerでAI生成画像にC2PA署名を付与。あたかもPaquin氏本人が署名したかのように見せかけました。
結果:
- すべての検証ツールが「問題なし」と報告
- 署名者として偽の名前が表示される
- タイムスタンプも偽造可能
BBCハイチ動画の問題(2024年3月)
BBCはハイチ暴動を報じた動画にC2PA署名を付与して「認証済み」として公開しましたが、後に以下の問題が発覚しました。
- 音声トラックがTikTokの別ソースから追加されたものだった
- 複数のスプライス(継ぎ接ぎ)の痕跡が存在
- タイムスタンプに矛盾があった
結果: C2PAは、こうした編集プロセスの不備を可視化・検出することができず、問題のあるコンテンツに「認証済み」のお墨付きを与える形になってしまいました。これは、C2PAが「ファイルの改変がないこと」は証明できても、「コンテンツの内容が正確であること」は保証できないという構造的な限界を示しています。
C2PAの根本的な限界
1. 「信頼」ベースであり「検証」ではない
C2PA公式仕様書のSecurity Considerations(Section 4.2.1)には、脅威モデルの前提として以下が明記されています。
"Attackers do not have access to private keys referenced within the C2PA ecosystem"
(攻撃者はC2PAエコシステム内の秘密鍵にアクセスできないと仮定)
つまり、C2PAの安全性は「秘密鍵が漏洩しない」という前提に依存しています。また、仕様書のSection 4.2.2.7「Community trust」では、悪意ある行為者がコミュニティの信頼メカニズムによっていずれ検出されることを想定した設計となっています。しかし、前述の事例が示すように、正規のサービスを経由した偽造は秘密鍵の漏洩を必要とせず、コミュニティによる検出も容易ではありません。
Krawetz氏はブログで「C2PAは"trust"(信頼)に大きく依存しており、"trust but verify"(信頼するが検証する)ではない」と批判しています。セキュリティの分野では古くから「鍵は正直な人を正直に保つだけで、悪意のある人を止めることはできない」と言われますが、C2PAの現状はまさにこの格言を体現しています。
2. 視覚的内容は認証されない
C2PAが署名するのは「メタデータ」であり、画像の内容そのものではありません。
つまり:
- 「この署名は有効」=ファイルが署名後に改変されていない
- ≠「この画像は本物」
- ≠「このメタデータは正確」
3. 偽造と本物の区別がつかない
最も深刻な問題は、偽造された署名も、正規の署名も、検証ツールでは同じように「✅ 有効」と表示されることです。
逆説的なリスク
Krawetz氏はブログで次のような趣旨の警告をしています。C2PAがない世界では、画像分析ツールで偽造を発見できることが多い。しかしC2PAがある世界では、「認証済み」という権威が偽造の発見をかえって難しくする可能性がある、と。
つまり:
C2PA導入前:「この画像、本当かな?」→ 疑って検証する
C2PA導入後:「crマークあるから大丈夫」→ 検証しない
皮肉なことに、信頼を高めるための技術が、検証を怠らせる可能性があるのです。
スキルレベル別まとめ
| スキルレベル | できること | 必要なもの | |
|---|---|---|---|
| 小学生 | 署名の除去 | スマホのみ | |
| 中学生〜高校生 | カメラ機能の悪用 | C2PA対応カメラ + 手順書 | |
| IT初心者(1-2年) | 偽署名の作成 | PC + 無料ツール + 数時間 | |
| 開発者 | 完全な偽造 | 署名証明書($283〜) + 数日 | |
| 暗号専門家 | 暗号の突破 | ❌ 事実上不可能 |
まとめ:第3回のポイント
- C2PAの暗号自体を破ることは困難だが、システムを回避することは驚くほど簡単
- 署名の除去は誰でも30秒でできる
- 偽の署名を作成することも、無料ツールで数時間あれば可能
- 偽造された署名と本物の署名は、検証ツールでは区別できない
- 「認証済み」という表示が、かえって偽情報を信じやすくするリスクがある
次回は、これらの限界を踏まえた上で、Web制作の現場でC2PAをどう実装すべきかを解説します。
参考資料
Major vulnerability in Nikon's C2PA feature on the Z6 III — NikonRumors
Nikon Suspends C2PA Functionality on the Z6 III Due to Authentication Issue — PetaPixel
Nikon Can't Fully Solve the Z6 III's C2PA Problems Alone — PetaPixel
Nikon struggles with security problems in photo authentication — Heise
ShmooCon and C2PA Forgeries — Hacker Factor Blog
C2PA's Butterfly Effect — Hacker Factor Blog
C2PA's Worst Case Scenario — Hacker Factor Blog
IEEE, BBC, and C2PA — Hacker Factor Blog
C2PA from the Attacker's Perspective — Hacker Factor Blog
C2PA Security Considerations v2.0 — C2PA公式仕様書
c2patool(Adobe OSS) — GitHub
ShmooCon 2025 Day 2 Build It! Track — YouTube(Paquin氏の発表含む)
BBC C2PA verification in journalism — BBC R&D
Content Credentials Aim to Tame Disinformation — DarkReading
この記事をシェアする