← Últimos artigos
💻 ciência da computação

How a Payment Lookup Oracle Confirms Predictable Identifiers

Este artigo demonstra que os oráculos de resolução de pagamentos nacionais, como o PromptPay da Tailândia, permitem a confirmação determinística de identificadores nacionais previstos ao permitir que atacantes verifiquem suposições contra dados públicos e registros vazados, uma vulnerabilidade exacerbada pelo fato de que os nomes dos destinatários são retornados sem máscara, apesar dos esforços de mascaramento parcial de nomes.

Autores originais: Badeesorn Sittikong, Tuul Triyason

Publicado 2026-10-30
📖 6 min de leitura🧠 Leitura aprofundada

Autores originais: Badeesorn Sittikong, Tuul Triyason

Artigo original sob licença CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). ✨ Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

No mundo moderno de transferências instantâneas de dinheiro, uma simples verificação de segurança tornou-se uma poderosa ferramenta de invasão de privacidade. Quando você envia dinheiro para um amigo usando um número de telefone ou um código de identificação nacional em vez de um longo número de conta bancária, seu aplicativo bancário realiza uma busca rápida. Ele pergunta a um sistema central: "A quem pertence este número?" e exibe o nome na sua tela para que você possa ter certeza de que está enviando o dinheiro para a pessoa certa. Este recurso, conhecido como oráculo de resolução, é projetado para evitar erros e fraudes. No entanto, pesquisadores descobriram que este mesmo mecanismo, que visa confirmar uma identidade conhecida, também pode ser usado para descobrir a identidade de um estranho. O problema surge quando este sistema de busca aberto é combinado com o fato de que muitos números de identificação nacional não são aleatórios; eles seguem um padrão previsível baseado em datas de nascimento e locais. No passado, especialistas em segurança sabiam que esses números poderiam ser adivinhados, mas acreditavam que não havia como saber se um palpite estava correto. A nova descoberta é que o próprio sistema de pagamento fornece a resposta, transformando um palpite qualquer em um fato confirmado.

Dois pesquisadores da Universidade de Tecnologia King Mongkut de Thonburi, na Tailândia, propuseram-se a medir exatamente quanto perigo essa combinação cria. Eles focaram no sistema PromptPay da Tailândia, uma rede de pagamento instantâneo amplamente utilizada onde as pessoas registram seus números de celular ou cartões de identidade nacional para receber dinheiro. Os pesquisadores não tentaram roubar dinheiro ou hackear os sistemas de computadores de nenhum banco. Em vez disso, trataram o aplicativo de pagamento como uma ferramenta para fazer perguntas e analisaram as respostas que ele dava. Eles começaram analisando a estrutura do cartão de identidade nacional tailandês. É um número de treze dígitos onde os primeiros dígitos indicam a província e o distrito onde a pessoa foi registrada, e o dígito final é um dígito de verificação matemática que garante que o número seja válido. Devido a esta estrutura, o número total de possíveis números de identidade válidos é muito menor do que parece. Os pesquisadores calcularam que as regras do sistema reduzem o grupo de candidatos potenciais por um fator de cento e trinta e cinco antes mesmo que qualquer informação específica sobre uma pessoa seja conhecida.

O estudo examinou então o que acontece quando um atacante já possui uma lista de números de identidade vazados, o que é uma realidade conhecida no mundo digital. Um vazamento público recente expôs mais de 1,2 milhão de números de identidade nacional tailandesa. No passado, ter tal lista era apenas metade da batalha; um atacante teria um número, mas não teria como saber o nome associado a ele. Os pesquisadores mostraram que o sistema de busca de pagamento resolve essa peça faltante. Ao inserir um número de identidade vazado em um aplicativo bancário, o sistema retorna imediatamente o nome completo do titular da conta. Isso transforma uma lista estática de números em um diretório de nomes vivo e verificado. Os pesquisadores demonstraram que, mesmo que alguns dígitos de um número de identidade estejam ocultos ou censurados em um documento, as regras matemáticas do cartão de identidade limitam o número de combinações ausentes possíveis a um conjunto muito pequeno. Um usuário poderia simplesmente tentar cada uma dessas poucas possibilidades no aplicativo de pagamento, e o sistema confirmaria a correta ao exibir o nome, enquanto rejeitaria as incorretas.

Para entender quão bem funcionam as atuais medidas de privacidade, os pesquisadores também observaram uma nova política adotada em Singapura, onde os aplicativos de pagamento agora ocultam partes do nome de uma pessoa na tela para evitar que observadores casuais o leiam. Eles testaram essa ideia usando um banco de dados de milhares de nomes tailandeses. Descobriram que o método de Singapura, que oculta apenas a segunda metade de cada nome, é surpreendentemente fraco. Como os sobrenomes tailandeses são frequentemente únicos para uma única família, e porque a primeira metade de um nome é frequentemente suficiente para identificar uma pessoa, a máscara deixa o nome efetivamente visível em mais da metade de todos os casos. Os pesquisadores descobriram que, para uma grande parte da população, o nome mascarado é único o suficiente para que uma pessoa ainda possa identificar o indivíduo. Mais importante ainda, eles mostraram que esse tipo de mascaramento não impede um atacante determinado que já possui um nome candidato para testar. Se um atacante suspeita que um nome pertence a um determinado número de identidade, ele pode simplesmente verificar se a versão mascarada corresponde ao seu palpite, tornando a proteção de exibição inútil contra um ataque direcionado.

Os pesquisadores foram então aos próprios bancos para ver o que realmente acontece na Tailândia. Eles usaram suas próprias contas bancárias e telefones celulares para testar o sistema em sete bancos diferentes, incluindo instituições estatais, privadas, estrangeiras e islâmicas. Em todos os casos, sem exceção, os aplicativos exibiam o nome completo e não mascarado do titular da conta. Não houve censura, ocultação de letras ou variação entre os diferentes bancos. Isso confirmou que o sistema é uniforme em todo o país e que as atuais proteções de privacidade são inexistentes. Os pesquisadores também observaram que o sistema não os atrasou ou impediu quando perguntaram repetidamente pelo mesmo nome, sugerindo que não há limites rígidos sobre quantas vezes uma pessoa pode pesquisar um número de identidade em um curto período.

A conclusão central do trabalho é que o perigo não reside na exibição do nome, mas na capacidade de fazer a pergunta. Os pesquisadores argumentam que simplesmente ocultar o nome na tela é a solução errada porque não interrompe o processo de confirmação subjacente. Se um atacante possui uma lista de números vazados, o sistema de pagamento atua como uma máquina que confirma quais números são reais e quem os possui. Os pesquisadores sugerem que a solução deve ser controlar as perguntas, não as respostas. Isso significa que o sistema deve limitar quantas vezes um único usuário pode pesquisar diferentes números por dia, ou sinalizar padrões de busca incomuns. Eles enfatizam que isso não é um erro de software que possa ser corrigido com um patch, mas um recurso de design do sistema de pagamento que serve a um propósito útil para usuários honestos enquanto cria um risco para a privacidade. O estudo conclui que, para que os sistemas de pagamento instantâneo sejam seguros, os operadores devem implementar limites rigorosos sobre a frequência com que essas buscas podem ser realizadas, garantindo que o sistema permaneça uma ferramenta para confirmar um destinatário conhecido, em vez de um diretório para descobrir estranhos.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →