Português (Brasil)
  • autenticacao
  • senha
  • oauth
  • oidc
  • identidade

A senha não está morrendo

No ano passado, havia notícias circulando na internet alegando que grandes empresas de tecnologia estavam unindo forças para eliminar senhas. Alguns startups até declararam que as senhas estavam obsoletas e ultrapassadas.

Gao
Gao
Founder

Introdução

No ano passado, havia notícias circulando na internet alegando que grandes empresas de tecnologia como Apple, Google e Microsoft estavam unindo forças para eliminar senhas. Alguns startups até declararam que as senhas estavam obsoletas e ultrapassadas. Depois de mergulhar no reino da gestão de identidade por meses, comecei a questionar a validade e praticidade dessas alegações.

O que uma senha faz?

À primeira vista, a resposta parece óbvia: senhas são usadas para fazer login e verificar identidades. No entanto, eu tenho um ponto de vista diferente se você considerar o fato de que as senhas não podem realmente verificar quem você é:

  • Quando um usuário faz login em um site com um email e senha, o site não tem como confirmar a verdadeira pessoa por trás dessas credenciais. Pode ser um humano ou até mesmo um gato.
  • Qualquer um pode desbloquear um iPhone com o PIN correto.

Na realidade, o objetivo de uma senha é provar anonimamente a propriedade de algo: uma conta de usuário, um dispositivo ou acesso a uma porta.

Os atuais “assassinos de senha”

As empresas mencionadas anteriormente propuseram vários "assassinos de senha". Muitos alegam ser alternativas mais seguras que eliminam a necessidade dos usuários se lembrarem de senhas complexas e estáticas durante a autenticação. No entanto, a maioria dessas alternativas não é totalmente prática para a remoção completa de senhas.

Autenticação FIDO

A autenticação FIDO (Fast Identity Online), conforme explicado na documentação oficial, utiliza técnicas de criptografia de chave pública para registro e login (vale ressaltar que WebAuthn é um componente central das especificações FIDO2). À primeira vista, o processo parece atraente:

Simples, certo? Infelizmente, há um obstáculo significativo no caminho: a compatibilidade. Quando comparada à combinação tradicional de "identificador e senha", a autenticação FIDO requer:

  • Sites ou aplicativos para suportar FIDO.
  • Navegadores e/ou sistemas operacionais para suportar FIDO.
  • Dispositivos do usuário para terem um mecanismo de verificação amigável ao usuário.

A falha em cumprir qualquer um desses requisitos torna a autenticação FIDO indisponível, forçando o uso de outros métodos.

Além disso, mesmo que todas as condições sejam atendidas, o que qualifica como um "mecanismo de verificação amigável ao usuário" em um dispositivo? Atualmente, pode envolver métodos biométricos como reconhecimento de impressão digital ou facial, acompanhados por uma opção de fallback como um código PIN, também conhecido como senha. No fim das contas, voltamos ao ponto inicial.

Tecnicamente, não é um "assassino de senha", mas sim um processo de autenticação ou verificação mais seguro e amigável ao usuário protegido por senhas.

Senha de uso único

Embora o nome inclua o termo “senha”, as senhas de uso único (OTPs) não são senhas tradicionais porque são dinâmicas. Existem dois tipos populares de OTPs:

  • Senha de Uso Único Baseada em Tempo (TOTP): Gerada algoritmicamente usando o tempo atual como fonte de unicidade. É comumente usada em Autenticação de múltiplos fatores (MFA) ou 2FA.
  • Senha de Uso Único por SMS/Email: Gerada no servidor usando algoritmos aleatórios. Em alguns países, tem sido amplamente adotada como um método de login principal.

As TOTPs podem não ser tão reconhecidas pelo nome. Por exemplo, quando um site pede para você configurar MFA e usar um aplicativo como Google Authenticator ou Duo para escanear um código QR, você provavelmente está usando TOTP. Você também pode ter notado que o site costuma exibir um longo "código de recuperação" e aconselha você a salvá-lo, pois só será mostrado uma vez. Alguns sites até incentivam os usuários a imprimi-lo em papel. Em essência, este código de recuperação funciona como uma senha longa.

Quanto às OTPs de SMS/Email, elas podem ser caras e pouco confiáveis:

  • Construir um remetente de SMS ou email do zero requer configuração.
  • Os remetentes de email precisam estabelecer uma "reputação" positiva para melhorar a capacidade de entrega, caso contrário, o remetente pode ser marcado como spam.
  • Cada país tem suas próprias operadoras de rede móvel, levando a tempos de entrega imprevisíveis e custos notáveis para o envio de SMS, especialmente para startups.

Biometria

O termo "biometria" refere-se ao uso de métodos biométricos apenas para autenticação online. Na verdade, há uma diferença fundamental quando comparado a outros métodos: a autenticação biométrica muda a tarefa original de "provar a propriedade de algo" para "provar quem você é". Devido a preocupações de privacidade, os métodos biométricos são empregados principalmente para autenticação local.

A senha não é perfeita, embora

Como podemos ver, os "assassinos de senha" estão essencialmente escondendo senhas ou usando senhas como opções de fallback. Veja um resumo das vantagens das senhas com base em nossa discussão:

  • Acessibilidade e compatibilidade: As senhas podem ser usadas em vários sistemas e são acessíveis a uma ampla variedade de usuários.
  • Custo-efetividade e versatilidade: As autenticações baseadas em senha geralmente são mais econômicas do que outros métodos e adaptáveis a diferentes cenários.
  • Anonimato e privacidade: As senhas permitem o uso anônimo e protegem a privacidade do usuário.

Mas toda moeda tem dois lados. Embora as senhas tenham suas vantagens, confiar nelas exclusivamente para autenticação apresenta vulnerabilidades significativas. Elas podem ser desafiadoras para os usuários finais gerenciar, e se os proprietários de sites falharem em seguir práticas de segurança adequadas, as senhas se tornam fáceis de comprometer. Práticas de segurança perigosas incluem, mas não estão limitadas a:

  • Permitir senhas fracas ou vazadas.
  • Falta de aplicação de HTTPS para conexões.
  • Uso de algoritmos de hashing inseguros.
  • Falha em seguir rigorosamente padrões testados em batalha como OAuth ou OpenID Connect (OIDC).
  • Exposição do banco de dados ao público.

Conclusão

Não tenho a intenção de desqualificar nenhum dos métodos de autenticação mencionados acima. Pelo contrário, conforme trabalho na construção do Logto, desenvolvi um profundo respeito por esses notáveis métodos de autenticação e as pessoas por trás deles.

No entanto, alcançar 100% de segurança é uma meta inatingível. O que podemos nos esforçar é para reduzir a possibilidade de ataques. Uma abordagem eficaz é combinar a autenticação baseada em senha com senhas de uso único baseadas no dispositivo ou ambiente atual, que adicionam uma camada extra de verificação e têm sido amplamente adotadas. Ao aproveitar os pontos fortes das diferentes técnicas de autenticação, podemos criar uma abordagem em camadas que proporciona uma proteção mais forte.

Em conclusão, em vez de focar em palavras de ordem como "assassino de senha" quando as senhas não estão realmente sendo eliminadas, seria mais valioso se concentrar em encontrar um equilíbrio entre segurança e experiência do usuário. Isso implica em entender os pontos fortes e limitações de vários métodos de autenticação e implementá-los de uma forma que garanta tanto a segurança dos dados do usuário quanto uma experiência do usuário sem problemas.