El miércoles, la Comisión Europea presentó una aplicación móvil(ventana nueva) diseñada para permitir que las personas demuestren su edad online sin compartir sus datos personales con las plataformas. Funcionarios de la UE afirmaron que la aplicación ya estaba lista, que cumplía con los estándares más altos de privacidad y señalaron su código abierto como prueba de transparencia.
En cuestión de horas, sin embargo, varios investigadores de seguridad empezaron a analizar el código abierto. El jueves, el consultor de seguridad Paul Moore ya había burlado las protecciones de la aplicación en menos de dos minutos(ventana nueva).

Otros confirmaron sus hallazgos. Los controles de limitación de frecuencia de la aplicación estaban almacenados en un archivo editable, la autenticación biométrica se podía desactivar con un simple cambio de configuración y se podía acceder a credenciales sensibles sin protección de hardware segura.
La Comisión restó importancia a los hallazgos, calificando el lanzamiento como una versión de prueba. Tanto Moore como el criptógrafo francés Olivier Blazy se mostraron en desacuerdo y dijeron a Politico(ventana nueva) que estaban probando la última versión del código cuando encontraron los fallos.
Más tarde, la Comisión dijo que el problema se había solucionado, pero el incidente sigue demostrando lo vulnerables que son estos sistemas de verificación de edad.
Qué hace la aplicación de verificación de edad de la UE y qué salió mal
La aplicación de verificación de edad de la UE permite que las personas verifiquen su edad mediante un pasaporte, un documento de identidad nacional o un proveedor de confianza, como un banco. Las plataformas pueden pedir a la aplicación que compruebe si alguien supera cierta edad sin acceder a los datos personales subyacentes, lo que también se conoce como prueba de conocimiento cero.
La implementación socavó ese diseño. La aplicación de verificación de edad de la UE almacenaba un PIN cifrado en un archivo de configuración editable en el dispositivo, separado de la caja fuerte de identidad que guarda los datos sensibles. Al eliminar unos pocos valores y reiniciar la aplicación, un atacante puede establecer un nuevo PIN mientras reutiliza las credenciales de un perfil anterior.
Los controles de limitación de frecuencia que evitan los intentos repetidos se almacenaban como un simple contador en el mismo archivo, el cual puede restablecerse a cero, borrando cualquier registro de intentos fallidos. La autenticación biométrica estaba controlada por un único indicador booleano; al cambiarlo de verdadero a falso, se omitía la comprobación por completo.
Diseñada para comprobar edades, pero no de forma segura
Después de que los investigadores usaran el código para exponer sus fallos, los funcionarios presentaron la aplicación como una versión de prueba.
Varios desarrolladores señalaron que los datos sensibles deberían haberse almacenado en un enclave seguro, una protección a nivel de hardware disponible en los smartphones modernos que hace que estos ataques sean mucho más difíciles.
Pero las vulnerabilidades dejan al descubierto un problema que va más allá de esta aplicación en particular. La verificación de edad no es segura por diseño, porque requiere vincular una identidad real a una acción online. Ese enlace tiene que estar almacenado en algún lugar, aunque sea brevemente, y dondequiera que esté, se convierte en un objetivo para hackers, gobiernos y cualquier persona que obtenga un acceso no autorizado a los datos subyacentes. Cuanto más centralizado y reutilizable se vuelve ese vínculo, mayor es el tamaño del objetivo.
La ley de verificación de edad de la UE pretende ser un estándar único que preserve la privacidad y sustituya al mosaico legal que se está formando en los Estados miembros, pero la confianza de la Comisión en que la aplicación está lista resultó ser prematura. Más de 400 investigadores de privacidad y seguridad escribieron a la Comisión en marzo(ventana nueva) pidiendo una moratoria en el despliegue hasta que la ciencia sobre la tecnología de verificación de edad se asiente.






