Problemas de segurança com autenticação de dois factores (2FA)

A autenticação de dois factores (2FA) é um tipo específico de autenticação multi-factor (MFA) que reforça a segurança de acesso ao exigir dois métodos (também referidos como factores de autenticação) para verificar a sua identidade. Estes fatores podem incluir algo que você sabe – como um nome de usuário e senha – mais algo que você tem – como um aplicativo para smartphone – para aprovar pedidos de autenticação.

2FA protege contra ataques de phishing, engenharia social e força bruta de senha e protege seus logins de atacantes explorando credenciais fracas ou roubadas.

A autenticação de dois fatores (2FA) é o elemento fundamental de um modelo de segurança de confiança zero. A fim de proteger dados sensíveis, você deve verificar se os usuários que tentam acessar esses dados são quem dizem ser. 2FA é uma maneira eficaz de proteger contra muitas ameaças de segurança que visam senhas e contas de usuários, como phishing, ataques de força bruta, exploração de credenciais e mais.

Vamos dizer que você usa um nome de usuário e senha para completar a autenticação primária de um aplicativo. Essa informação é enviada através da Internet (sua rede principal). Você vai querer usar um canal diferente (fora da banda) para completar o seu segundo fator. A aprovação de uma notificação push enviada pela sua rede móvel é um exemplo de autenticação out-of-band.

Quais são os tipos de 2FA?

SMS 2FA

>

howtogeek.com

>

A autenticação de dois factores do SMS valida a identidade de um utilizador enviando um código de segurança para o seu dispositivo móvel. O utilizador introduz então o código no website ou aplicação a que se está a autenticar.

TOTP 2FA

blog.meteor.com

O método TOTP (TimeBased One Time Password) 2FA gera uma chave localmente no dispositivo que um usuário está tentando acessar. A chave de segurança é geralmente um código QR que o usuário escaneia com seu dispositivo móvel para gerar uma série de números. O usuário então insere esses números no site ou aplicativo para obter acesso. As senhas geradas por autenticadores expiram após um certo período de tempo, e uma nova senha será gerada na próxima vez em que um usuário fizer login em uma conta. TOTP é parte da arquitetura de segurança Open Authentication (OAUTH).

Push-Based 2FA

how-to-geek
>

Push-based 2FA melhora os SMS e TOTP 2FA adicionando camadas adicionais de segurança, enquanto melhora a facilidade de uso para os usuários finais. Push-based 2FA confirma a identidade de um usuário com múltiplos fatores de autenticação que outros métodos não podem. Duo Security é o principal provedor de 2FA baseado em push.

U2F Tokens

>

wellesley.edu

>

U2F tokens asseguram autenticação de dois fatores usando uma porta USB física para validar a localização e identidade de um usuário que tenta fazer login. Para usar um token U2F, um usuário insere o token em seu dispositivo e pressiona o botão localizado na parte superior do dispositivo. Uma vez ativado o token, o usuário digita seu PIN e ganha acesso às suas contas.

WebAuthn

inovex.de

Criado pela FIDO (Fast IDentity Online) Alliance e pelo W3C, o Web Authentication API é uma especificação que permite o registro e autenticação de criptografia forte e de chave pública. WebAuthn (Web Authentication API) permite que terceiros, como a Duo, possam utilizar autenticadores biométricos integrados em computadores portáteis e smartphones, permitindo que os utilizadores se autentiquem rapidamente e com as ferramentas que já têm na ponta dos dedos.

Que Ameaças o 2FA Address?

  • Senhas roubadas
  • Tentativas de pesca
  • Engenharia social
  • Brute-Ataques de Força
  • Lógica Quebrada
  • Lógica Chave de Registo

Vulnerabilidades na autenticação de Dois Factores

Desvio da autenticação de dois factores

Por vezes, a implementação da autenticação de dois fatores é falha ao ponto de poder ser totalmente contornada.

Se primeiro for solicitado ao usuário que digite uma senha e, em seguida, solicitado a inserir um código de verificação em uma página separada, o usuário estará efetivamente em um estado “logado” antes de ter inserido o código de verificação. Nesse caso, vale a pena testar para ver se você pode pular diretamente para as páginas “somente no início da sessão” após completar a primeira etapa de autenticação. Ocasionalmente, você verá que um website não verifica se você completou ou não o segundo passo antes de carregar a página.

Two-factor authentication tokens

Códigos de verificação são normalmente lidos pelo usuário a partir de algum tipo de dispositivo físico. Muitos sites de alta segurança agora fornecem aos usuários um dispositivo dedicado para este fim, como o token RSA ou dispositivo de teclado que você pode usar para acessar seu banco online ou laptop de trabalho. Além de terem sido construídos com o propósito de segurança, esses dispositivos dedicados também têm a vantagem de gerar o código de verificação diretamente. Também é comum que websites usem um aplicativo móvel dedicado, como o Google Authenticator, pelo mesmo motivo.

Por outro lado, alguns websites enviam códigos de verificação para o celular de um usuário como uma mensagem de texto. Enquanto isto ainda está tecnicamente verificando o fator de “algo que você tem”, está aberto a abusos. Em primeiro lugar, o código está sendo transmitido via SMS ao invés de ser gerado pelo próprio dispositivo. Isto cria o potencial para que o código seja interceptado. Existe também o risco de troca de SIM, em que um atacante obtém fraudulentamente um cartão SIM com o número de telefone da vítima. O agressor recebe então todas as mensagens SMS enviadas à vítima, incluindo a que contém o seu código de verificação.