11 pontos por GN⁺ 2025-08-08 | 3 comentários | Compartilhar no WhatsApp
  • Recentemente, muitos serviços passaram a adotar o método de login com código de 6 dígitos via e-mail ou número de telefone
    • o usuário informa o e-mail/telefone, recebe um código de verificação de 6 dígitos e faz login ao inseri-lo
  • Esse método causa vulnerabilidades graves na segurança da conta
    • um invasor pode simplesmente inserir o endereço de e-mail de outra pessoa em um serviço legítimo para solicitar o envio de um código de verificação
    • isso cria o problema de que o usuário não consegue saber facilmente se o código recebido é realmente para uma situação legítima de uso ou se é uma tentativa de phishing
    • ferramentas tradicionais de prevenção a phishing, como password managers (gerenciadores de senhas), perdem sua eficácia
  • Esse método de código de verificação vem sendo explorado de fato de forma contínua
    • um método semelhante é usado até mesmo no login de contas do Minecraft operado pela Microsoft
    • vários casos de roubo de contas foram relatados em diversas comunidades online e mídias, como Reddit e YouTube
    Publicidade

Conclusão

O método de autenticação por e-mail com código de 6 dígitos é, em termos de segurança, mais vulnerável do que parece

  • em comparação com o método tradicional de senha, o risco de phishing aumenta significativamente
  • embora tenha sido adotado para melhorar a experiência do usuário ou a segurança, na prática pode causar um resultado pior

3 comentários

 
roxie 2025-08-14

Não concordo muito; parece um truque que só funciona em circunstâncias bem específicas.

 
yinn27 2025-08-08

