- Un script qui fait automatiquement passer comme adulte les procédures de vérification d’âge sur plusieurs plateformes
- En collant du code dans la console de Discord puis en l’exécutant, il envoie automatiquement une requête à l’API
/age-verification/verify puis redirige vers la page de fin de vérification
- La vérification peut aussi être effectuée sur d’autres plateformes comme Twitch, Kick et Snapchat en saisissant l’URL du code QR, selon le même procédé
- Cet outil exploite la structure de traitement des données faciales du système k-id pour générer des métadonnées valides sans visage réel
- Il reproduit le chiffrement AES-GCM et une structure de données prédictive afin de franchir la procédure de validation, dans le contexte de l’extension mondiale de la vérification d’âge
Procédure de vérification sur Discord
- La méthode consiste à coller et exécuter un script dans la console développeur (F12) de l’application web Discord
- Le script extrait le cache des modules webpack de Discord, trouve le client API interne, puis envoie une requête vers l’endpoint
/age-verification/verify
- Il redirige ensuite l’
verification_webview_url reçu en réponse vers age-verifier.kibty.town
- L’utilisateur doit résoudre le captcha puis attendre que la page affiche “success” pour que la vérification soit terminée
- À l’issue du processus, le compte Discord apparaît comme vérifié en tant qu’adulte
Méthode de vérification sur d’autres plateformes (Twitch, Kick, Snapchat, etc.)
- Sur la page de vérification d’âge de chaque plateforme, il faut sélectionner l’option « selfie », puis copier l’URL du code QR affiché
- Il faut ensuite coller cette URL dans le champ de saisie de
age-verifier.kibty.town puis cliquer sur le bouton “verify”
- La procédure de vérification se lance alors automatiquement jusqu’à l’affichage du message de réussite
Principe de fonctionnement
- Le système de vérification d’âge k-id utilisé par Discord n’envoie pas la vidéo du visage au serveur, mais uniquement des métadonnées liées au visage et des détails du processus
- Grâce à cette structure, il est possible de manipuler et transmettre des métadonnées d’apparence légitime afin de franchir la vérification sans visage réel
- Après la publication par le passé du k-id verifier d’amplitudes, le partenaire faceassure avait renforcé la validation, mais cet outil la contourne cette fois avec une nouvelle méthode
Étapes techniques détaillées
- Étape 1 : reproduction des paramètres de chiffrement
- En comparant avec une requête légitime, les paramètres manquants
encrypted_payload, auth_tag, timestamp et iv ont été identifiés
- Le chiffrement utilise AES-GCM, avec une clé dérivée de
nonce + timestamp + transaction_id via HKDF(SHA-256)
- La même structure est reproduite pour générer les paramètres manquants
- Étape 2 : manipulation des données de prédiction
- Même avec une reproduction parfaite du chiffrement, l’échec persistait, ce qui a permis de constater que la validation dépendait des « prediction arrays » (
outputs, primaryOutputs, raws)
- Les données
raws servent de base pour supprimer les valeurs aberrantes via un z-score, puis générer outputs et primaryOutputs
- Les conditions suivantes sont également vérifiées
- Les valeurs
xScaledShiftAmt et yScaledShiftAmt ne peuvent prendre que l’une de deux possibilités
- Le nom du média (caméra) doit correspondre à la liste réelle des appareils
- L’heure de fin des statuts doit correspondre à la chronologie
- Le code open source implémentant l’ensemble du processus est publié, et peut être consulté par tous
Publication et contexte de création
- L’auteur remercie xyzeva, Dziurwa et amplitudes, qui avait déjà travaillé auparavant sur des sujets liés
- Il est expliqué que Discord prévoit un déploiement mondial complet de la vérification d’âge en mars, ce qui a motivé l’exploration d’une nouvelle méthode de contournement de la validation
1 commentaires
Commentaires de Hacker News
La méthode vraiment solide, c’est de générer une entrée vidéo artificielle au lieu d’utiliser une vraie webcam
Je pense qu’aucune plateforme ne pourra empêcher ça
Même si une plateforme exige une entrée caméra difficile à usurper comme sur un téléphone, il suffit de placer une caméra devant un écran haute résolution
Ce jeu du chat et de la souris ne durera pas longtemps
Une vérification d’âge imparfaite basée sur un selfie vidéo profite en réalité à tout le monde
Les gens raisonnables n’ont pas besoin d’envoyer leur permis de conduire ou leur passeport, et les plateformes retiennent plus facilement leurs utilisateurs
Les sites porno peuvent créer des comptes utilisateurs pour améliorer le suivi et les revenus publicitaires
Les politiques peuvent annoncer qu’ils ont « mis en place une politique de restriction par âge », et les parents sont rassurés en pensant que leurs enfants ne regardent pas de porno
Au final, tout le monde y gagne
J’ai l’impression que ce type de vérification va finir par aller dans cette direction
C’est probablement aussi l’une des raisons pour lesquelles Google a poussé les apps réservées au Play Store : construire une chaîne logicielle vérifiable
En fin de compte, c’est un problème qui se règle en changeant juste un interrupteur
Combiné à une cartographie 3D, un simple truc consistant à montrer un écran ne fonctionnerait pas
Le problème, c’est que des services de vérification d’âge comme celui de Discord n’essaient même pas sérieusement
Moi, je ne jouerai simplement pas le jeu et j’arrêterai d’utiliser la plateforme
Cette approche pose trois problèmes
C’est un excellent exemple de rétro-ingénierie, qui montre à quel point il est difficile de vérifier quoi que ce soit sans porter atteinte à la vie privée
Comme le code est public, le problème de l’exécution de code arbitraire (#3) ne s’applique pas ici
Si des entreprises répondent par des méthodes plus intrusives (#2), les utilisateurs peuvent toujours partir vers d’autres plateformes
Je trouve que c’est une idée assez maligne
Discord semble avoir assoupli la vérification d’âge juste assez pour pouvoir dire aux régulateurs qu’il « protège les enfants »
Mais si les gouvernements commencent à surveiller sérieusement, cette approche ne tiendra pas longtemps
Certains pays exigent déjà une authentification biométrique plus forte, et certains services passent à une vérification via application mobile
De simples astuces en JavaScript deviendront de moins en moins efficaces
Je recommande d’envelopper le code dans une fonction immédiatement invoquée (IIFE)
Sur Safari macOS, top-level await n’est pas pris en charge, donc ça ne fonctionne pas
Voir caniuse.com/wf-top-level-await
Il a déjà 5 ans de retard
J’ai essayé et j’ai été redirigé vers https://age-verifier.kibty.town/webview?url=null
avec le message
{"error":"error parsing webview url"}Mon compte Discord semble être dans un test A/B et utilise donc un autre prestataire de vérification, Persona
Une recherche permet de trouver plus d’informations
Ça marche vraiment
J’ai reçu sur Discord le message indiquant que j’avais été « classé dans le groupe adulte »
(voix off) Et à cet instant, j’ai compris que mon compte avait été piraté ;)
J’espère que mon compte vieux de 11 ans n’aura pas de problème, mais si on me demande mon visage ou une pièce d’identité, je supprimerai simplement mon compte
Je ne comprends pas pourquoi les jeunes générations restent autant attachées à des services qui leur sont hostiles
Est-ce que la commodité de rester sur une plateforme qu’on déteste l’emporte à ce point sur l’effort nécessaire pour trouver une alternative ?
Beaucoup de jeunes aujourd’hui ne sont même pas familiers avec un terminal ou la notion de chemin de fichier
Ils savent chercher, mais configurer eux-mêmes une alternative, c’est autre chose
Surtout, il manque souvent la conscience même qu’une alternative puisse exister
Les plateformes ouvertes comme Matrix manquent encore de fonctionnalités, et Discord reste l’option la moins mauvaise
Mes amis sont là-bas, donc moi aussi
À chaque migration de plateforme, on perd des membres et la communauté se désagrège
Ce qui semble être un « petit effort » revient en pratique à tuer une communauté
Même en allant sur une autre plateforme, on se retrouve seul
Faire en sorte que tout le monde migre en même temps est quasiment impossible
J’ai passé le captcha sur Discord, mais
j’obtiens l’erreur
{"error":"failed to execute k-id privately action (status=404)"}Je suis clairement majeur, et cette procédure est absurde
Je m’en fiche même d’être bloqué
Résumé des actus liées
Le jeu du chat et de la souris autour de la vérification d’âge numérique représente une énorme charge réglementaire
Si c’est contournable aussi facilement, les plateformes ne font en réalité que cocher une case de conformité réglementaire,
et la base réelle de confiance est extrêmement fragile
Mais les entreprises ne la préfèrent pas, car elle ne leur permet pas d’obtenir des données d’utilisateurs adultes vérifiés
Voir à ce sujet le blog de Google : Google's Age Assurance Europe blog
Le but de ces systèmes n’est pas de bloquer parfaitement, mais d’ajouter suffisamment de friction pour que le grand public ne puisse pas contourner facilement