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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shuhei Shitamori
August 28, 2026
Programming
53
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
110
Vision Proで実現する 『ながら運動』健康促進術
shitamori1272
0
170
時差×英語×リモートでの コミュニケーション術
shitamori1272
0
100
写真はもう信用できない?フェイク検出から来歴証明へ
shitamori1272
1
110
Apple SharePlayで 非対称クロスプレイ チャレンジ (SharePlay使ってみた編)
shitamori1272
0
220
Foundation Models触ってみた - iPhone Dev Sapporo — WWDC25 Recap
shitamori1272
0
150
Vision Proで広告フリーな世界を実現したい
shitamori1272
0
280
Wallet API, Verifier APIで実現するIDカード on iPhoneの世界
shitamori1272
1
3.8k
Other Decks in Programming
See All in Programming
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.5k
Modernizing iOS Apps
seyfoyun
0
140
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.2k
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
220
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
330
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
160
SODA - FACT BOOK(JP)
sodainc
1
40k
ActionController meets Protocol Buffers
sorah
1
770
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
14
11k
Event is what happens
moro
2
2.6k
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
1.9k
Inertia Rails: The One-Person Framework with React & Friends
skryukov
0
200
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
WCS-LA-2024
lcolladotor
0
950
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
460
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Test your architecture with Archunit
thirion
2
2.5k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
550
Ethics towards AI in product and experience design
skipperchong
2
450
How to make the Groovebox
asonas
2
2.5k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
380
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対応してた!