Saiba mais sobre os métodos 2FA alternativos

Por que as mensagens SMS não são a melhor opção para autenticação de dois fatores e quais tipos de alternativas 2FA deve considerar.

Nos últimos anos, o conceito de autenticação de dois fatores (2FA), antes uma exclusividade dos nerds, foi se tornando popular. No entanto, o assunto ainda está muito limitado ao uso de 2FA por meio do envio de senhas únicas via SMS. É triste dizer, mas essa não é a opção mais segura. Eis o porquê:

  • É fácil espiar as senhas enviadas por SMS se as notificações da tela de bloqueio estiverem habilitadas.
  • Mesmo que as notificações estejam desabilitadas, um cartão SIM pode ser removido e instalado em outro smarphone, o que permite o acesso às mensagens SMS com senhas.
  • Mensagens SMS com senhas podem ser interceptadas por um Trojan camuflado dentro do smartphone.
  • Usando diversas táticas desleais (persuasão, suborno, etc.), criminosos podem conseguir um novo cartão SIM com o número da vítima em uma loja de celulares. As mensagens SMS então irão para esse cartão.
  • Mensagens SMS com senhas podem ser interceptadas por meio de uma falha básica no protocolo SS7 usado na sua transmissão.

Note que até mesmo os métodos mais tecnológicos ou trabalhosos para roubar mensagens SMS com senhas (exploração do SS7) dos mencionados acima já foram colocados em prática. O restante faz parte da rotina diária dos cibercriminosos. Dito isto, não estamos lidando com uma ameaça hipotética, mas real.

De modo geral, mensagens SMS com senhas não são muito confiáveis, e às vezes são extremamente inseguras. Assim, faz sentido olhar para o horizonte em busca de alternativas quando se trata de 2FA, que é nosso tópico de hoje.

Códigos únicos em um arquivo ou papel

O jeito mais simples de substituir as senhas únicas das mensagens SMS é usar, sim, senhas únicas, mas elaboradas previamente. Não é a pior opção, principalmente para serviços que você não costuma acessar com frequência. Mesmo para o bom e velho Facebook, esse método pode funcionar bem, especialmente como um plano B.

É bastante simples: mediante solicitação, o serviço gera e mostra mais ou menos uma dezena de códigos únicos que podem ser posteriormente usados para autenticar um login. Esses códigos podem ser impressos ou anotados e guardados em segurança. Ou, ainda mais simples, armazenados em notas criptografadas em um gerenciador de senhas.

Não faz tanta diferença se os códigos serão mantidos em formato físico ou digital — o que importa é que (1) não sejam perdidos e (2) não possam ser roubados.

Também há um app para isso: aplicativos de autenticação

Além de todos os “únicos” nessa frase, um conjunto único de códigos únicos tem também um único inconveniente: mais cedo ou mais tarde vai chegar ao fim, e você pode ficar sem códigos nos momentos mais inoportunos. Felizmente, há uma solução: gerá-los de forma rápida com um pequeno e (geralmente) muito simples aplicativo de autenticação.

Como funciona um aplicativo de autenticação?

É muito fácil utilizar aplicativos 2FA. Basta:

  • instalar o aplicativo de autenticação no seu smartphone,
  • ir às configurações de segurança do serviço que quer utilizar com o app,
  • selecionar 2FA (supondo que essa opção exista); o serviço vai mostrar um QR Code que pode ser escaneado diretamente no aplicativo,
  • leia o código com o app – novos códigos únicos serão gerados a cada 30 segundos.

 Os códigos são criados com base em uma chave de segurança (conhecida apenas por você e pelo servidor) e no horário, arredondado para 30 segundos. Ambos os componentes são os mesmos para você e para o serviço, para que os códigos sejam gerados simultaneamente. Esse algoritmo chama-se OATH TOTP (Time-based One-Time Password), e é de longe o mais comumente utilizado.

Compatibilidade entre apps 2FA e serviços

A grande maioria dos aplicativos 2FA utiliza o mesmo algoritmo, então qualquer um pode ser usado em serviços que suportam autenticadores; faça sua escolha.

Claro, para toda regra, há exceções. Por motivos que apenas os serviços conhecem, alguns deles preferem criar seus próprios apps 2FA que funcionam apenas nas suas plataformas. E mais, esses próprios serviços não aceitam outros aplicativos além do desenvolvido pela empresa.

Isso é especialmente comum entre os maiores editores de videogames: por exemplo, Blizzard Authenticator, Steam Mobile com o seu Steam Guard integrado, Wargaming Auth e outros são todos incompatíveis com apps e serviços de terceiros. No entanto, apenas os aplicativos personalizados podem ser usados nessas importantes plataformas de jogos.

Esse caminho peculiar também foi seguido pela Adobe com o seu Adobe Authenticator, que funciona apenas com contas AdobeID. Contudo, outros autenticadores podem ser utilizados para fazer a autenticação, de forma que não fica clara a necessidade da ferramenta.

