Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
その画像、 誰が‧いつ‧どこで‧どう作った? モバイルアプリで扱うC2PAとコンテンツの来歴
Search
Shuhei Shitamori
August 28, 2026
Programming
43
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
その画像、 誰が‧いつ‧どこで‧どう作った? モバイルアプリで扱うC2PAとコンテンツの来歴
026/08/28 SAPPORO ENGINEER BASE #16 モバイル開発 の発表資料です。
Shuhei Shitamori
August 28, 2026
More Decks by Shuhei Shitamori
See All by Shuhei Shitamori
Photography is Dead?
shitamori1272
1
100
Vision Proで実現する 『ながら運動』健康促進術
shitamori1272
0
160
時差×英語×リモートでの コミュニケーション術
shitamori1272
0
92
写真はもう信用できない?フェイク検出から来歴証明へ
shitamori1272
1
95
Apple SharePlayで 非対称クロスプレイ チャレンジ (SharePlay使ってみた編)
shitamori1272
0
200
Foundation Models触ってみた - iPhone Dev Sapporo — WWDC25 Recap
shitamori1272
0
140
Vision Proで広告フリーな世界を実現したい
shitamori1272
0
260
Wallet API, Verifier APIで実現するIDカード on iPhoneの世界
shitamori1272
1
3.7k
Other Decks in Programming
See All in Programming
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
160
iOSDC2026登壇資料.pdf
riofujimon
0
160
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
200
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
6
1.9k
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
270
Go のフラットな パッケージに 「ファイル単位の private」を 〜Linter “declscope” を作った話〜
mpyw
0
310
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
110
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
690
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
170
Intent as Code
shoppingjaws
6
1k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
97
6.8k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
410
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The SEO identity crisis: Don't let AI make you average
varn
0
560
Evolving SEO for Evolving Search Engines
ryanjones
0
290
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Site-Speed That Sticks
csswizardry
13
1.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Transcript
その画像、 誰が‧いつ‧(どこで)‧どう作った? モバイルアプリで扱うC2PAとコンテンツの来歴 下森 周平 2026/08/28 SAPPORO ENGINEER BASE #16
モバイル開発
下森 周平 / したもり • ひとり法⼈として活動するiOSエンジニア • デジタルIDに関するアプリの開発 • 結婚を期に、2年前から札幌
• 先⽉ Sapporo.swiftを開催 @forestunder_dev
近況 Sapporo.swift向けにAI画像⽣成機能を 使ったアプリを作った • 参加者に割り当てた隠れプロンプトを 当てるゲーム ◦ 参加者の名札をスキャンして 隠れプロンプトを集める ◦
集めたプロンプトで画像を⽣成 ◦ ⽣成した画像から各参加者のプロンプトを推測する
今⽇話すこと 1. コンテンツの信ぴょう性を判断するために⾒た⽬ではなく 「誰が、いつ、どうやって」などの来歴を確かめる 2. C2PA規格は来歴を署名付きで扱う標準規格 3. モバイルアプリは、来歴をユーザーに届ける重要な存在 積極的にC2PA企画に対応しよう
どちらが本物の時計台 写真でしょう? A B
どちらが本物の時計台 写真でしょう? ✅ ❌ Proofmode iOS アプリ ChatGPT 生成画像
データから「⾒破る」が困難な時代 現代は ◦ 個⼈や組織があらゆる⽬的で、 ◦ ⾼品質なAIコンテンツを⽣成し、 ◦ SNSやメディアで⼤量に拡散される時代 「本物」のコンテンツまで疑われるように
「⾒破る」から「来歴を⾒る」へ 「⾒破る」限界 「来歴を⾒る」仕組みへ 本物そっくりなコンテンツを⽣成されたら ⾒分けることはできない 必要なのは、コンテンツの⾒た⽬ではなく 「誰が‧いつ‧どのように」 作成したかを確認する仕組み
C2PA規格 コンテンツの来歴を扱う業界標準規格 • 「誰が‧いつ‧どのように作成‧編集したか」などの 来歴情報をコンテンツに紐付け可能 • デジタル署名により改ざん不可能なため、信頼できる情報源として扱える • 画像‧動画‧⾳声‧⽂書など多くのフォーマットに対応 ⽣成来歴を記録
⽣成ツール 編集来歴を記録 編集ツール ⽣成‧編集来歴を活⽤ 利⽤ツール
多くの団体がC2PAに参画している Steering Committee Members General Members(⽇本企業を中⼼に抜粋) Source: C2PA Membership(2026年8⽉27⽇参照)
C2PA対応製品‧サービスの例 撮影‧作成 編集 配信‧変換 表⽰ Leica M11-P Adobe Photoshop Cloudflare
Images Youtube 撮影時に来歴を署名 出⼒時に来歴を付与 変換後も保持‧再署名 AI⽣成かラベル表⽰
スマホのC2PA対応例 Androidの⼀部機種から、機種カメラのC2PA対応が進む • Pixel10 ~ (写真) • Pixel 8 ~
(動画) • Galaxy S25 ~ (AI編集した写真のみ)
データから「⾒破る」が困難な時代 現代は ◦ 個⼈や組織があらゆる⽬的で、 ◦ ⾼品質なAIコンテンツを⽣成し、 ◦ SNSやメディアで⼤量に拡散される時代 「本物」のコンテンツまで疑われるように
データから「⾒破る」が困難な時代 現代は ◦ 個⼈や組織があらゆる⽬的で、 ◦ ⾼品質なAIコンテンツを⽣成し、 もしC2PA⽣成情報が コンテンツデータに ◦ SNSやメディアで⼤量に拡散される時代
紐づいていたら 判断の重要な証拠に! 「本物」のコンテンツまで疑われるように
C2PAデータをみてみる Proofmode iOSアプリで撮影した写真 • 公式Viewer ◦ https://verify.contentauthenticity.org/ • ⾮公式の詳細の確認ができるViewer ◦
https://c2paviewer.com/
C2PAデータをみてみる ChatGPTで⽣成したフェイク画像 • 公式Viewer ◦ https://verify.contentauthenticity.org/ • ⾮公式の詳細の確認ができるViewer ◦ https://c2paviewer.com/
C2PAデータをみてみる C2PA付き写真を改ざんした画像 • 公式Viewer ◦ https://verify.contentauthenticity.org/ • ⾮公式の詳細の確認ができるViewer ◦ https://c2paviewer.com/
C2PAの注意点① C2PA付きコンテンツからC2PAデータを取り除くと 来歴の確認が不可能に C2PAデータを 取り除いた UFO画像 • SNSへのアップロードによりメタデータごと削除 • C2PA未対応ツールでの編集により消失
• 悪意あるユーザーによる意図的な削除 UFOが嘘か 判断できなくな る C2PAエコシステムの拡⼤が不可⽋
C2PAの注意点② • 暗号的に検証できるのは 「どのツールがその来歴を記録し、その後に変更がないか」 • ツールが記録した内容が「真実」とは保証できない 僕が作ったアプリで、 カメラで作成した来歴を持つ ツチノコ画像を作れるぞ! ◦
悪意あるコンテンツ提供者が嘘の来歴を記録 ◦ ツールの不具合により、誤った来歴が記録 ツール提供元も確認して総合的に判断することが⼤事 (https://spec.c2pa.org/conformance-explorerからC2PA公式が承認したツールを探せる)
なぜC2PA規格の話をモバイル開発の場でするのか • アプリは、コンテンツとユーザーの接点 ◦ モバイルアプリで「写真の撮影や編集」などのコンテンツ作成を⾏うユーザーが多い ◦ モバイルアプリで「動画や⾳楽」などのコンテンツ利⽤するユーザーが多い • スマホ⾃体のC2PA対応が発展途上 ◦
iPhoneの代わりに、アプリ層でC2PA来歴を扱わないとユーザーに届かない アプリがC2PA対応しないと、多くユーザーが来歴の価値を受け取れない
C2PA規格の対応ができるアプリ コンテンツ作成アプリは来歴記録 コンテンツ編集アプリは来歴保持‧記録 コンテンツ共有アプリは来歴保持 コンテンツ表⽰アプリは来歴活⽤
C2PA規格をモバイルアプリで扱う 準公式SDKで、モバイルアプリから読み取り‧検証‧書き込み‧署名まで扱える https://github.com/contentauth/c2pa-swift https://github.com/contentauth/c2pa-android
C2PA来歴を読み取る コンテンツのURLから来歴をJSON⽂字列として読み取ることができる // Swift import C2PA // Kotlin import org.contentauth.c2pa.*
do { let manifestJSON: String = try C2PA.readFile(at: imageURL) print("C2PA manifest: \(manifestJSON)") } catch { print("Error reading C2PA data: \(error)") } try { val manifest = C2PA.readFile("/path/to/image.jpg") println("Manifest: $manifest") } catch (e: C2PAError) { println("Error reading manifest: $e") }
C2PA来歴を読み取る ⽣成AI画像⼊⼒時の出⼒データの⼀部 { "manifests": { "title": "image.png", "assertions": [ {
"label": "c2pa.actions.v2", "data": { "actions": [ { "action": "c2pa.created", "when": "2026-08-27T00:00:00Z", "softwareAgent": { "name": "gpt-image", "version": "2.0" }, "digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia" }, … ] }, "created": true } ], "signature_info": { "alg": "Es256", "issuer": "OpenAI OpCo, LLC", "common_name": "OpenAI Media Service", "cert_serial_number": "471440979205905794604524502504016020624908622401", "time": "2026-08-27T05:31:13.536137+00:00" }, "label": "urn:c2pa:94b278d2-fa5b-4bfe-8bb3-29a9874f16b0", "claim_version": 2 } }, … "validation_state": "Trusted" }
デモ1: 編集履歴のない写真だけ投稿できるSNSアプリ 投稿前にC2PA来歴データを確認する • C2PA来歴があるか • C2PA来歴が改ざんされていないか • カメラで作成された画像か •
編集来歴が存在しないか ノンフィクションコンテンツアプリが作れる!
C2PA来歴を書き込む JSON形式の来歴を署名⽤の鍵を渡してC2PA付きコンテンツを書き出す // Swift let signerInfo = SignerInfo( algorithm: .es256,
certificatePEM: certificatePEM, privateKeyPEM: privateKeyPEM, tsaURL: nil ) // Kotlin val signerInfo = SignerInfo( algorithm = SigningAlgorithm.ES256, certificatePEM = certsPem, privateKeyPEM = privateKeyPem, tsaURL = "https://timestamp.server.com" ) let manifestJSON = """ { "claim_generator": "MyApp/1.0", "title": "Signed Image", "format": "image/jpeg" } """ val manifest = """{ "claim_generator": "my_app/1.0", "assertions": [ {"label": "c2pa.actions", "data": {"actions": [{"action": "c2pa.created"}]}} ] }""" try C2PA.signFile( source: inputURL, destination: outputURL, manifestJSON: manifestJSON, signerInfo: signerInfo ) try C2PA.signFile( sourcePath = "/path/to/input.jpg", destPath = "/path/to/output.jpg", manifest = manifest, signerInfo = signerInfo )
デモ2: C2PA来歴を書き込む 冒頭の画像⽣成アプリに、⽣成画像にC2PA来歴を書き込む機能を追加 • ⽣成AI製であること • ⽣成⽇時 • ⽣成アプリ名 •
スキャンしたユーザーと隠れプロンプト 作成時の特別なコンテキストが埋め込まれた思い出深い画像を作るアプリに!
そのほか実装で気を付けること • C2PA来歴が消失しないよう、不要なデータ変換を避ける ◦ 例: 来歴付きPNG Data → UIImage →
PNG Dataで来歴が消失 • プライバシーな情報は、必要でない限りC2PA来歴に書き込まない ◦ 例: Pixel 10カメラも位置情報はC2PA来歴に⼊れていない
まとめ 1. コンテンツの信ぴょう性を判断するために 「誰が、いつ、どうやって」の来歴を確かめる 2. C2PA規格は来歴をデジタル署名付きで扱う標準規格 3. モバイルアプリは、来歴をユーザーに届ける重要な存在 ⾃分のアプリを信頼してもらうために、積極的にC2PA規格を活⽤しよう
おまけ: Google SlidesもC2PA対応してた!