L’app européenne de vérification d’âge hackée en deux minutes : le « mini wallet » déjà percé
Le prototype open source de la Commission repose sur des API Apple et Google qui ne protègent ni le code ni les données d'identité côté utilisateur.
La Commission européenne vient de déclarer son application de vérification d'âge « techniquement prête ».
Les enjeux
Ce qu'il faut comprendre
Faille runtime critique
L'app repose sur des API d'attestation qui ne détectent ni le reverse engineering ni la falsification du code côté utilisateur, permettant de fabriquer de fausses données d'âge en amont de la couche zero-knowledge.
Souveraineté numérique en trompe-l'œil
La sécurité de l'identité numérique de 500 millions d'Européens dépend entièrement d'Apple App Attest et Google Play Integrity, deux services américains.
Écosystème de vérification déjà compromis
Yoti, leader du marché avec 500 millions de vérifications, embarque 4 trackers dans son app. Seules 3,67 % des apps adultes sur Google Play vérifient l'âge.
Surface d'attaque par ingénierie sociale
Le processus officiel de scan de passeport normalise un geste que les arnaqueurs peuvent reproduire à l'identique : fausses apps, SMS frauduleux, sites contrefaits imitant le mini wallet.
Calendrier politique sous pression
Les procédures DSA contre Pornhub et Snapchat exigent un outil de vérification opérationnel. La Commission déclare l'app prête malgré les failles documentées, sous peine de voir ses sanctions perdre toute crédibilité.
L'essentiel
Ce qu'il faut retenir
- Le prototype européen de vérification d'âge ne protège pas contre la modification de ses propres fichiers locaux.
- La couche zero-knowledge protège le transit des données mais pas leur fabrication locale : la cryptographie chiffre un mensonge si la donnée est falsifiée en amont.
- Sept États membres pilotes, dont la France, sont les plus avancés vers le déploiement.
- L'app leader Yoti embarque 4 trackers malgré sa promesse de « privacy-first ».
- Seules 3,67 % des applications adultes sur Google Play implémentent une vérification d'âge.
- L'article 74 du DSA prévoit des amendes jusqu'à 6 % du CA mondial, mais la Commission doit d'abord fournir un outil de vérification crédible.
Un écran de smartphone, un fichier JSON, deux minutes. C’est le temps qu’il faut, selon l’analyse de la société Guardsquare [1], pour contourner le prototype d’application de vérification d’âge que la Commission européenne [2] vient de déclarer « techniquement prêt » [3]. L’attaquant modifie les fichiers locaux de l’application, injecte de fausses données d’âge, manipule les appels API [4]. Reste un écran vide qui dit: « Bienvenue, vous avez plus de 18 ans [5]. »
Ce que Bruxelles promet
Ursula von der Leyen [2], présidente de la Commission européenne, et Henna Virkkunen [8], vice-présidente exécutive pour la souveraineté technologique, la sécurité et la démocratie, ont annoncé la disponibilité imminente de l’application dans les prochaines semaines [9]. Le discours est rodé: « Users will prove their age without revealing any other personal information. Put simply, it is completely anonymous: users cannot be tracked » [10].
L’outil, baptisé « mini wallet » [11], s’appuie sur des attestations de type zero-knowledge [12]. Il est open source [13]. Il a été développé par Scytáles et T-Systems [14] conformément à l’Architecture et au Cadre de référence du portefeuille d’identité numérique européen [15]. Un premier blueprint a été publié le 14 juillet 2025 [16], un second le 10 octobre 2025 [17]. Le 15 avril 2026 [3], l’app est déclarée prête.
Sept États membres - France, Danemark, Grèce, Italie, Espagne, Chypre et Irlande [18] - sont les plus avancés vers l’intégration. L’objectif: couvrir près de 500 millions [19] de citoyens européens d’ici fin 2026 [20].
Le maillon faible: entre le passeport et la cryptographie
Le zero-knowledge est une promesse puissante: prouver un fait (« j’ai plus de 18 ans ») sans révéler les données sous-jacentes (date de naissance, nom, numéro de passeport). Mais cette couche cryptographique ne protège que le transit de l’information - le moment où l’attestation d’âge quitte le téléphone pour atteindre le site web. Elle ne protège pas ce qui se passe avant, sur l’appareil lui-même [21].
Or c’est précisément là que l’attaque se produit. Si un attaquant peut modifier les fichiers locaux de l’application, il peut fabriquer une fausse donnée d’âge en amont de la couche zero-knowledge [4]. La cryptographie chiffre alors fidèlement… un mensonge. L’attestation native de la plateforme - Apple App Attest [22] ou Google Play Integrity [23] - confirme que l’application est authentique et que l’appareil n’est pas compromis au niveau système [21]. Mais elle ne vérifie pas si le code de l’application a été altéré en cours d’exécution [24]. Le verrou est sur la porte d’entrée. La fenêtre est grande ouverte.
Ce que les chercheurs trouvent
Le problème tient en une phrase de Guardsquare: « Platform-native attestation can confirm that an app is genuine and the device isn’t compromised, but that’s where its reach ends » [21]. L’application prototype repose entièrement sur Apple’s App Attest [22] et Google’s Play Integrity API [23] pour sa sécurité. Ces outils vérifient l’intégrité de l’appareil. Pas celle du code en cours d’exécution.
« It doesn’t catch other Man-at-the-end attacks like reverse engineering and app tampering » [25]. Concrètement: un attaquant peut modifier les fichiers locaux de l’application, injecter de fausses données d’âge, manipuler les appels API. « If an app is vulnerable to tampering or reverse engineering, attackers could bypass the age verification logic, inject fake age data, or manipulate API calls to fraudulently access age-restricted features » [4].
Le diagnostic est clinique: « These tools verify device integrity but not runtime behavior or code resilience, the areas most exploited by attackers » [26].
Le problème de souveraineté que personne ne nomme
Guardsquare pointe un angle mort politique: « Age verification requires sensitive identity/age data; delegating that entirely to US-based platforms raises concerns for EU jurisdictions » [27]. Google Play Integrity ne couvre qu’Android. Apple App Attest ne couvre qu’iOS [28]. L’Europe construit un mur de souveraineté numérique dont les fondations appartiennent à deux entreprises californiennes.
Le cadre réglementaire existe pourtant. Le EU Cyber Resilience Act [29] et les orientations de l’ENISA [30] insistent sur la résistance aux altérations. L’article 52 du Cyber Resilience Act prévoit des amendes pouvant atteindre 15 millions d’euros ou 2,5 % du chiffre d’affaires mondial en cas de défaut de sécurité d’un produit numérique. Le standard OWASP MASVS [31], dans son domaine MASVS-Resilience [32], exige que l’attestation soit complétée par des contrôles anti-tampering, anti-reverse-engineering et de détection d’émulateurs. Le prototype européen n’en implémente aucun.
Les spécifications techniques du projet, conformes aux standards IEEE 830-1998 [33] et ISO/IEC/IEEE 42010:2022 [34], utilisent le vocabulaire de la RFC 2119 [35]. Le mot « SHALL » y signifie « mandatory requirement; compliance is required » [36]. Le mot « SHOULD » signifie « recommended requirement » avec des exceptions possibles [37]. La protection runtime relève du « SHOULD ». Pas du « SHALL ». Ce choix de vocabulaire est un choix politique.
L’ déjà troué
L’app européenne n’arrive pas dans un désert. Yoti, l’un des leaders du marché avec plus de 14 millions [38] de téléchargements et 500 millions [39] de vérifications exécutées, est utilisé par Meta’s Instagram [40], Sony PlayStation [41], EpicGames [42], OnlyFans [43] et XHamster [44]. L’entreprise se présente comme offrant « a privacy-first approach to age verification » [45].
Une investigation de Mint Secure GmbH [46], datée du 4 juin 2025 [47], révèle que Yoti embarque 4 trackers [48] dans son application Android version 3.69.0 [49]. Le tracker Adjust [50] collecte la résolution d’écran [51], la version de l’OS [52], le modèle de l’appareil [53]. Le site web de Yoti charge Google Tag Manager [54], Google Fonts [55] et Fontawesome [56] sans consentement préalable. « Privacy-first » avec quatre mouchards.
Sur Google Play, une étude présentée à USENIX Security ’25 [57] a analysé 31 750 [58] applications classées « adultes » sur un total de 693 334 [59]. Résultat: seules 1 165 [6] d’entre elles, soit 3,67 % [7], implémentent une vérification d’âge.
On se souvient de l’épisode FranceConnect en 2022: le système d’identité numérique français, utilisé par des millions de citoyens pour accéder aux services publics, avait dû être partiellement suspendu après des vagues d’attaques par credential stuffing et des usurpations d’identité en série. Le précédent montre qu’une infrastructure d’identité numérique publique, même adossée à un cadre réglementaire solide, peut être compromise à grande échelle dès lors que la sécurité côté utilisateur est négligée.
Le timing politique: pourquoi déployer malgré les failles
L’annonce du 15 avril 2026 [3] ne tombe pas du ciel. La Commission a formé en mars [60] un panel spécial sur la sécurité des enfants en ligne, dont les recommandations sont attendues pour l’été [61]. Deux séries de conclusions préliminaires d’enquêtes indiquent que Pornhub, Stripchat, XNXX et XVideos [62] violent le Digital Services Act [63] pour défaut de protection des mineurs [64]. Une procédure formelle a été ouverte contre Snapchat [65]. Le Luxembourg [66] plaide pour une directive européenne imposant un âge minimum de 16 ans [67] pour les réseaux sociaux et prévoit de lancer son identité numérique nationale en décembre [68].
L’article 74 du Digital Services Act prévoit des amendes pouvant atteindre 6 % du chiffre d’affaires mondial annuel pour les très grandes plateformes en ligne qui ne se conforment pas à leurs obligations - notamment celle d’empêcher les mineurs d’accéder à des contenus préjudiciables [69]. Pour que ces sanctions soient crédibles, la Commission doit proposer un mécanisme de vérification d’âge opérationnel. Sans outil, pas d’application de la loi. C’est cette pression qui explique le calendrier: l’app est déclarée « prête » le 15 avril 2026 [3], alors même que l’analyse de Guardsquare [1] documente des failles structurelles dans sa couche de sécurité. La question n’est pas de savoir si l’app fonctionne. C’est de savoir si la Commission pouvait se permettre de dire qu’elle ne fonctionnait pas.
La vérification d’âge est le premier cas d’usage grand public de la pile d’identité numérique européenne [70]. Si elle échoue, c’est tout l’édifice du portefeuille numérique prévu pour fin 2026 [71] qui vacille.
L’angle mort: la surface d’attaque, c’est l’utilisateur
Dynamitri Joachim Nawrot [72], analyste en cybersécurité, résume sur Threads: « from a cybersecurity point of view it is INSANE » [73]. Son argument central: « Any policy that depends on immaculate endpoint security across millions of ordinary people is fantasy » [74]. Le système suppose que 500 millions [19] de smartphones européens sont sains. Ils ne le sont pas.
Plus corrosif encore: « Real policy creates perfect cover for scams » [75]. Le mécanisme est simple à comprendre. L’app officielle demande aux citoyens de scanner leur passeport ou leur carte d’identité dans une application mobile [76]. Ce geste, une fois normalisé par l’État, devient un modèle reproductible pour les arnaqueurs. Un SMS frauduleux - « Votre vérification d’âge a expiré, scannez votre pièce d’identité ici » - renvoyant vers une fausse application imitant le mini wallet. Un site web contrefait reprenant les codes visuels de la Commission. Une notification push imitant le processus officiel. L’utilisateur, habitué à scanner son passeport dans une app, ne distingue plus le vrai du faux. « That is not a side effect. That is the consequence of the design » [77]. Le phishing d’identité ne détourne pas le système: il l’imite. Et plus le processus officiel est répandu, plus l’imitation est crédible.
Ce que les sources ne disent pas: aucune n’évoque le coût d’un audit de sécurité indépendant avant déploiement. Aucune ne mentionne de programme de bug bounty. Aucune ne détaille ce qui se passe quand un passeport scanné est intercepté avant d’atteindre la couche zero-knowledge. Le code est open source [78]. Les failles aussi.
Voix contradictoire
Guardsquare le formule avec une précision chirurgicale: « Age verification is evolving from a compliance checkbox to a core mobile app security requirement » [79]. La Commission traite encore le sujet comme une case à cocher. Le guide OWASP MASTG [80] reconnaît l’attestation comme un contrôle parmi d’autres - pas comme le seul. Le prototype européen n’a retenu que celui-là.
Aucune voix institutionnelle européenne n’a publiquement contesté le niveau de sécurité du prototype. Un unanimisme qui interroge quand l’outil doit traiter les données d’identité de 500 millions [19] de personnes.

