編按:本文綜合整理自 Proton、WIRED、Cybernews、ID Tech Wire 與歐盟執委會官方資料,並加入 Siami 編輯部觀點與分析。
兩分鐘破解:歐盟 App 程式碼公開當天就被打穿
歐盟執委會在 2026 年 4 月 15 日公開展示一款 Android 與 iOS 年齡驗證 App,主打「零知識證明」(zero-knowledge proof):用戶可以用護照、身份證或銀行授權完成年齡驗證,平台只會收到「已滿 18 歲」或「未滿 18 歲」的單一布林值,看不到姓名、生日或證件號碼。執委會主席 von der Leyen 在記者會上稱這是「為家長而設計、給孩子安全網路空間」的關鍵基礎建設,並強調 App 採用開源、原始碼公開透明,「沒有藉口再不做」。
問題是原始碼一公開,安全研究員當天就動手拆。
資安顧問 Paul Moore 在 X 上發布影片,展示只要拿到實體手機、打開 App 的設定檔(純文字、可編輯),刪除幾個值並重啟 App,就能設定新的 PIN、繼續沿用舊的認證資料。整個過程不到兩分鐘。Moore 隨後證實了三項更致命的設計缺陷:
- 防止暴力破解的「失敗次數計數器」也存放在同一個可編輯檔,歸零就等於消除所有嘗試紀錄
- 生物辨識(指紋、Face ID)只是設定檔裡的一個布林值,把
true改成false就能完全跳過 - 用於證明用戶身份的私密金鑰,沒有放進現代手機內建的 Secure Enclave(硬體級防護區),而是放在一般可讀的儲存空間
歐盟執委會第一時間的反應是把它定位為「展示版本」(demo version),Moore 與法國密碼學家 Olivier Blazy 隨即反駁:我們驗的就是最新版原始碼,不是早期 demo。
「隱私保護」設計反而暴露了最根本的攻擊面
歐盟這套架構的精神是「不讓平台看到任何個資」,所以敏感資料、驗證狀態、PIN、生物辨識旗標都必須存在用戶手機上。這正是問題所在。Cybernews 引述多位研究員指出,「所有安全控制都用明文存在本機」等於把整套防線交給用戶的檔案系統保護——而 Android 與 iOS 雖然有沙盒機制,卻沒有任何機制防止 App「修改自己的設定檔」。
WIRED 的安全週報則點出一個更深層的問題:年齡驗證本身需要把「真實身分」與「網路行為」綁定,這條連結即便只存在幾秒鐘,也必須在某個地方落地。無論是 Secure Enclave、雲端、還是執法單位可調閱的後台——只要存在,就是攻擊目標。如果這條連結被設計成可重複使用(同一個 EUDI Wallet 可驗證不同平台),那目標只會更大。
歐盟執委會聲稱這套 App「符合最高隱私標準」,但其內部設計卻讓所有安全控制都可由使用者手動修改。這不是零知識證明失敗,是零信任架構失敗。
更尷尬的是,2026 年 3 月已經有 400 多位資安與隱私研究員聯名致函執委會,呼籲在「年齡驗證技術尚未穩定」之前暫緩部署。執委會選擇照原定時間表公開,於是公開當天就出事。
為什麼這件事重要:歐盟把「數位身分」押在 Google 與 Apple 身上
這不只是資安事件,更是歐洲數位主權的一場挫敗。
EUDI(European Digital Identity Wallet)是 eIDAS 2.0 的核心產物,預計 2026 年底前所有會員國都必須提供給公民。原本目的是讓歐洲人擺脫「要登入歐洲網站得用美國平台帳號」的窘境,結果年齡驗證 App 的第一個版本,就只能在 Google 認證過的 Android 與 Apple 認證過的 iOS 上跑。
Hacker News 上一則被推 412 次的回應講得最直接:「所以現在我們知道誰在推動年齡驗證了——FAANG。」當一款以「隱私與自主」為賣點的歐洲 App,卻把裝置認證外包給兩家美國公司,這套數位身分基礎設施的主控權,就實質落在 Mountain View 與 Cupertino 兩地。
對使用 GrapheneOS、CalyxOS、LineageOS、e/OS 等去 Google 化 Android 的用戶來說,這款 App 等於直接關上大門。對任何想用 F-Droid 安裝第三方 APK 的用戶也是如此。歐洲議會原本在 2024 年通過《數位市場法》要打破 App Store 與 Play Store 的雙佔,現在自家推出的年齡驗證 App 反向強化了這兩家的守門人地位。
數據解讀:為什麼「展示版」這個託辭撐不住
執委會把被破解的版本定位為「展示版」,這個說法在技術與政治兩個層面都站不住。
技術層面:Moore 與 Blazy 明確表示他們驗的是原始碼儲存庫裡的「latest release」標籤。執委會如果要在公開展示前先用「內部版本」測試,應該在釋出時就直接關閉 git 歷史,而不是事後把漏洞歸因於「demo」。
政治層面:歐盟已經確定 7 個會員國(西班牙、法國、希臘、丹麥、義大利、波蘭、葡萄牙)為 2026 年的試辦國,預計年底前完成 EUDI Wallet 的全面部署。如果連「技術已就緒」這句話都能在上線 24 小時內被研究員推翻,那所謂的「端到端測試」做了什麼?
更關鍵的是,這不是單一漏洞,是設計哲學的問題。歐盟想同時達成兩個互相衝突的目標:對平台隱私、對政府可審計。Moore 的攻擊顯示這兩個目標在當前架構下只能擇一——而執委會選了隱私,卻連隱私都沒做對。
年齡驗證 App 的問題不是「再多測幾輪就好」,是「整個威脅模型從一開始就畫錯」。400 位研究員 3 月的聯署信已經預見了這件事,執委會選擇忽略。
接下來會發生什麼
短期內執委會必須決定是否暫緩 7 個試辦國的時程表,這會直接衝擊已經投入資源的 Scytáles(希臘身分驗證商)與 T-Systems(德國電信子公司)兩家技術承包商。中期則要看 EUDI Wallet 主架構(eIDAS 2.0 的 ARF 2.4.0 版本)是否也繼承同樣的設計缺陷——目前釋出的 ARF 文件並未強制要求 Secure Enclave,這意味著各會員國自行實作時,很可能會出現 27 種不同品質的版本。
對台灣與亞洲讀者而言,這件事的延伸意義在於:當一個有 4.5 億人口、預算充裕、有頂尖密碼學家與資安社群的司法管轄區,都無法在時間壓力下做出兼顧隱私、安全與平台中立的年齡驗證系統,那其他國家(包括正在研擬《數位中介服務法》或類似兒少保護法的亞洲國家)就更不該把這套模板當成可複製的解方。
參考來源
- Proton — EU age verification app hacked in 2 minutes – now what?
- WIRED — It Takes 2 Minutes to Hack the EU’s New Age-Verification App
- Cybernews — New EU age verification app hacked in minutes
- ID Tech Wire — Researcher Finds Security Flaws in EU Age Verification App
- EU Perspectives — Hackers shred EU’s age app hours after launch
- 歐盟執委會 — Henna Virkkunen 副主席 EU 年齡驗證 App 記者會(官方影片)
- EU Age Verification Blueprint 官方技術入口網
- EFF — Age Verification Threats Across the Globe: 2025 in Review
- EDRi — The eID Wallet still doesn’t deserve your full trust
- Hacker News 討論串 — EU age verification app to ban any Android system not licensed by Google
- Hacker News 討論串 — EU age verification app hacked, 2 minute How to posted
網友熱門留言 (5)