- Un script que hace pasar automáticamente como adulto los procesos de verificación de edad en varias plataformas
- Si pegas y ejecutas código en la consola de Discord, envía automáticamente una solicitud a la API
/age-verification/verify y te lleva a la página de verificación completada
- En otras plataformas como Twitch, Kick y Snapchat también se puede verificar del mismo modo ingresando la URL del código QR
- Esta herramienta abusa de la estructura de procesamiento de datos faciales del sistema k-id para generar metadatos legítimos sin un rostro real
- Fue creada para acompañar la expansión global de la verificación de edad, replicando el cifrado AES-GCM y una estructura de datos predecible para pasar el proceso de validación
Proceso de verificación en Discord
- Funciona pegando y ejecutando un script específico en la consola de desarrollador (F12) de la app web de Discord
- El script extrae la caché de módulos webpack de Discord, encuentra el cliente interno de la API y envía una solicitud al endpoint
/age-verification/verify
- Luego redirige la
verification_webview_url recibida en la respuesta a age-verifier.kibty.town
- El usuario resuelve el captcha y espera hasta que la página muestre “success” para completar la verificación
- Con este proceso, la cuenta de Discord queda marcada como verificada como adulta
Método de verificación en otras plataformas (Twitch, Kick, Snapchat, etc.)
- En la página de verificación de edad de cada plataforma, se selecciona la opción “selfie” y se copia la URL del código QR mostrado
- Esa URL se pega en el campo de entrada de
age-verifier.kibty.town y se hace clic en el botón “verify”
- Después, el procedimiento de verificación avanza automáticamente hasta mostrar el mensaje de éxito
Cómo funciona
- El sistema de verificación de edad k-id que usa Discord no envía el video facial al servidor, sino solo metadatos relacionados con el rostro y detalles del proceso
- Gracias a esta estructura, si se manipulan y envían metadatos que parezcan legítimos, es posible pasar la verificación sin un rostro real
- Después de que se publicara el k-id verifier de amplitudes, el socio faceassure reforzó la validación, pero esta herramienta la elude con un método nuevo
Pasos técnicos detallados
- Paso 1: replicar los parámetros de cifrado
- Al compararlo con una solicitud legítima, se identificaron los parámetros faltantes:
encrypted_payload, auth_tag, timestamp e iv
- Usa cifrado AES-GCM, y la clave se genera derivando
nonce + timestamp + transaction_id con HKDF(SHA-256)
- Se reprodució la misma estructura para generar los parámetros faltantes
- Paso 2: manipulación de datos de predicción
- Aunque se replicó perfectamente el cifrado, seguía fallando, así que se confirmó que la validación depende de los “prediction arrays” (
outputs, primaryOutputs, raws)
- A partir de los datos de
raws, se generan outputs y primaryOutputs eliminando valores atípicos mediante z-score
- Además, se validan las siguientes condiciones
- Los valores
xScaledShiftAmt y yScaledShiftAmt solo pueden ser uno de dos posibles
- El nombre del medio (cámara) debe coincidir con la lista real de dispositivos
- El tiempo de finalización del estado debe coincidir con la línea temporal
- Se ha publicado el código open source que implementa todo este proceso, y cualquiera puede revisarlo
Publicación y contexto de creación
- La persona creadora expresa agradecimientos a xyzeva, Dziurwa y a amplitudes, que ya había realizado trabajos relacionados
- Se explica que, como Discord aplicará de forma global la verificación de edad en marzo, se exploró un nuevo método para eludir esta validación acorde a ese cambio
1 comentarios
Opiniones en Hacker News
La forma realmente robusta sería generar una entrada de video artificial en lugar de usar una webcam real
No creo que ninguna plataforma pueda impedir eso
Incluso si la plataforma exige una entrada de cámara difícil de falsear como la de un teléfono, bastaría con poner una cámara frente a una pantalla de alta resolución
Este tipo de juego del gato y el ratón no va a durar mucho
Una verificación de edad imperfecta basada en selfie en video en realidad beneficia a todos
La gente sensata no tiene que subir su licencia de conducir o pasaporte, y a la plataforma le resulta más fácil retener usuarios
Los sitios porno pueden crear cuentas de usuario para aumentar el seguimiento y los ingresos por publicidad
Los políticos pueden anunciar que “implementaron políticas de restricción por edad”, y los padres se quedan tranquilos pensando que sus hijos no ven porno
Al final, todos ganan
Parece que este tipo de verificación terminará yendo en esa dirección
Probablemente una de las razones por las que Google impulsó apps exclusivas de Play Store fue para crear este tipo de cadena de software verificable
Al final es un problema que se resuelve con solo cambiar un interruptor
Junto con el mapeo 3D, un truco de simplemente mostrar una pantalla no funcionaría
El problema es que servicios de verificación de edad como Discord no lo intentan en serio
Yo simplemente no voy a jugarlo y dejaré de usar la plataforma
Este método tiene tres problemas
Este es un excelente ejemplo de ingeniería inversa que muestra lo difícil que es verificar sin invadir la privacidad
Como el código está publicado, el problema de ejecutar código arbitrario (#3) no aplica
Si las empresas responden con métodos más invasivos (#2), los usuarios siempre pueden mudarse a otra plataforma
Me parece una idea bastante ingeniosa
Da la impresión de que Discord relajó la verificación de edad solo lo suficiente como para poder decirle a los reguladores que “está tomando medidas para proteger a los menores”
Pero si el gobierno empieza a vigilar en serio, este enfoque no va a durar
Algunos países ya exigen biometría más fuerte, y algunos servicios están migrando a verificación basada en app móvil
Los simples trucos basados en JavaScript cada vez van a servir menos
Recomiendo envolver el código en una función autoejecutable (IIFE)
En Safari de macOS no funciona porque no soporta top-level await
Más información en caniuse.com/wf-top-level-await
Ya va con 5 años de retraso
Al probarlo, me redirige a https://age-verifier.kibty.town/webview?url=null
y aparece el mensaje
{"error":"error parsing webview url"}Parece que mi cuenta de Discord está en una prueba A/B y usa otro proveedor de verificación llamado Persona
Si buscas, vas a encontrar más información
De hecho funciona
Recibí en Discord el mensaje de que “fui clasificado como parte de un grupo de adultos”
(Narrador) Y en ese momento, se dio cuenta de que le habían hackeado la cuenta ;)
Espero que mi cuenta de 11 años no tenga problemas, pero si me piden cara o ID, pienso cerrarla y salir de ahí
No entiendo por qué las generaciones jóvenes se aferran tanto a servicios que les son hostiles
¿Será que la comodidad de quedarse en una plataforma que odian pesa más que el esfuerzo de buscar alternativas?
Para mucha gente joven hoy en día, incluso la idea de terminal o rutas de archivos ya les resulta ajena
Saben buscar, pero configurar una alternativa por cuenta propia es otra cosa
Sobre todo, falta la noción misma de que puede existir una alternativa
Plataformas abiertas como Matrix todavía se quedan cortas en funciones, y Discord termina siendo la opción menos mala
Mis amigos están ahí, así que yo también estoy ahí
Cada vez que cambias de plataforma, se pierden miembros y la comunidad se desmorona
Ese “esfuerzo menor” en realidad termina matando a la comunidad
Aunque usen otra plataforma, terminan quedándose solos
Lograr que todos se muevan al mismo tiempo es casi imposible
Pasé el captcha en Discord,
pero apareció el error
{"error":"failed to execute k-id privately action (status=404)"}Yo claramente soy adulto, y este proceso es ridículo
No me importa si me bloquean
Resumen de noticias relacionadas
El juego del gato y el ratón de la verificación de edad digital impone una enorme carga regulatoria
Si se puede eludir tan fácilmente, entonces las plataformas solo están marcando una casilla regulatoria,
y la base de confianza real es muy frágil
Pero a las empresas no les gusta porque no les permite obtener datos verificados de usuarios adultos
Más sobre eso en el blog de Google sobre Age Assurance Europe
El objetivo de estos sistemas no es bloquear de forma perfecta, sino agregar fricción para que el público no pueda eludirlos fácilmente