Dehors, 500 millions [19] de citoyens européens attendent une app qui protège leurs enfants. Dedans, un fichier JSON qu’on modifie en deux minutes. C’est tout.
Sources
Voir le détail de chaque fait sourcé (80)
« the EU's own prototype app, built on the same foundation as the upcoming European Digital Identity Wallet, has already raised security concerns »
guardsquare.com ↗ ↩
« European Commission President Ursula von der Leyen »
biometricupdate.com ↗ ↩
« As of 15 April 2026, the age verification app is technically ready for implementation and will be available to citizens soon. »
digital-strategy.ec.europa.eu ↗ ↩
« If an app is vulnerable to tampering or reverse engineering, attackers could bypass the age verification logic, inject fake age data, or manipulate API calls to fraudulently access age-restricted features. »
guardsquare.com ↗ ↩
« It allows users to prove they are over 18 without sharing any other personal information. »
digital-strategy.ec.europa.eu ↗ ↩
« reveals that only 1,165 (3.67%) implement age verification »
usenix.org ↗ ↩
« reveals that only 1,165 (3.67%) implement age verification »
usenix.org ↗ ↩
« EC Executive Vice President for Technological Sovereignty, Security, and Democracy Henna Virkkunen »
biometricupdate.com ↗ ↩
« confirming it will be made available across member states in the coming weeks »
idtechwire.com ↗ ↩
« Users will prove their age without revealing any other personal information. Put simply, it is completely anonymous: users cannot be tracked. »
biometricupdate.com ↗ ↩
« Also called the 'mini wallet', the solution is built on the same technical specifications as the European Digital Identity Wallets that are to be rolled out by the end of 2026. »
digital-strategy.ec.europa.eu ↗ ↩
« The technical design uses zero-knowledge-style attestations »
idtechwire.com ↗ ↩
« The app is open source, meaning that as well as all Member States being able to use it, so can our global partners and private companies, should they wish to develop harmonised, innovative solutions. »
digital-strategy.ec.europa.eu ↗ ↩
« A blueprint for the EU's age verification app, developed by Scytáles and T-Systems »
biometricupdate.com ↗ ↩
« This specification builds upon the Architecture and Reference Framework (ARF) for the European Digital Identity (EUDI) Wallets »
github.com ↗ ↩
« The Commission made a blueprint for an age verification solution available on 14 July 2025. »
digital-strategy.ec.europa.eu ↗ ↩
« A second blueprint for an age verification solution was published on 10 October 2025, offering onboarding using passports and ID cards, as well as support for the Digital Credentials API. »
digital-strategy.ec.europa.eu ↗ ↩
« France, Denmark, Greece, Italy, Spain, Cyprus and Ireland are identified in the statement as farthest along towards implementation »
biometricupdate.com ↗ ↩
« to be deployed to almost 500M European citizens by the end of 2026 »
guardsquare.com ↗ ↩
« to be deployed to almost 500M European citizens by the end of 2026 »
guardsquare.com ↗ ↩
« Platform-native attestation can confirm that an app is genuine and the device isn't compromised, but that's where its reach ends. »
guardsquare.com ↗ ↩
« it relies entirely on Apple's App Attest and Google's Play Integrity API for security »
guardsquare.com ↗ ↩
« it relies entirely on Apple's App Attest and Google's Play Integrity API for security »
guardsquare.com ↗ ↩
« Google Play Integrity and Apple App Attest verify app integrity or environment, but don't address what happens inside the app, such as reverse engineering and tampering attacks. »
guardsquare.com ↗ ↩
« It doesn't catch other Man-at-the-end attacks like reverse engineering and app tampering. »
guardsquare.com ↗ ↩
« These tools verify device integrity but not runtime behavior or code resilience, the areas most exploited by attackers. »
guardsquare.com ↗ ↩
« Age verification requires sensitive identity/age data; delegating that entirely to US-based platforms raises concerns for EU jurisdictions »
guardsquare.com ↗ ↩
« Google Play Integrity covers only Android; similarly, Apple App Attest covers only iOS devices. »
guardsquare.com ↗ ↩
« Regulatory frameworks such as the EU Cyber Resilience Act and ENISA guidance emphasize tamper resistance »
guardsquare.com ↗ ↩
« Regulatory frameworks such as the EU Cyber Resilience Act and ENISA guidance emphasize tamper resistance »
guardsquare.com ↗ ↩
« The OWASP Mobile Application Security Testing Guide (MASTG) and the related OWASP Mobile Application Security Verification Standard (MASVS) recognize attestation as one of many security controls »
guardsquare.com ↗ ↩
« The MASVS‑Resilience domain (formerly MASVS‑R) emphasizes that attestation must be complemented with controls for tampering, reverse‐engineering, emulator detection, runtime integrity »
guardsquare.com ↗ ↩
« specifically, [IEEE 830-1998] for Software Requirements Specifications »
github.com ↗ ↩
« [ISO/IEC/IEEE 42010:2022] for Architecture Descriptions »
github.com ↗ ↩
« RFC 2119 (Key words for use in RFCs to Indicate Requirement Levels) »
github.com ↗ ↩
« SHALL: Indicates a mandatory requirement; compliance is required. »
github.com ↗ ↩
« SHOULD: Indicates a recommended requirement; there may exist valid reasons to ignore it in particular circumstances »
github.com ↗ ↩
« Yoti claims to have "over 14 million downloads" for the "Yoti - your digital identity"-App »
mint-secure.de ↗ ↩
« Yoti claims to have executed more than 500 million checks in total »
mint-secure.de ↗ ↩
« Major social media platforms like Meta's Instagram have implemented Yoti as an age verification or estimation solution »
mint-secure.de ↗ ↩
« Other clients include Sony PlayStation, French social networking app Yubo, EpicGames »
mint-secure.de ↗ ↩
« Other clients include Sony PlayStation, French social networking app Yubo, EpicGames »
mint-secure.de ↗ ↩
« adult sites XHamster and OnlyFans »
mint-secure.de ↗ ↩
« adult sites XHamster and OnlyFans »
mint-secure.de ↗ ↩
« Furthermore they outline one of their services as: "A privacy-first approach to age verification" »
mint-secure.de ↗ ↩
« An investigation from Mint Secure GmbH reveals that one of the leading age verification and age estimation apps "Yoti" is extensively tracking users without consent »
mint-secure.de ↗ ↩
« The information presented in this article was collected on June 4, 2025 »
mint-secure.de ↗ ↩
« very likely 4 trackers are included in the app directly »
mint-secure.de ↗ ↩
« published on 26 May 2025 (version: 3.69.0) »
mint-secure.de ↗ ↩
« The used Tracker "Adjust" collects the following information about the device in use »
mint-secure.de ↗ ↩
« Display Resolution: 1344×2992 »
mint-secure.de ↗ ↩
« OS Version: 14 »
mint-secure.de ↗ ↩
« Device Name: Pixel 8 Pro »
mint-secure.de ↗ ↩
« Google Tag Manager: https://www.googletagmanager.com/gtm.js?id=GTM-TG7FD3 »
mint-secure.de ↗ ↩
« Google Fonts hosted on googleapis.com »
mint-secure.de ↗ ↩
« Fontawesome: https://kit.fontawesome.com/3684eefa79.js »
mint-secure.de ↗ ↩
« Yifan Yao, Shawn McCollum, Zhibo Sun, and Yue Zhang, Drexel University »
usenix.org ↗ ↩
« Our analysis of 31,750 adult-only apps (out of 693,334 apps on Google Play) »
usenix.org ↗ ↩
« Our analysis of 31,750 adult-only apps (out of 693,334 apps on Google Play) »
usenix.org ↗ ↩
« A special panel on children's safety online was formed by the EC in March »
biometricupdate.com ↗ ↩
« plans to deliver recommendations by summer »
biometricupdate.com ↗ ↩
« The European Commission preliminarily found Pornhub, Stripchat, XNXX and XVideos in breach of the Digital Services Act (DSA) »
digital-strategy.ec.europa.eu ↗ ↩
« The release coincides with stepped-up enforcement of the Digital Services Act, which requires very large online platforms to prevent minors from accessing harmful content »
idtechwire.com ↗ ↩
« The European Commission preliminarily found Pornhub, Stripchat, XNXX and XVideos in breach of the Digital Services Act (DSA) for failing to protect minors from being exposed to pornographic content on their services. »
digital-strategy.ec.europa.eu ↗ ↩
« The European Commission has opened formal proceedings to investigate if Snapchat is ensuring a high level of safety, privacy and security for children online, in compliance with the Digital Services Act (DSA). »
digital-strategy.ec.europa.eu ↗ ↩
« Luxembourg is advocating for an EU-wide directive standardizing the restrictions »
biometricupdate.com ↗ ↩
« A motion recently adopted in Luxembourg's Chamber of Deputies calls for social media to be restricted to people 16 years and older »
biometricupdate.com ↗ ↩
« The country's national digital identity is on track for launch in December »
biometricupdate.com ↗ ↩
« Age verification is the mechanism through which that obligation is practically enforced »
idtechwire.com ↗ ↩
« The Commission has positioned age verification as one of the first mainstream use cases for the broader EU digital identity stack »
idtechwire.com ↗ ↩
« the European Digital Identity Wallets that are to be rolled out by the end of 2026. »
digital-strategy.ec.europa.eu ↗ ↩
« @therealdynamitri »
threads.com ↗ ↩
« from a cybersecurity point of view it is INSANE »
threads.com ↗ ↩
« Any policy that depends on immaculate endpoint security across millions of ordinary people is fantasy. »
threads.com ↗ ↩
« Real policy creates perfect cover for scams. »
threads.com ↗ ↩
« The app allows users to confirm their age by uploading a passport or national ID card »
idtechwire.com ↗ ↩
« That is not a side effect. That is the consequence of the design. »
threads.com ↗ ↩
« The application is open source, meaning the code is publicly auditable »
idtechwire.com ↗ ↩
« Age verification is evolving from a compliance checkbox to a core mobile app security requirement. »
guardsquare.com ↗ ↩
« The OWASP Mobile Application Security Testing Guide (MASTG) and the related OWASP Mobile Application Security Verification Standard (MASVS) recognize attestation as one of many security controls »
guardsquare.com ↗ ↩
Sources
- Europe’s age verification app reaches technical readiness
- The EU approach to age verification
- Data protection and IT security issues with age verification app "Yoti"
- av-doc-technical-specification/docs/architecture-and-technical-specifications.md at main · eu-digital-identity-wallet/av-doc-technical
- Mobile App Security for EU Age Verification
- USENIX Security '25 Technical Sessions
- Dynamitri Joachim Nawrot (@therealdynamitri) sur Threads
- EU Declares Anonymous Age-Verification App Ready for Deployment
