Nos últimos dois anos, o conceito de autenticação de dois factores (2FA), há muito tempo a reserva dos geeks, encontrou o seu caminho para o mainstream. No entanto, a conversa ainda se limita em grande parte ao uso de 2FA para senhas únicas sobre SMS. É triste dizer que esta não é a opção mais confiável. Aqui está porque:
- É fácil dar uma olhada nas senhas enviadas por SMS se as notificações de bloqueio de tela estiverem habilitadas.
- Even se as notificações estiverem desligadas, um cartão SIM pode ser removido e instalado em outro smartphone, dando acesso às mensagens SMS com senhas.
- As mensagens SMS com palavra-passe podem ser interceptadas por um Trojan à espreita dentro do smartphone.
- Utilizando várias tácticas desleais (persuasão, suborno, etc.), os criminosos podem obter um novo cartão SIM com o número da vítima a partir de uma loja de telemóveis. As mensagens SMS irão então para este cartão, e o telefone da vítima será desligado da rede.
- As mensagens SMS com senhas podem ser interceptadas através de uma falha básica no protocolo SS7 usado para transmitir as mensagens.
Note que mesmo a mais alta tecnologia e trabalhosa dos métodos de roubo de senhas SMS acima (exploração SS7) já foi usada na prática. O resto é rotina diária para os maus da fita. Com isso dito, não estamos lidando com hipotéticos, mas sim com uma ameaça ao vivo.
Em geral, senhas de SMS não são muito seguras, e às vezes elas são muito inseguras. Portanto, faz sentido procurar alternativas no horizonte quando se trata de 2FA, que é o tópico de hoje.
- Códigos únicos em um arquivo ou em papel
- Existe um aplicativo para isso, também: Authenticator apps
- Como os aplicativos autenticadores funcionam
- 2FA app and service compatibility
- Os melhores aplicativos para autenticação de dois fatores
- 1. Google Authenticator
- 2. Duo Mobile
- 3. Microsoft Authenticator
- 4. FreeOTP
- 5. Authy
- 6. Yandex.Key
- FIDO autenticadores de hardware U2F: YubiKey e outros
- Como funcionam as fichas FIDO U2F
- Que tipos de dispositivos U2F existem
- O que escolher: SMS, app, ou YubiKey?
Códigos únicos em um arquivo ou em papel
A maneira mais simples de substituir senhas únicas baseadas em SMS é usar, sim, senhas únicas, mas preparadas com antecedência. Não é a pior opção, especialmente para serviços nos quais você acessa com pouca frequência. Mesmo para o bom ol’ Facebook, este método pode muito bem fazer, especialmente como um plano de backup.
É bastante simples: A pedido, o serviço gera e exibe uma dúzia de códigos de uso único que podem ser usados mais tarde para autenticar um login. Estes códigos podem ser impressos ou rabiscados e colocados em um cofre. Ou, ainda mais simples, eles podem ser salvos em notas criptografadas em um gerenciador de senhas.
Não é tão importante se os códigos são mantidos em formato físico ou digital – o que importa é que eles (1) não se percam e (2) não possam ser roubados.
Existe um aplicativo para isso, também: Authenticator apps
Além de todos os “uns” desta frase, um conjunto de códigos gerados uma vez tem uma desvantagem: Mais cedo ou mais tarde chegará ao fim, e você pode ficar sem código no momento mais inoportuno. Felizmente, há uma maneira melhor: Códigos únicos podem ser gerados na hora usando um pequeno e (normalmente) muito simples aplicativo autenticador.
Como os aplicativos autenticadores funcionam
É muito fácil de usar aplicativos 2FA. Aqui está o que você precisa fazer:
- Instale o aplicativo autenticador no seu smartphone,
- Vá para as configurações de segurança do serviço com o qual você quer usar o aplicativo,
- Selecione 2FA (assumindo que a opção exista); o serviço mostrará um código QR que pode ser digitalizado diretamente no aplicativo 2FA,
- Digitalize o código com o aplicativo – ele começará a gerar um novo código único a cada 30 segundos.
Os códigos são criados com base numa chave (conhecida apenas por si e pelo servidor) e a hora actual, arredondada para 30 segundos. Ambos os componentes são os mesmos para você e para o serviço, portanto os códigos são gerados de forma síncrona. Este algoritmo é chamado OATH TOTP (Palavra-passe única baseada no tempo), e é de longe o mais utilizado.
Existe uma alternativa, conhecida como OATH HOTP (Palavra-passe única baseada em HMAC). Em vez da hora atual, este algoritmo usa um contador que aumenta em 1 para cada código recém-criado. Mas ele raramente é encontrado na vida real, porque seu uso complica a geração síncrona de códigos no lado do aplicativo e do serviço. Dito de forma simples, existe um risco não substancial de que o contador fique com uma ligação errada na hora errada, e sua senha única não funcionará.
Então, OATH TOTP pode ser considerado o padrão de facto (embora oficialmente não seja sequer um padrão, como os criadores insistem na especificação).
2FA app and service compatibility
A grande maioria das 2FA apps usa o mesmo algoritmo, portanto qualquer uma pode ser usada para serviços que suportem autenticadores; faça a sua escolha.
Obviamente, como com qualquer regra geral, existem exceções. Por razões conhecidas apenas por eles, alguns serviços preferem fazer suas próprias aplicações 2FA que funcionam apenas para eles. Além disso, os serviços em si não funcionam com nenhum outro aplicativo, exceto o próprio.
Isso é especialmente comum entre as principais editoras de videogames: por exemplo, Blizzard Authenticator, Steam Mobile com Steam Guard incorporado, Wargaming Auth, e outros são todos incompatíveis com aplicativos e serviços de terceiros. Apenas esses aplicativos personalizados podem ser usados com as plataformas de jogos relevantes.
Esse estranho caminho também foi tomado pela Adobe com seu Adobe Authenticator, que funciona apenas com contas AdobeID. No entanto, você pode usar outros autenticadores para autenticar no AdobeID, então não está nada claro porque um aplicativo separado foi necessário.
Em qualquer caso, a maioria das empresas de TI normais não restringem os usuários na escolha de aplicativos 2FA. E mesmo se uma empresa de repente decidir criar seu próprio aplicativo, na maioria das vezes ele pode ser usado para proteger não apenas suas próprias contas, mas as de outros serviços também.
Apenas escolha o aplicativo autenticador que você mais gosta em termos de recursos adicionais – ele funcionará com a maioria dos serviços que geralmente suportam aplicativos 2FA.
Os melhores aplicativos para autenticação de dois fatores
A escolha dos aplicativos 2FA é surpreendentemente ampla. Procure por “autenticador” no Google Play ou na App Store, e você verá dezenas de opções. Não recomendamos a instalação do primeiro aplicativo que você colocar os olhos; ele pode não ser o mais seguro. Lembre-se que você está prestes a confiá-lo com as chaves de suas contas (ele não saberá suas senhas, é claro, mas você está adicionando 2FA porque as senhas têm uma tendência a vazar). Em geral, vale a pena optar por um aplicativo feito por um desenvolvedor importante e confiável.
Embora a função básica de todos esses aplicativos seja a mesma – criar códigos únicos usando um e o mesmo algoritmo, alguns autenticadores têm funções extras ou recursos de interface que podem apelar. Aqui estão algumas das opções mais interessantes.
1. Google Authenticator
Plataformas suportadas: Android, iOS
Como notado por todos os meios tecnológicos, o Google Authenticator é o mais fácil de usar de todas as muitas aplicações 2FA por aí. Ele não tem nem mesmo nenhuma configuração. Tudo o que ele permite fazer é adicionar um novo token (o nome dado ao gerador de código para uma conta individual) ou apagar um já existente. Para copiar um código tudo o que tem de fazer é tocá-lo. É isso!
No entanto, tal simplicidade tem uma desvantagem: Se você não gosta de algo na interface ou quer mais recursos, você terá que instalar outro aplicativo autenticador.
+ Muito fácil de usar.
2. Duo Mobile
Plataformas suportadas: Android, iOS
Duo Mobile também é extremamente amigável, minimalista e livre de configurações adicionais. Ele tem uma vantagem sobre o Google Authenticator: Duo Mobile mantém os códigos escondidos por padrão – para vê-los, o usuário deve tocar no token específico. Se você, como eu, não gosta de ter um monte de códigos para todas as suas contas em exibição pública toda vez que abre o autenticador, então este recurso do Duo Mobile é para você.
+ Esconde códigos por padrão.
3. Microsoft Authenticator
Plataformas suportadas: Android, iOS
Microsoft também optou pela abordagem sem fendas com o seu autenticador minimalista. Dito isto, o Microsoft Authenticator é notavelmente mais rico em recursos do que o Google Authenticator. Para começar, embora todos os códigos sejam mostrados por padrão, cada token pode ser configurado separadamente para ser escondido.
Segundo, o Microsoft Authenticator simplifica o login em contas Microsoft. Após digitar sua senha, tudo o que você precisa fazer é tocar o botão no aplicativo para confirmar o login – e pronto, não é preciso nem mesmo digitar um código único.
+ Pode ser configurado para ocultar códigos.
+ Recursos extras para login em contas Microsoft.
4. FreeOTP
Plataformas suportadas: Android, iOS
Existem quatro razões para escolher este bebé da Red Hat. Primeiro, o software é de código aberto. Segundo, é o aplicativo mais leve da nossa lista – a versão iOS é apenas 750KB. (Em comparação, o Authenticator minimalista do Google requer quase 14MB, e o aplicativo Authy, discutido abaixo, é um impressionante 44MB.)
Terceiro, o aplicativo esconde códigos por padrão, exibindo-os apenas se o token for tocado. Quarto, mas não menos importante, o FreeOTP permite configurar os tokens de forma muito flexível e manual, caso você queira. Naturalmente, o método usual de criação de tokens, ao digitalizar um código QR, também é suportado.
+ Esconde códigos por padrão.
+ Ocupa apenas 750KB.
+ Código aberto.
+ Configurações máximas ao criar um token manualmente.
5. Authy
Plataformas suportadas: Android, iOS, Windows, MacOS, Chrome
Authy é o mais sofisticado dos aplicativos 2FA, com a principal vantagem de que todos os tokens são armazenados na nuvem. Isto torna possível o acesso aos tokens de qualquer um dos seus dispositivos. Ao mesmo tempo, simplifica a migração para novos dispositivos. Não há necessidade de reativar o 2FA em cada serviço, assim você pode continuar usando os tokens existentes.
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 de forma segura e não é nada fácil de roubar. Você também pode definir um PIN de login para o aplicativo ou protegê-lo com uma impressão digital se seu smartphone estiver equipado com o scanner certo.
A principal desvantagem do Authy é que ele exige que você configure uma conta vinculada a um número de telefone celular – caso contrário, ele não funcionará em absoluto.
+ Os tokens são armazenados na nuvem, permitindo que eles sejam usados em todos os seus dispositivos.
+ Migração para outros dispositivos é muito fácil por esse mesmo motivo.
+ Login do aplicativo protegido por PIN ou impressão digital.
+ Apenas o código para o último token utilizado é mostrado na tela.
+ Ao contrário de outros aplicativos, ele suporta não apenas Android e iOS, mas também Windows, MacOS e Chrome.
– Não funciona sem uma conta Authy ligada a um número de telefone.
6. Yandex.Key
Plataformas suportadas: Android, iOS
Na minha opinião, o conceito por detrás do Yandex.Key torna-o o melhor aplicativo para 2FA. Por um lado, ele não requer registro imediato – você pode começar a usá-lo tão facilmente quanto o Google Authenticator. Por outro lado, tem várias funcionalidades adicionais disponíveis para aqueles que não são configurados – shy.
First, Yandex.Key pode ser bloqueado com um PIN ou impressão digital. Segundo, ele permite que você crie uma cópia de segurança protegida por senha de tokens na nuvem do Yandex (esta etapa requer um número de telefone) e restaure-o em qualquer dispositivo que você use. Da mesma forma, é possível transferir tokens para um novo dispositivo quando você precisa migrar.
Yandex.Key consegue combinar a simplicidade do Google Authenticator com a funcionalidade estendida do Authy, dependendo do que você preferir. A única desvantagem do aplicativo é que a interface não é tão fácil de usar com um grande número de tokens.
+ Minimalismo no início, funcionalidade estendida disponível através das configurações.
+ Cópias de segurança dos tokens podem ser criadas na nuvem para uso em vários dispositivos e migração para novos.
+ O login no aplicativo é protegido por PIN ou impressão digital.
+ Apenas o código do último token utilizado é mostrado na tela.
+ Substitui sua senha permanente da conta Yandex.
– Com muitos tokens, não tão fácil de encontrar o necessário.
FIDO autenticadores de hardware U2F: YubiKey e outros
– Se um aplicativo que gera códigos únicos parece uma maneira muito frágil e intangível de proteger suas contas, e você quer algo mais sólido e confiável que trave sua conta com uma chave que literalmente vai no seu bolso, então não procure mais que fichas de hardware baseadas no padrão U2F (Universal 2nd Factor), criado pela FIDO Alliance.
Como funcionam as fichas FIDO U2F
As fichas de hardware U2F são a querida dos especialistas em segurança, principalmente porque, do ponto de vista do utilizador, funcionam de forma muito simples. Para começar, basta conectar o token U2F ao seu dispositivo e registrá-lo em um serviço compatível. Todo o processo leva apenas alguns cliques.
Depois disso, para confirmar o login no serviço, você precisará conectar o token U2F ao dispositivo a partir do qual você está fazendo login e tocar no botão token (alguns dispositivos requerem um PIN ou digitalização de impressão digital, mas isso é uma característica extra). É isso – sem configurações complexas, inserindo longas sequências de caracteres aleatórios, ou outros mumbo-jumbo frequentemente associados à palavra criptografia.
Inserir a chave e pressionar o botão – e é isso mesmo
Ao mesmo tempo, debaixo do capô as coisas são inteligentes e criptograficamente sãs: Ao registrar uma ficha em um serviço, um par de chaves criptográficas é criado – privado e público. A chave pública é armazenada no servidor, e a privada é armazenada em um chip Elemento Seguro, que é o coração do token U2F, e nunca sai do dispositivo.
A chave privada é usada para criptografar a confirmação de login, que é passada para o servidor e pode ser descriptografada usando a chave pública. Se alguém fingindo ser você tenta transferir uma confirmação de login criptografada com a chave privada errada, então decifrá-la com a chave pública produzirá algaraviadas, e o serviço não concederá acesso à conta.
Que tipos de dispositivos U2F existem
O exemplo mais famoso e comum de U2F é YubiKey, feito por Yubico. A empresa essencialmente liderou este padrão mas optou por torná-lo aberto, para o que foi criada a FIDO Alliance. E porque o padrão é aberto, a sua escolha não é restrita: Os dispositivos compatíveis com U2F são produzidos e vendidos por várias empresas, e as lojas online oferecem uma gama de modelos diferentes.
YubiKey – talvez a ficha U2F mais popular
Por exemplo, o Google introduziu recentemente um conjunto de autenticadores sob o banner Google Titan Security Keys. Na verdade, são chaves produzidas pela Feitian Technologies (o segundo fabricante mais popular de fichas U2F, depois da Yubico) para a qual o Google desenvolveu o seu próprio firmware.
Obviamente, todos os autenticadores de hardware compatíveis com o padrão U2F funcionarão igualmente bem com qualquer serviço que também seja compatível com este padrão. No entanto, existem diferenças, sendo as mais importantes as interfaces suportadas pela chave. Isto determina diretamente quais dispositivos podem funcionar com:
USB: para conexão com PCs (não importa se eles rodam Windows, Mac ou Linux; as chaves funcionam sem a instalação de nenhum driver). Além do habitual USB-A, existem chaves para USB-C.
NFC: necessárias para uso com smartphones e tablets Android.
Bluetooth: necessárias em dispositivos móveis que não possuem NFC. Por exemplo, os proprietários de iPhone ainda precisam de um autenticador baseado em Bluetooth. Embora o iOS agora permita que aplicativos utilizem NFC (antes deste ano, apenas Apple Pay era permitido), a maioria dos desenvolvedores de aplicativos compatíveis com U2F ainda não aproveitaram esta funcionalidade. Os autenticadores Bluetooth têm algumas desvantagens: primeiro, eles precisam ser cobrados; segundo, eles levam muito mais tempo para se conectar.
Modelos básicos de fichas U2F normalmente suportam apenas U2F e custam $10-$20. Outros dispositivos mais caros ($20-$50) também podem operar como um cartão inteligente, gerar senhas únicas (incluindo OATH TOTP e HOTP), gerar e armazenar chaves de criptografia PGP, e ser usado para entrar no Windows, macOS, Linux, e assim por diante.
O que escolher: SMS, app, ou YubiKey?
Então, o que escolher para autenticação de dois fatores? Não há uma resposta universal para esta pergunta. Várias versões e combinações de 2FA podem ser usadas para diferentes serviços. Por exemplo, contas de prioridade máxima (uma caixa de correio ligada a outras contas, etc.) devem ser protegidas até ao limite – ou seja, bloqueadas com um token U2F de hardware com todas as outras opções 2FA bloqueadas. Dessa forma você pode ter certeza que ninguém jamais terá acesso à sua conta sem este token.
Uma boa opção é ligar duas chaves à sua conta, como com as chaves do carro: uma está sempre no seu bolso, a outra está em um lugar seguro para o caso de a primeira se perder. Além disso, você pode usar diferentes tipos de chaves: Por exemplo, um aplicativo autenticador no seu smartphone como o principal, e uma ficha U2F ou um pedaço de papel com senhas únicas em seu cofre como backup.
Em qualquer caso, o principal conselho é evitar usar senhas únicas baseadas em SMS sempre que possível. É verdade, isso nem sempre é possível. Os serviços financeiros, por exemplo, são notoriamente conservadores e raramente oferecem autenticação através de nada além de SMS.