Seu autenticador não deveria depender da sua conta
Se o backup dos seus códigos de dois fatores é restaurado pela mesma conta que eles protegem, a chave está trancada dentro do cofre.
Você fez tudo certo. Ligou a verificação em duas etapas, instalou o aplicativo que o próprio site recomendou, escaneou os QR codes, e agora cada login pede um número de seis dígitos que muda a cada trinta segundos. Sua conta está muito mais difícil de invadir do que estava ontem.
Agora responda uma pergunta que quase ninguém faz: se o seu celular sumir hoje, de onde vêm esses números amanhã?
Para a maioria das pessoas que usa o Google Authenticator, a resposta é: da nuvem do Google, restaurados pela sua conta Google. Que é, muito provavelmente, uma das contas que aqueles códigos deveriam proteger.
Leia de novo devagar, porque é aqui que mora o problema.
A chave trancada dentro do cofre
Segundo fator existe para uma coisa: garantir que a senha, sozinha, não abre a porta. É uma trava independente. A ideia inteira depende dessa palavra — independente.
Quando o seu autenticador sincroniza pela conta Google, essa independência acaba. Os códigos e a conta passam a viver no mesmo destino. Se você perder o acesso à conta, perde junto o mecanismo que serviria para reconquistá-la. Não é um risco teórico de segurança, é um problema de arquitetura: você amarrou o paraquedas dentro da mochila que está caindo.
É a mesma história que contamos em Trancado do lado de fora, vista de outro ângulo. Um pequeno comerciante nos Estados Unidos teve a conta Google travada num loop de verificação por SMS, naquela tela sem saída que diz "Too many failed attempts".
Ele tinha dois fatores em tudo. Fez o que mandam fazer. Só que os segredos estavam todos no Google Authenticator, cujo backup restaura pela conta Google — a mesma que estava travada. No momento em que ele mais precisava dos códigos, os códigos estavam do lado de dentro da porta trancada.
Não foi invasão. Não foi descuido. Foi uma dependência que ninguém tinha desenhado no papel.
Segundo fator que depende do primeiro não é segundo fator. É o mesmo fator, com etapas a mais.
O que o TOTP realmente é
Aqui vale desfazer um mal-entendido que sustenta o problema todo. As pessoas acham que o aplicativo autenticador é o dono do segundo fator. Não é.
Aquele QR code que você escaneia não é mágica: é um texto curto, uma chave secreta compartilhada entre você e o serviço. O padrão que transforma esse segredo em seis dígitos é público e documentado — a RFC 6238. O cálculo é o mesmo em qualquer lugar: pega o segredo, pega a hora atual, aplica a função, sai o código.
O segredo é o segredo. O aplicativo é só o invólucro.
Isso tem duas consequências práticas que mudam como você deveria pensar no assunto.
A primeira: nenhum aplicativo é dono da sua conta. Se você tem o segredo, gera os códigos onde quiser. Trocar de autenticador não é migrar um serviço, é copiar um texto de um lugar para outro.
A segunda, e é a que as pessoas não percebem: você pode manter o mesmo segredo em mais de um aplicativo de propósito. Dois aparelhos, dois autenticadores, os mesmos códigos, sincronizados por nada além da hora do relógio. Isso não é gambiarra nem falha de segurança — é redundância deliberada, e é a resposta mais simples para o medo de perder o celular.
O custo de saída que ninguém menciona
Se você já está dentro do Google Authenticator e quer sair, prepare-se para um atrito que parece pequeno na descrição e é grande na prática.
O aplicativo tem exportação: ele gera um QR code que carrega várias contas de uma vez. Só que essa tela é protegida contra captura — a flag FLAG_SECURE do Android impede screenshot. A saída é fotografar a tela com outro aparelho.
E aí aparece o problema real: quanto mais contas você põe num único QR, mais denso ele fica. Com uma dezena de contas, o código vira uma malha fina demais para ser lida a partir da foto de uma tela, tirada à mão, com reflexo e desfoque. Ele simplesmente não decodifica.
A solução que funciona é exportar em lotes de três ou quatro contas por vez. Funciona, mas é trabalhoso — e esse trabalho é exatamente o ponto. Não existe uma barreira técnica impedindo você de sair. Existe fricção suficiente para a maioria das pessoas desistir no meio. Isso também é uma forma de aprisionamento, e vale reconhecê-la pelo nome antes de escolher onde guardar os próximos dez anos de segredos.
O que usar no lugar
O critério não é marca, é arquitetura. Um autenticador decente precisa de três propriedades:
- Não pedir conta nenhuma. Sem login, sem nuvem obrigatória, sem vínculo com um provedor. Se ele não tem conta, não existe conta para você perder.
- Backup exportável que você controla. Um arquivo cifrado que você guarda onde quiser — pendrive, cofre físico, o seu próprio backup. Não a nuvem de alguém.
- Cifragem séria e verificável. Derivação de chave que resista a força bruta e um modo autenticado, para o arquivo não poder ser adulterado sem você notar.
O Aegis, no Android, atende os três. É local, não pede conta nenhuma, e o backup sai cifrado com scrypt para derivar a chave e AES-GCM para cifrar e autenticar o conteúdo. Você fica com um arquivo, e o arquivo é seu de verdade. É o que recomendamos.
Mas repare no que realmente está sendo recomendado aqui: não é um aplicativo, é a propriedade de não depender de ninguém para recuperar o que é seu. Qualquer autenticador com essas três características resolve. O Aegis é a implementação mais limpa que conhecemos, não uma devoção.
A ressalva honesta
Seria fácil terminar o artigo aqui, e seria incompleto.
Autenticador em software — Aegis inclusive — guarda os segredos em um arquivo no seu aparelho. Malware rodando com as suas permissões consegue chegar nesse arquivo. A cifragem protege o backup em repouso; não protege contra um programa que já está dentro, rodando como você.
A única cópia realmente inextraível é a que vive numa chave de segurança física. O segredo é gerado dentro do hardware e não sai de lá — nem para você. Não existe arquivo para copiar, não existe processo para ler a memória, e phishing não funciona porque a chave verifica criptograficamente com quem está falando.
Por isso a recomendação não é trocar uma coisa pela outra, e sim combinar:
- Chave física nas contas críticas — e-mail principal, provedor de domínio, banco, plataforma de pagamento. Sempre duas chaves, nunca uma.
- Autenticador local para o resto, que é a maioria — os dezenas de serviços que não aceitam chave física ou não justificam uma.
- Códigos de recuperação impressos para o dia em que os dois falharem.
Trocar Google Authenticator por Aegis conserta a dependência circular. Não conserta a extração por malware. São dois problemas diferentes, e vale saber qual você está resolvendo.
Como migrar sem perder nada
A regra de ouro: nunca apague o antigo antes de confirmar que o novo funciona. Durante a migração, ter o mesmo segredo nos dois aplicativos é o estado seguro, não o arriscado.
- Instale o novo autenticador sem tocar no antigo.
- Exporte em lotes de três ou quatro contas. Não tente levar tudo num QR só — ele não vai ser lido.
- Confirme conta por conta que os dois aplicativos mostram o mesmo código de seis dígitos ao mesmo tempo. Se batem, o segredo foi transferido certo.
- Faça o backup cifrado do novo autenticador e guarde fora do celular.
- Teste o restore em outro aparelho, ou pelo menos confirme que consegue abrir o arquivo com a senha. Backup nunca testado não é backup.
- Só então remova as contas do aplicativo antigo.
Checklist
O teste que resolve o assunto em trinta segundos: imagine que o seu celular caiu no vaso agora e a sua conta principal está bloqueada. Você ainda consegue gerar os seus códigos?
Se a resposta depender de recuperar justamente a conta que está bloqueada, você não tem dois fatores. Você tem um, dividido em duas telas.
Precisa de ajuda para montar isso?
A X2 Nova Labs ajuda empresas a montar arquitetura de identidade e recuperação que sobrevive ao pior dia: segundos fatores que não dependem do primeiro, chaves físicas em par, e um caminho de recuperação que não passa pela conta que ele deveria socorrer.
Falar com a X2 Nova Labs