Se você estiver usando passkeys e perder o dispositivo, parece que vai ser bem complicado mesmo...

 
GN⁺ 2025-08-08
Comentário do Hacker News
  • O padrão de ataque funciona mais ou menos assim
    1) O usuário se cadastra em um site fraudulento
    2) O site diz algo como “enviamos um código de login do site BOM para o seu e-mail, digite-o aqui”
    3) O site fraudulento inicia no site BOM o fluxo de “entrar com código de uso único por e-mail” usando o e-mail do usuário
    4) O site BOM envia o código de login para o usuário por e-mail
    5) O usuário vê que o e-mail veio do site BOM, confia e digita o código
    6) O usuário digita o código no site fraudulento
    7) O site fraudulento usa esse código para entrar no site BOM como se fosse o usuário
    Por esse motivo, autenticação com “envio de código de uso único por e-mail” é muito vulnerável a phishing
    O método “clicar em um link no e-mail” é um pouco melhor, porque dá mais trabalho e parece mais suspeito copiar/colar esse link no site fraudulento, já que o usuário vai direto para o site BOM
    Ainda assim, se um serviço de e-mail popular começar de repente a bloquear esses e-mails de login ou os próprios links, muita gente pode simplesmente ficar sem conseguir entrar
    Passkeys são a forma mais correta de fazer isso
    O suporte a passkeys nos gerenciadores de senha está melhorando cada vez mais
    Mesmo que você perca o dispositivo onde salvou as passkeys e acabe perdendo todas elas, ainda acho isso muito mais seguro do que o modelo tradicional de senhas
    Acho melhor a sua avó ter que ir ao banco para recuperar acesso à conta do que alguém roubar todo o dinheiro dela via phishing

    • O problema das Passkeys é mais complexo do que apenas “se você perder o dispositivo, perde o acesso” (dependendo da configuração, há formas de contornar isso)
      O maior problema é a Attestation
      Ela permite que serviços bloqueiem quem usa ferramentas que aumentam a liberdade do usuário, como soluções de autenticação open source
      Passkeys e protocolos de challenge-response poderiam ter sido uma melhoria enorme para substituir senhas
      Mas, na prática, foram desenhados de um jeito que fortalece ainda mais o domínio da Big Tech e reduz a liberdade do usuário

    • Sobre a ideia de que “é melhor a sua avó ir ao banco para recuperar a conta”
      vale pensar no que acontece se alguém apontar uma arma para ela e forçar o desbloqueio da conta para levar todo o dinheiro
      No país de terceiro mundo onde eu moro, roubo de smartphone é um problema tão grave que até 2FA se torna inviável na prática
      Já precisei recuperar 2FA uma vez e foi um inferno
      Com senha, bastava acessar o Bitwarden de qualquer lugar

    • Configurei uma passkey no github e confirmei que ela está salva no Chrome
      Quando tento entrar no github com passkey, o Chrome abre um pop-up pedindo o PIN do Gerenciador de Senhas do Google
      Eu não faço ideia de qual é esse PIN, e também não consigo achar uma forma de redefini-lo
      Não há nenhuma orientação sobre esse PIN no perfil do Google, no gerenciador de senhas ou nas configurações de segurança

    • Sobre a opinião de que é ok a sua avó ir ao banco para recuperar a conta
      eu consigo ir pessoalmente ao banco ou ao help desk de TI da empresa para recuperar acesso,
      mas não posso fazer isso na sede do Google, do Facebook ou do Xitter
      Passkeys vinculadas a dispositivo têm grande chance de falhar nesses casos
      A maioria dos usuários nem considera esse tipo de situação

    • Só Passkeys não bastam
      a ideia é não repetir os mesmos erros de sempre
      Gerenciador de senhas deveria ser o padrão, e MFA dedicado deveria existir só para casos realmente excepcionais, como conta de e-mail ou conta financeira
      Também acho que a configuração de MFA deveria obrigar pelo menos 3 métodos e exigir o uso de 2 ou mais deles
      Se não oferecer praticamente todos os métodos, como códigos impressos, app autenticador independente do sistema operacional e chave de hardware como YubiKey, então esse MFA não vale nada

  • Recebo quatro vezes por dia e-mails de notificação pedindo redefinição da senha da minha conta Microsoft
    São e-mails com um número de 6 dígitos, que permitem recuperar a conta
    Na prática, isso significa que um invasor pode tentar tomar minha conta 4 vezes por dia com uma chance de 1 em 1.000.000 por tentativa
    Se fizer isso contra milhares de contas, consegue invadir algumas todo dia de graça
    Até enviei um relatório de segurança sobre isso, mas recusaram agir dizendo que a prova matemática da vulnerabilidade não era suficiente
    O que me resta é aguentar o spam e torcer para que a conta não seja invadida

    • Resolvi isso adicionando um alias de login
      No login, o e-mail antigo da conta (o e-mail público) passou a ser bloqueado, e só o alias, uma string aleatória privada, pode ser usado para entrar
      Depois disso, nunca mais houve tentativa de login externa
      [Como configurar: account.microsoft.com > Suas informações > Preferências de entrada > Adicionar e-mail > Adicionar alias e definir como padrão > em Preferências de entrada, marcar permitir apenas o alias]

    • Tive a mesma experiência
      Acho que talvez seja um efeito residual de quando precisei usar o Microsoft Teams

    • Se um atacante usar esse método contra 125.000 contas, provavelmente acerta uma por dia
      Se não estiver mirando uma conta específica, mas tentando no atacado, a eficiência por tempo gasto fica bem boa
      Para resolver isso, em vez de um limite fixo de 4 tentativas, deveria haver exponential backoff, aumentando o tempo de espera a cada falha

    • Também continuo recebendo mensagens parecidas numa conta antiga do Instagram
      “Está com problemas para entrar? Clique aqui para mudar sua senha!”

    • Aconteceu a mesma coisa com uma conta antiga e inútil
      Quando fui ver os IPs das tentativas de login, vinham de vários ISPs pelo mundo, e a maioria era de redes /16 diferentes entre si
      Ver até botnet sendo usada contra contas “inúteis” me faz pensar em quão pior deve ser para pessoas realmente expostas
      Depois que ativei 2FA, o problema sumiu completamente
      Ainda não sei como eles encontraram esse fluxo de login com código de 6 dígitos em primeiro lugar (porque para mim sempre era só digitar a senha e entrar)
      Mas, depois de ativar 2FA, nunca mais vi uma tentativa sequer
      O código de 2FA também fica salvo no meu gerenciador de senhas
      Fico feliz que agora eles não possam mais atacar essa loteria automática da Microsoft de “senha” de 6 dígitos (nem letras tem, só números!)

  • O pior de tudo é que esse tipo de autenticação piora os hábitos e as expectativas dos usuários
    Com um gerenciador de senhas moderno como o 1Password, tudo fica muito mais fácil, seguro e rápido do que com token por e-mail
    Só precisa de um pouco de cuidado na configuração inicial e na verificação em alguns dispositivos
    É como copiar a chave da porta quando você se muda para um lugar novo: só dá tranquilidade quando você salvou no gerenciador de senhas e confirmou a sincronização nos outros dispositivos
    As pessoas conseguem fazer isso
    Mesmo sem entender criptografia ou o conceito de 2FA, basta clicar em “criar nova senha” e usar a senha aleatória que o app salva
    Com passkey é a mesma coisa, desde que ela não fique apenas no armazenamento interno do dispositivo e você pense também em backup e recuperação
    Ironicamente, o jeito antigo (digitar e-mail e senha) funciona melhor
    O gerenciador de senhas já preenche tudo automaticamente, então na prática é muito mais rápido
    Passkeys podem ser ainda mais rápidas que isso

    • Basta um pouquinho de cuidado, mas esse “pouquinho” já é uma barreira de entrada grande e difícil para a maioria das pessoas
      Isso me frustra, mas 80% das pessoas à minha volta que não trabalham com TI parecem não saber nada de segurança e simplesmente desistiram do assunto
      O caso de maior sucesso que vi foi anotar as informações da conta num caderninho e, no máximo, exigir que a senha tenha números e letras
  • Entendo o problema desse fluxo
    Pela minha experiência, esse esquema de senha de uso único é o método de autenticação mais familiar para as pessoas não técnicas à minha volta depois da senha tradicional
    Na pequena cidade onde moro, gerenciador de senhas e passkeys parecem ainda mais complicados, e mesmo explicando na frente da pessoa ela simplesmente não entende
    O modelo mental é estranho demais, e a UX é complexa demais para ser compreendida
    Até aparecer algo que o público geral entenda intuitivamente, acho que senha e esse modelo “problemático” de código de uso único vão continuar dominando por pura simplicidade

    • Eu sinceramente acho que deveríamos continuar usando senhas mesmo
  • Mesmo que se use uma senha decente, o método de recuperação de conta quando a pessoa “esquece a senha” costuma ser esse mesmo padrão de código de uso único
    No fim, um atacante só precisa agir “como se tivesse esquecido a senha” para entrar pelo fluxo de recuperação
    Eu mesmo uso login por código de uso único em um serviço que criei
    Só que ele não é sensível, então o objetivo não é ter autenticação forte
    Eu até chamo isso de ICGAFAS (“I Couldn't Give A Factor” Auth System), para deixar claro que a segurança nem é uma preocupação ali
    Autenticação baseada em e-mail também dá mais trabalho para administradores, com problemas de envio e entrega via SMTP etc.
    No fim das contas, para não cair em blacklist ou filtro de spam, a realidade é que acaba sendo preciso usar um serviço de relay de terceiros

    • Mesmo com uma senha decente, como a maioria dos fluxos de recuperação de conta usa esse sistema de código de uso único, essa parte acaba virando o “elo mais fraco”
  • Me irrita muito que tantos serviços estejam forçando esse método de código de uso único no lugar de e-mail+senha ou login social
    Eu só queria poder usar minha senha de 100 caracteres

    • Você não é o usuário-alvo
      Na verdade, faz parte de uma minoria bem fora do comum
      No longo prazo, é preciso pensar em soluções que possam se conectar com a “maioria”

    • Não acho que senhas longas como 100 caracteres façam diferença
      Dependendo do comprimento da chave realmente usada pela criptografia por baixo, a senha acaba sendo truncada

  • Fui conferir se esse tipo de autenticação é oficialmente permitido na documentação do NIST (NIST 800-63b section 5.1.2.1)
    Se for tratado como “Look-up Secret Authenticator”, não há nenhum problema especial
    O que está acontecendo é um abuso de um mecanismo pensado originalmente para códigos de autenticação pré-distribuídos, como códigos de recuperação, transformando-o em envio em tempo real com escolha única
    Acho esse método vulnerável a phishing, mas também é difícil afirmar com certeza que ele é mais perigoso do que o modelo tradicional de usuário/senha
    Por exemplo, se pedirem ao usuário um código de 6 dígitos enviado ao e-mail, ele não consegue saber se esse código é para login legítimo ou não
    Mas um atacante também pode enganar a pessoa com uma página falsa parecida com a do Google e roubar informações do mesmo jeito
    No fim, acho que só autenticação resistente a phishing é o verdadeiro futuro

  • Tive que deletar minha conta do gofundme porque hoje caí de repente nesse ciclo de autenticação
    Usei a conta por anos e fiz doações, mas agora passaram a exigir obrigatoriamente número de celular e código MFA, sem opção de recusar
    Acabei fazendo todo o processo e desativei a conta
    Acho esse tipo de autenticação um incômodo desnecessário na vida; dá para viver sem gofundme
    Estou procurando casa ultimamente, e o app da Zillow faz a mesma coisa: exige login e, para ler as mensagens recebidas, pede MFA toda vez
    A sessão expira em uma hora
    Estou completamente cansado desse modelo de autenticação
    O mundo enlouqueceu

    • A Ticketmaster faz algo parecido
      Não aceita número do Google Voice e exige só número vinculado a SIM
      Meu número de SIM muda com frequência e é só um “detalhe de implementação”, mas agora sem esse número não consigo entrar na conta
      Na prática, ou desisto desse tipo de compra de ingressos, ou aceito o risco de ficar trancado para fora da conta toda vez que trocar de SIM

    • O Google ativou 2FA na minha conta por conta própria, e como o número de telefone cadastrado é antigo, a conta ficou completamente bloqueada

  • Quando um serviço muda sem aviso a senha e a autenticação em duas etapas, você pode perder o acesso para sempre se estiver viajando sem o telefone vinculado à conta
    A maioria dos serviços trata a autenticação em duas etapas como mais segura do que minha senha aleatória de 20 caracteres, guardada no gerenciador de senhas local
    Só que esses métodos de segundo fator costumam ser coisas bem fracas, como SMS em texto puro ou código enviado por e-mail em texto puro

    • Fico curioso sobre a taxa real de reutilização de senha e sobre quantas pessoas realmente usam gerenciador de senhas
  • Li essa frase quatro vezes e ainda não consegui entender
    Era algo como: “se o atacante enviar o endereço de e-mail do usuário ao serviço legítimo e pedir um código de 6 dígitos, o usuário não tem como saber se esse código é para um login legítimo”

    • Entendo por que isso não fez sentido. O que o autor realmente queria dizer era:
      • do ponto de vista do usuário, ele digita e-mail e login em um site fraudulento que parece o site legítimo
      • o hacker pega esse e-mail, coloca no serviço legítimo, e o serviço legítimo envia um código de 6 dígitos ao usuário
      • o usuário confia apenas no fato de que o código veio do serviço legítimo por e-mail e o digita normalmente
      • o atacante pega esse código e imediatamente acessa a conta
      • é assim que esse fluxo rouba as credenciais