安卓一鍵root可偽造C2PA相機簽章

資安研究員 David Buchanan 於 8 月 25 日發表一篇分析,標題直譯是「C2PA 相機經不起現實考驗」。他給出的結論只有一句話:Android 平台上的 C2PA 已經壞掉,而且無法靠常規修補程式解決。

先說這套機制原本要解決什麼問題。內容憑證(Content Credentials)想回答的是「這張照片究竟是相機拍攝的,還是模型生成的」。做法是讓相機在成像的瞬間,用一組硬體私鑰為檔案簽章,簽章中寫明裝置型號、拍攝時刻與後續編輯紀錄。Google 從 Pixel 10 起把這套機制內建進相機 App,私鑰儲存在 Titan M2 的 StrongBox 內,並搭配 Key Attestation 與 Play Integrity 驗證裝置完整性。就設計而言,私鑰永遠不會離開安全晶片,即使系統遭到完全掌控,也無法把它偷出來。

不偷鑰匙,借鑰匙

Buchanan 指出的關鍵在於,攻擊者根本不需要把私鑰取出來。只要取得 root 權限,就能直接透過 KeyStore API 要求 StrongBox 用那組鑰匙為任意資料簽章——晶片只負責簽,不負責判斷被簽的位元組究竟是不是真的來自相機感光元件。他同時釋出兩款配套工具:用來取得 root 的 Root-My-Pixel,以及呼叫 KeyStore 的 keystork。

root 從哪裡來?CVE-2026-43499,一個一鍵權限提升漏洞,波及完全更新過的 Pixel 裝置,Pixel 8a、9a 都包含在內,公開的利用程式碼已在野外流傳。Meta 在自家 Quest 頭戴裝置上,搶在 Google 之前修補了同一個漏洞;三星則靠即時核心保護(RKP)擋下部分攻擊路徑。

他還展示了第二條路:對 DRAM 進行電磁故障注入。這條路更硬派、也更麻煩,屬於實體層級的攻擊,修補程式根本碰不到。

Google 把回報結案了

Google 把這份回報標記為「Won't fix(不會修)」,同時仍支付了 7500 美元獎金——即便照規定,硬體攻擊原本不在獎金計畫的範圍內。這個組合本身就是一種表態:承認漏洞的嚴重性,但不認為能修好。整個流程走的是 90 天的協調揭露時程。

崩塌的那個假設

C2PA 的說服力建立在一個假設上:簽章只能由可信任的硬體,在可信任的時刻產生。一旦 root 權限能借用安全晶片為任意內容蓋章,簽章的意義就退化成「這台裝置曾經參與過」,而裝置本身卻可能被完全控制。一張偽造照片只要帶著合法的 Pixel 簽章,放進驗證工具裡就會顯示為通過。

放進 AI 內容治理的脈絡來看,這一層的份量必須說清楚。像 SynthID 這類嵌入式浮水印做的是正面標註,標出機器生成的內容;C2PA 相機簽章做的則是反向證明,標出真實拍攝的內容。前者被剝除,內容頂多失去標籤;後者被偽造,等於替合成內容發了一張真品證書。兩條路失效的代價,完全不在同一個量級。

粗略估算風險面:Android 在全球手機市占超過七成,如果相機簽章只有少數機型值得信任,而這些機型的權限提升漏洞又每季冒出一個,那麼「看到簽章就相信」這個驗證習慣本身,就會變成破口。可行的收斂方向,或許是把簽章降格為弱訊號,搭配拍攝地點、時間戳記、發布管道交叉比對,而不是當成單一結論。

參考來源:David Buchanan 個人部落格、CocoLoop、Google 漏洞獎勵計畫回覆、C2PA 內容憑證公開規範;CVE-2026-43499 編號、7500 美元獎金金額與受影響機型,均以研究者揭露內容為準。