Luizinho Explica

Como o Google Authenticator funciona sem internet? Entenda por que o código continua válido no modo avião

Como o Google Authenticator funciona sem internet? Entenda por que o código continua válido no modo avião

Seu celular está sem internet, mas o Authenticator continua gerando códigos que o site aceita. Parece mágica, mas existe uma explicação simples: o celular e o servidor já sabem o segredo.

Você já percebeu que o Google Authenticator e outros aplicativos de autenticação conseguem gerar códigos mesmo quando o celular está sem internet?

É possível colocar o smartphone no modo avião, desligar Wi-Fi e dados móveis e, ainda assim, abrir o aplicativo e encontrar um novo código de seis dígitos.

Mas existe uma pergunta bastante interessante por trás disso:

Se o celular não está conectado à internet, como o site sabe que o código digitado está correto?

A resposta é mais simples — e mais interessante — do que parece.

O celular não está conversando com o servidor

A primeira coisa que precisamos entender é que, quando o código é gerado, o Authenticator não está enviando uma mensagem para o serviço.

Não acontece isso:

Celular → Internet → Google → “Qual código devo mostrar?”

Na verdade, o aplicativo consegue calcular o código sozinho.

E o servidor também consegue calcular o código sozinho.

Isso é possível porque, durante a configuração da autenticação em duas etapas, o celular e o servidor recebem o mesmo segredo criptográfico.

É como se os dois recebessem uma chave secreta antes de começarem a gerar os códigos.

O segredo é compartilhado durante a configuração

Quando você ativa a autenticação por aplicativo em um serviço, normalmente aparece um QR Code para ser escaneado pelo Authenticator.

Esse QR Code contém informações usadas para configurar a autenticação, incluindo um segredo compartilhado.

Depois da configuração, podemos imaginar a situação assim:

Servidor: 🔐 “Eu conheço o segredo.”

Seu celular: 🔐 “Eu também.”

A partir desse momento, os dois não precisam ficar trocando mensagens para gerar cada código.

Eles simplesmente utilizam esse segredo como parte do cálculo.

Mas só o segredo não seria suficiente

Se o aplicativo simplesmente utilizasse sempre o mesmo segredo, ele produziria sempre o mesmo código.

Isso não seria muito seguro.

Por isso entra uma segunda informação importante:

o horário.

O sistema utiliza o segredo compartilhado junto com o tempo atual para produzir um código temporário.

É daí que vem o nome TOTP, sigla para Time-based One-Time Password, ou “senha de uso único baseada em tempo”.

De forma simplificada:

Segredo + horário atual + algoritmo → código temporário

O Authenticator faz esse cálculo no celular.

O servidor faz um cálculo equivalente do outro lado.

Então como os dois chegam ao mesmo número?

Imagine que o seu celular e o servidor tenham exatamente a mesma “receita”.

Os dois possuem:

🔐 O mesmo segredo

🕐 Aproximadamente o mesmo horário

🧮 O mesmo algoritmo

Agora imagine que ambos coloquem essas informações na receita.

O resultado será o mesmo código.

Por exemplo:

Celular:

segredo + horário → 482913

Servidor:

segredo + horário → 482913

Quando você digita 482913 no site, o servidor compara o código que você informou com aquele que ele calculou.

Se os valores forem compatíveis, o acesso é autorizado.

E nenhuma comunicação com o celular foi necessária.

É por isso que o modo avião não impede o Authenticator

Agora podemos voltar para a situação inicial.

Você ativa o modo avião.

📵 Sem Wi-Fi.

📵 Sem dados móveis.

📵 Sem conexão com o servidor.

Mesmo assim, o Authenticator continua funcionando.

Isso acontece porque o aplicativo não precisa consultar a internet para descobrir o próximo código.

Ele já possui o segredo necessário e pode consultar o relógio do próprio aparelho para realizar o cálculo.

O servidor, por sua vez, faz seu próprio cálculo quando recebe o código que você digitou.

E por que o código muda a cada poucos segundos?

Se o código permanecesse válido durante horas ou dias, alguém que conseguisse descobri-lo poderia tentar utilizá-lo posteriormente.

Por isso os códigos são temporários.

Em implementações TOTP comuns, o código muda em intervalos de 30 segundos.

Assim, podemos ter algo parecido com:

20:15:00 → 482913

20:15:30 → 716204

20:16:00 → 093817

Os números acima são apenas exemplos, mas a lógica é essa: o código muda conforme o intervalo de tempo.

E se o celular e o servidor estiverem com horários diferentes?

Aqui aparece uma parte importante do sistema.

Se o relógio do seu celular estiver muito adiantado ou atrasado, o código calculado pelo aparelho pode não coincidir com o código esperado pelo servidor.

Por isso, manter a data e hora automáticas ativadas no smartphone é importante.

Os serviços também podem aceitar uma pequena margem de diferença de tempo para evitar que alguns códigos sejam rejeitados por uma diferença mínima entre os relógios.

O código não precisa ser enviado pelo celular

Essa é provavelmente a parte mais curiosa de toda a história.

Quando você vê:

“Digite o código de 6 dígitos do seu aplicativo autenticador”

pode parecer que o aplicativo precisa enviar aquele número para o servidor.

Mas não é isso que acontece.

