Na quarta-feira, a Comissão Europeia revelou uma aplicação móvel(nova janela) concebida para permitir que as pessoas provem a sua idade online sem partilharem dados pessoais com as plataformas. Os funcionários da UE afirmaram que a aplicação estava pronta, que cumpria os mais elevados padrões de privacidade e apontaram o seu código de código aberto como prova de transparência.

Em poucas horas, no entanto, investigadores de segurança começaram a analisar minuciosamente o código de código aberto. Na quinta-feira, o consultor de segurança Paul Moore tinha contornado as proteções da aplicação em menos de dois minutos(nova janela).

Uma captura de ecrã da aplicação de verificação de idade da UE

Outros confirmaram as suas descobertas. Os controlos de limite de taxa da aplicação estavam armazenados num ficheiro editável, a autenticação biométrica podia ser desativada com uma simples alteração de configuração e as credenciais confidenciais estavam acessíveis sem a proteção de hardware seguro.

A Comissão desvalorizou as conclusões, classificando o lançamento como uma versão de demonstração. Tanto Moore como o criptógrafo francês Olivier Blazy contestaram, dizendo ao Politico(nova janela) que estavam a testar a versão mais recente do código quando encontraram as falhas.

Mais tarde, a Comissão afirmou que o problema fora resolvido, mas o incidente continua a mostrar quão vulneráveis estes sistemas de verificação de idade são.

O que a aplicação de verificação de idade da UE faz e o que correu mal

A aplicação de verificação de idade da UE permite que as pessoas verifiquem a sua idade utilizando um passaporte, um cartão de cidadão ou um fornecedor de confiança, como um banco. As plataformas podem então solicitar à aplicação que verifique se alguém tem mais de uma certa idade sem aceder aos dados pessoais subjacentes, também conhecido como prova de conhecimento zero.

A implementação comprometeu esse conceito. A aplicação de verificação de idade da UE armazenava um PIN encriptado num ficheiro de configuração editável no dispositivo, separado do cofre de identidade que guarda dados sensíveis. Ao eliminar alguns valores e reiniciar a aplicação, um atacante consegue definir um novo PIN enquanto reutiliza credenciais de um perfil anterior.

Os controlos de limite de taxa que impedem tentativas repetidas estavam armazenados como um simples contador no mesmo ficheiro, o qual pode ser reposto a zero, apagando qualquer registo de tentativas falhadas. A autenticação biométrica era controlada por um único sinalizador booleano; mudá-lo de verdadeiro para falso permitia ignorar inteiramente a verificação.

Concebida para verificar idades, mas não de forma segura

Depois de os investigadores utilizarem o código para expor as suas falhas, os funcionários requalificaram a aplicação como uma versão de demonstração.

Vários programadores observaram que os dados sensíveis deveriam ter sido armazenados num enclave seguro, uma proteção ao nível do hardware disponível nos smartphones modernos que torna estes ataques muito mais difíceis.

Mas as vulnerabilidades expõem um problema que vai além desta aplicação em particular. A verificação de idade não é segura por natureza, porque requer a ligação de uma identidade real a uma ação online. Essa ligação tem de ser armazenada em algum lugar, mesmo que brevemente, e onde quer que resida, torna-se um alvo para atacantes, governos e qualquer pessoa que consiga acesso não autorizado aos dados subjacentes. Quanto mais centralizada e reutilizável se torna essa ligação, maior o alvo.

A lei de verificação de idade da UE pretende ser uma norma única de preservação da privacidade que substitua a manta de retalhos jurídica que está a ganhar forma nos Estados-Membros, mas a confiança da Comissão de que a aplicação estaria pronta revelou-se prematura. Mais de 400 investigadores de privacidade e segurança escreveram à Comissão em março(nova janela) a solicitar uma moratória na implementação até que a ciência sobre a tecnologia de verificação de idade estabilize.