De qualquer forma, a maioria das empresas de TI não restringem a escolha dos usuários para apps 2FA. E, mesmo se uma empresa repentinamente decidir criar seu próprio aplicativo, na maioria das vezes, ele pode ser usado para proteger não apenas suas próprias contas, como a de outros serviços também.

Apenas escolha o aplicativo de autenticação que mais gosta em termos de recursos adicionais – vai funcionar na maioria dos serviços que geralmente suportam apps 2FA.

Melhores apps de autenticação de dois fatores

A oferta de aplicativos 2FA é surpreendentemente ampla. Pesquise por “authenticator” na Google Play ou na App Store e verá dezenas de opções. Não recomendamos instalar o primeiro app que enxergar: pode não ser o mais seguro. Lembre-se que você está prestes a entregar as chaves das suas contas (o aplicativo não vai saber suas senhas, é claro, mas está usando 2FA porque as senhas podem vazar). Em geral, vale a pena optar por um app criado por um desenvolvedor reconhecido e confiável.

Apesar da função básica de todos esses aplicativos ser a mesma – criar códigos únicos utilizando o mesmo algoritmo – alguns deles possuem funcionalidades extras ou recursos de interface que podem ser atrativos. Aqui estão algumas opções.

1. Google Authenticator

Plataformas suportadas: Android, iOS

O Google Authenticator é o aplicativo 2FA mais fácil de usar que existe. Nem mesmo possui configurações. Permite apenas que você adicione um novo token (nome dado ao gerador de códigos para uma conta em particular) ou delete um existente. Para copiar um código, tudo que precisa fazer é clicar. Pronto!

No entanto, essa simplicidade tem uma desvantagem: se não gostar de algo na interface ou quiser mais recursos, terá que instalar outro aplicativo de autenticação.

  • Muito fácil de usar.

2. Duo Mobile

Plataformas suportadas: Android, iOS

O Duo Mobile também é extremamente fácil de usar, minimalista e sem configurações adicionais. Tem uma vantagem sobre o Google Authenticator: mantém os códigos ocultos por padrão – para vê-los, o usuário precisa clicar no token específico. Se, assim como eu, não gosta de mostrar um monte de códigos para todas as suas contas cada vez que abre o autenticador, então essa funcionalidade do Duo Mobile foi feita para você.

+ Códigos ocultos por padrão.

3. Microsoft Authenticator

Plataformas suportadas: Android, iOS
A Microsoft também escolheu usar a abordagem simples no seu autenticador minimalista. Dito isso, o Microsoft Authenticator possui visivelmente mais recursos do que o Google Authenticator. Para começar, apesar de todos os códigos serem mostrados por padrão, cada token pode ser individualmente configurado para ser ocultado.

Depois, o Microsoft Authenticator simplifica o acesso às contas Microsoft. Após inserir sua senha, tudo que precisa fazer é clicar no botão no app para confirmar o login – e pronto, não é preciso nem mesmo inserir um código único.

  • Pode ser configurado para ocultar códigos.
  • Recursos extras para acessar contas Microsoft.

4. FreeOTP

Plataformas suportadas: Android, iOS
Há quatro razões pelas quais pode querer escolher essa criação da Red Hat. Primeiro, o software é open source. Segundo, é o aplicativo mais leve da nossa lista – a versão iOS tem apenas 750KB (em comparação, o minimalista Google Authenticator requer quase 14MB, e o Authy, que vamos discutir a seguir, gritantes 44MB).

Terceiro, o aplicativo oculta os códigos por padrão, mostrando-os apenas quando se clica no token. Quarto, mas não menos importante, o FreeOTP permite configurar tokens de forma flexível e manual, se quiser. Naturalmente, o método de criação de tokens mais usual, com leitura de QR Codes, também é suportado.

  • Oculta códigos por padrão.
  • Precisa de apenas 750KB.
  • Open source.
  • Diversas configurações na criação manual de tokens.

 5. Authy
Plataformas suportadas: Android, iOS, Windows, macOS, Chrome
O Authy é o mais sofisticado dos aplicativos 2FA, sendo a principal vantagem o fato de que todos os tokens são armazenados na nuvem. Isso possibilita que sejam acessados a partir de qualquer um dos seus dispositivos. Ao mesmo tempo, simplifica a migração para novos dispositivos. Não é preciso reativar a 2FA em cada serviço, então pode continuar usando os tokens existentes.

Os tokens na nuvem são criptografados com uma chave baseada em uma senha definida pelo usuário, o que significa que os dados são armazenados com segurança e nem um pouco fáceis de roubar. Você também pode definir um código PIN para o aplicativo ou protegê-lo com uma impressão digital se seu smartphone possuir o leitor biométrico.