O código é calculado de forma independente.

O celular calcula um código.

O servidor calcula o código esperado.

Você funciona como uma espécie de ponte:

Authenticator → você → site

O aplicativo mostra o número, você digita o número no site e o servidor verifica se aquele número corresponde ao que ele esperava.

Uma analogia simples

Imagine que você e um amigo possuem duas máquinas idênticas.

Antes de se separarem, vocês colocam a mesma chave secreta nas duas máquinas.

Vocês também combinam uma regra:

“A cada 30 segundos, vamos usar o horário atual junto com essa chave para gerar um número.”

Você fica com uma máquina.

Seu amigo fica com a outra.

Quando chega determinado horário, vocês colocam o horário nas respectivas máquinas.

As duas produzem o mesmo número.

Você não precisa ligar para seu amigo para perguntar qual número apareceu na máquina dele.

Vocês já possuem todas as informações necessárias para chegar ao mesmo resultado.

É basicamente essa ideia que permite que o Authenticator funcione sem internet.

Mas então o servidor conhece o segredo do meu Authenticator?

De certa forma, sim.

Para que o sistema consiga verificar o código, o serviço precisa manter o segredo associado à sua conta.

Por isso, esse segredo é uma informação extremamente importante.

Durante a configuração, ele é armazenado no aplicativo e registrado pelo serviço.

Depois disso, ambos conseguem gerar os códigos temporários.

Isso também explica por que você deve ter cuidado ao configurar ou transferir um aplicativo autenticador.

E se eu trocar de celular?

Essa é uma situação que merece atenção.

Se você perder o aparelho ou trocar de celular, pode ser necessário transferir as contas do autenticador para o novo dispositivo.

Dependendo do aplicativo e do serviço, existem mecanismos de backup, sincronização ou transferência.

Mas não é uma boa ideia simplesmente apagar o Authenticator antigo antes de garantir que suas contas foram transferidas corretamente.

Também é importante guardar os códigos de recuperação fornecidos pelos serviços quando você ativa a autenticação em duas etapas.

Eles podem ser fundamentais caso você perca acesso ao aplicativo autenticador.

Isso significa que o Authenticator é mais seguro?

O TOTP adiciona uma camada importante de proteção à conta.

Mesmo que alguém descubra sua senha, ainda precisará do segundo fator para concluir o login.

Além disso, o fato de o código ser temporário dificulta seu uso posterior.

Mas isso não significa que a autenticação por aplicativo seja uma proteção perfeita.

É importante continuar utilizando senhas fortes, proteger o próprio celular e manter os métodos de recuperação da conta em segurança.

Authenticator, SMS e internet: qual é a diferença?

Uma diferença importante entre o código de um aplicativo autenticador e um código enviado por SMS é justamente a necessidade de comunicação.

No SMS, o servidor precisa enviar uma mensagem para o seu telefone:

Servidor → operadora → celular

Já no TOTP:

Servidor → calcula o código

Celular → calcula o código

Os dois conseguem chegar ao mesmo resultado sem precisar trocar mensagens naquele momento.

Por isso o aplicativo autenticador pode continuar gerando códigos mesmo quando o telefone está completamente offline.

🎥 Quer ver isso acontecendo na prática?

É exatamente isso que vamos demonstrar no Luizinho Explica.

No vídeo, vamos colocar o conceito à prova: mostrar o código sendo gerado pelo Authenticator, colocar o celular no modo avião e explicar por que o código continua funcionando.

📱 COMO O AUTHENTICATOR FUNCIONA SEM INTERNET?

VÍDEO AINDA EM PRODUÇÃO

Se você chegou ao artigo depois de assistir ao vídeo, agora já sabe o que está acontecendo por trás daquela tela.

E se chegou primeiro pelo artigo, o vídeo mostra toda essa explicação de maneira visual e prática.

Afinal, o Authenticator precisa de internet?

Para gerar o código TOTP, não.

Essa é a resposta curta.

O aplicativo já possui o segredo necessário e utiliza o horário do dispositivo para calcular o código.

A internet pode ser necessária para outras partes do processo, como fazer login no serviço, sincronizar determinadas configurações ou realizar uma transferência/backup, dependendo do aplicativo.

Mas a geração do código TOTP em si não depende de uma conexão ativa com a internet.

A “mágica” é matemática

No final das contas, não existe uma comunicação secreta acontecendo entre o seu celular e o servidor enquanto você olha para o código.

O que existe é algo muito mais interessante:

os dois possuem previamente as mesmas informações e executam o mesmo tipo de cálculo.

É por isso que um celular no modo avião consegue mostrar um código que um servidor do outro lado do mundo consegue reconhecer como válido.

Parece mágica.

Mas é criptografia. 🔐

E talvez essa seja uma das partes mais interessantes da tecnologia: muitas coisas que parecem impossíveis no nosso dia a dia são simplesmente sistemas matemáticos muito bem projetados funcionando silenciosamente em segundo plano.

#2FA #Autenticação em Dois Fatores #Authenticator #Criptografia #Dicas de Tecnologia #Google #Google Authenticator #Privacidade #Segurança #Segurança Digital #Tecnologia #TOTP
Luis

Luis

Escritor do Disquetinho — salvando bytes que importam.