Pessoal,
Como podemos fazer para que nossas ações na internet possam ser mais seguras e como podemos fazer para provar que nós somos nós mesmos na impessoalidade da rede?
Essas sempre foram preocupações pertinentes no mundo da informática.
Em geral, as empresas acabaram desenvolvendo sistemas baseados em senhas. Só que, apesar da crescente complexidade das senhas exigidas (letras, números, caracteres especiais, etc), as pessoas acabavam esquecendo as senhas ou optando por senhas menos seguras.
Em um vazamento de mais de 1 bilhão de senhas em 2017 mostrou, segundo a empresa de segurança digital 4iQ, algo que a gente já sabia: as pessoas usam senhas inseguras como "123456", "123456789", "qwerty", "senha", "password" e "111111"!
Vários motivos explicam (ou pelo menos tentam explicar) isso:
- os humanos, em geral, têm memória ruim
- muitas contas digitais;
- fadiga de segurança (no início há muita preocupação, mas com a ideia de anonimato na rede ou percepção de que sempre haverá um vazamento de dados, as pessoas relaxam e usam senhas inseguras)
Assim, foram criadas as "autenticações em duas etapas" ou "autenticações de dois fatores". Nada mais é que, após a primeira senha (a tradicional, "estática") seja utilizada uma outra senha, essa dinâmica, comprovando que você é você! Esse tipo de autenticação ou verificação é conhecido também como "MFA" ou Multi-Factor Authentication ou "2FA" Two-Factor Authentication.
Uma das primeiras estratégias utilizadas foi a utilização dos tokens de hardware, aqueles chaveiros que produzem um código numérico a cada intervalo de tempo (30 em 30 segundos, geralmente) ou outros que eram tokens via USB.
Apesar de não parecer, esses dispositivos tinham alguns problemas (risco de perda, distribuição cara e possibilidade de serem hackeados - veja aqui).
Depois veio o 2FA baseado em envio de um SMS para essa confirmação. Essa mostrou-se a opção menos segura de autenticação, uma vez que o aparelho podia ser clonado ou roubado.
Atualmente, existem três formas mais comuns de 2FA.
A primeira é a 2FA biométrica, onde impressões digitais, reconhecimento facial ou de retina são utilizados para verificação da identidade.
Outra forma é a Notificação Push para 2FA, um nome bonito para um aviso em tempo real ao usuário que uma tentativa de autenticação está ocorrendo.
A terceira opção utilizada com mais frequência é a utilização de Tokens de Software para 2FA. Temos vários exemplos desse modelo como o Google Authenticator, o Authy, o Microsoft Authenticator, apenas para citar os mais comuns.
Esse modelo, também conhecido como TOTP, baseia no download de um aplicativo 2FA no celular ou computador e o cadastro (geralmente nome de usuário e senha) para gerar um código no aplicativo. Assim como nos tokens de hardware, esses códigos têm validade geralmente por menos de um minuto e estão disponíveis em celulares, computadores, wearables e funcionam até offline.
Em resumo, as autenticações em múltiplos fatores costumam incluir:
- algo que o usuário tem: cartão, chave, token, celular, etc
- algo que o usuário sabe: senha, PIN, etc
- algo que o usuário é: digital, voz, padrão de posicionamento de tecla, etc
Se você quer saber um pouco mais sobre esse assunto, dê uma lida aqui.
O modelo TOTP (Time-based One-Time Password ou senha única baseada em tempo) é um algoritmo computacional que utiliza o tempo atual como fonte para gerar uma senha única (One-Time Password). Esse sistema é uma expansão do algoritmo de senha única baseada em HMAC (HMAC-based one-time password ou HOTP), que, por sua vez, é baseado no HMAC.
HMAC (Hash-based Message Authentication Code ou código de autenticação de mensagem baseado em hash) é um tipo de código de autenticação de mensagem que envolve uma função hash criptográfica e uma chave criptográfica secreta. Assim, ao invés de usar uma chave pública e assinaturas digitais, o HMAC fornece a autenticação usando um "segredo compartilhado". Como qualquer função hash criptográfica, quanto maior o tamanho do hash de saída e do tamanho e qualidade da chave, maior a força critptográfica do HMAC (veja mais detalhes aqui).
Assim, de tempos em tempos (pelo modelo TOTP), uma senha única baseada em HMAC é criada (pelo modelo HOTP).
Ufa, vamos voltar ao assunto do título.
Em 2010 o Google criou o Google Authenticator, um software de token para implementar verificação de duas etapas (2FA) utilizando os algoritmos baseados em tempo e HMAC (TOTP e HOTP, respectivamente) e funciona tanto para serviços do Google quanto para aplicações de terceiros.
Não vou discutir aqui como começar a utilizar esse serviço em detalhes, mas em linhas gerais você deve habilitar a verificação em duas etapas na aba de Segurança da sua conta do Google, deve baixar o app do Google Authenticator para o seu telefone e, no navegador, na conta do Google, deve configurar a autorização para utilizar o app do Authenticator. No final vai ser gerado um código no Authenticator para você colocar no site e pronto. É mais ou menos isso. Veja mais aqui, caso tenha alguma dúvida.
Até aqui nada de novo no fronte. O problema era quando era preciso trocar de telefone. Os dados e a autorização do app não eram levados nativamente para o telefone novo. Era preciso gerar um QR-code no aparelho antigo. Agora, imagine fazer isso se o seu telefone fosse roubado ou perdido ou afogado ou seriamente danificado. Lascou... Ou você fazia com QR-code ou fazia um a um os serviços, na unha!
Somente em 2023 (sim, esse ano!), a função para sincronizar em nuvem surgiu!
Para isso, se você ainda tiver o seu telefone antigo, faça isso:
E siga as instruções para exportar.
(Isso aparece no telefone antigo)
Vai ser gerado um QR-Code para ser lido no app no telefone novo.
(E aqui é para inserir no aparelho novo)
Pronto, ao escolher "Ler Código QR" no telefone novo e apontar para o velho, tá resolvido. Esse era o jeito antigo.
Agora, existe uma nova opção, essa que citamos que começou em 2023 (em abril de 2023, para ser mais exato). Isso passa pela atualização do app no telefone velho.
(Versão antiga) (Versão nova)
Repare que surgiu uma nuvem verde no canto superior direito no app atualizar. Essa nuvem indica que os códigos estão salvos na nuvem. Pronto!
Faça isso agora para se precaver de algum problema futuro com seus códigos caso perca o acesso ao telefone. Na necessidade de atualizar o aparelho, apenas instale o app e faça a sincronização na nuvem. Muito fácil.
É isso por enquanto!
Nenhum comentário:
Postar um comentário