A principal desvantagem é que o Authy exige a configuração de uma conta vinculada a um número de telefone – de outra forma, não vai funcionar.

  • Os tokens são armazenados na nuvem, o que permite que sejam usados em todos os seus dispositivos.
  • Por essa mesma razão, a migração para outros aparelhos é muito fácil.
  • Login no aplicativo protegido por código PIN ou leitura por impressão digital.
  • Apenas o código do último token utilizado aparece na tela.
  • Diferente de outros aplicativos, está disponível não apenas para Android e iOS, mas também para Windows, macOS e Chrome.
  • Não funciona sem uma conta Authy vinculada a um número de telefone.

Autenticadores U2F de hardware da FIDO: YubiKey e outros

Se um aplicativo que gera códigos únicos parece uma maneira intangível e muito frágil de proteger suas contas, e quiser algo mais sólido e confiável que bloqueie sua conta com uma chave de segurança que cabe literalmente no seu bolso, então o ideal para você são tokens de hardware com base no padrão U2F (Universal 2nd Factor), criado pela FIDO Alliance.

Como os tokens U2F da FIDO funcionam

Os tokens de hardware U2F são os queridinhos dos especialistas de segurança, sobretudo porque, de uma perspectiva do usuário, funcionam de maneira bem simples. Para começar, simplesmente conecte o token U2F ao seu dispositivo e o registre em um serviço compatível. O processo completo demora apenas alguns cliques.

Depois disso, para confirmar o login no serviço, vai precisar conectar o token U2F ao dispositivo do qual está fazendo o login e clicar no botão do token (alguns dispositivos exigem um código PIN ou uma leitura de impressão digital, mas isso é um recurso extra). Pronto – sem configurações complexas, nem inserção de longas sequências de caracteres aleatórios, ou complicações adicionais frequentemente associadas à palavra criptografia.
Ao mesmo tempo, por trás das cortinas as coisas são inteligentes e criptograficamente sólidas: ao registrar um token em um serviço, duas chaves criptográficas são criadas – uma privada e uma pública. A chave pública é armazenada no servidor e a privada é armazenada em um chip Secure Element, que é o coração do token U2F, e nunca sai do dispositivo.

A chave privada é usada para criptografar a confirmação do login, que é passada para o servidor e pode ser descriptografada com a chave pública. Se alguém que estiver tentando se passar por você tentar transferir uma confirmação de login criptografada com a chave privada errada, descriptografá-la com a chave pública vai produzir palavras desconexas, e o serviço não vai autorizar o acesso à conta.

Que tipos de dispositivos U2F existem?

O exemplo mais famoso e comum de U2F é o YubiKey, produzido pela Yubico. A empresa basicamente encabeçou esse padrão mas escolheu distribui-lo abertamente, motivo pelo qual a FIDO Alliance foi criada. E por se tratar de um padrão aberto, sua escolha não é restrita: dispositivos compatíveis com o U2F são produzidos e vendidos por várias empresas, e lojas online oferecem diferentes modelos.
Por exemplo, a Google recentemente introduziu uma suíte de autenticadores sob a bandeira de Google Titan Security Keys. Na verdade, são chaves produzidas pela Feitian Technologies (a segunda fabricante mais popular de tokens U2F, depois da Yubico) para as quais a Google desenvolveu seu próprio firmware.

Modelos básicos de tokens U2F geralmente suportam apenas U2F e custam de $10 a $20. Outros dispositivos mais caros ($20 a $50) também podem funcionar como um cartão inteligente, gerar senhas únicas (inclusive OATH TOTP e HOTP), gerar e armazenar chaves de criptografia PGP, e serem usados para acessar Windows, macOS, Linux, e assim por diante.

O que escolher: SMS, aplicativo ou YubiKey?

Então, qual autenticação de dois fatores escolher? Não há uma resposta universal para essa pergunta. Diversas versões de 2FA e combinações podem ser usadas por diferentes serviços. Por exemplo, contas prioritárias (uma caixa de entrada linkada a outras contas, etc.) devem ser protegidas ao máximo – ou seja, com um token de hardware U2F com todas as outras opções 2FA bloqueadas. Dessa forma, pode ter certeza de que ninguém mais terá acesso à sua conta sem esse token.

Uma boa opção é linkar duas chaves à sua conta, como as dos carros: uma está sempre no seu bolso, a outra em um lugar seguro caso perca a primeira. Além disso, você pode usar diferentes tipos de chaves: por exemplo, um aplicativo de autenticação no seu smartphone como a principal, e um token U2F ou pedaço de papel com as senhas únicas no seu cofre como backup.

De qualquer forma, o principal conselho é evitar o uso de senhas únicas por mensagens SMS sempre que possível. Verdade, nem sempre é possível. Serviços financeiros, por exemplo, são notoriamente conservadores e raramente oferecem outra opção de autenticação.

Dicas