A password não está a desaparecer
No ano passado, havia artigos de notícias a circular na internet que afirmavam que grandes empresas de tecnologia estavam a unir forças para eliminar as passwords. Algumas startups até declararam que as passwords estavam obsoletas e ultrapassadas.
Introdução
No ano passado, havia artigos de notícias a circular na internet que afirmavam que grandes empresas de tecnologia como a Apple, Google e Microsoft estavam a unir forças para eliminar as passwords. Algumas startups até declararam que as passwords estavam obsoletas e ultrapassadas. Depois de mergulhar no domínio da gestão de identidades durante meses, comecei a questionar a validade e praticabilidade dessas afirmações.
O que faz uma password?
À primeira vista, a resposta parece óbvia: as passwords são usadas para iniciar sessão e verificar identidades. No entanto, tenho uma visão diferente se considerar o facto de que as passwords não podem realmente verificar quem você é:
- Quando um usuário inicia uma sessão num site com um email e uma password, o site não tem como confirmar a pessoa real por trás dessas credenciais. Pode ser um humano ou até um gato.
- Qualquer pessoa pode desbloquear um iPhone com o PIN correto.
Na realidade, o propósito de uma password é provar anonimamente a propriedade de algo: uma conta de usuário, um dispositivo, ou acesso a uma porta.
Os atuais “assassinos de passwords”
As empresas mencionadas anteriormente propuseram várias "soluções" para as passwords. Muitos afirmam ser alternativas mais seguras que eliminam a necessidade dos utilizadores se lembrarem de passwords complexas e estáticas durante a autenticação. No entanto, a maioria dessas alternativas não é inteiramente prática para remover completamente as passwords.
Autenticação FIDO
A autenticação FIDO (Fast Identity Online), como explicado na documentação oficial, utiliza técnicas de criptografia de chave pública para registo e início de sessão (vale a pena notar 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. Comparado com a combinação tradicional de "identificador e password", a autenticação FIDO exige:
- Sites ou aplicações para suportar FIDO.
- Navegadores e/ou sistemas operativos para suportar FIDO.
- Dispositivos de utilizadores para terem um mecanismo de verificação amigável ao usuário.
A falha em cumprir qualquer um destes requisitos torna a autenticação FIDO indisponível, forçando a queda para outros métodos.
Além disso, mesmo que todas as condições sejam cumpridas, o que qualifica como um "mecanismo de verificação amigável ao usuário" num dispositivo? Atualmente, pode envolver métodos biométricos como reconhecimento de impressões digitais ou facial, acompanhados por uma opção de fallback como um código PIN, ou seja, uma password. No final, voltamos ao ponto de partida.
Tecnicamente, não é um "assassino de passwords" mas sim um processo de autenticação ou verificação mais seguro e amigável ao usuário, protegido por passwords.
Password de uso único
Embora o nome inclua o termo “password”, as passwords de uso único (OTPs) não são passwords tradicionais porque são dinâmicas. Existem dois tipos populares de OTPs:
- Password de Uso Único baseada em Tempo (TOTP): Gerada algoritmicamente usando o tempo atual como fonte de unicidade. É comumente usada em Autenticação Multi-Fator (MFA) ou 2FA.
- Password de Uso Único por SMS/Email: Gerada no servidor usando algoritmos aleatórios. Em alguns países, tem sido amplamente adotada como método principal de início de sessão.
As TOTPs podem não ser tão reconhecidas pelo nome. Por exemplo, quando um site pede para configurar MFA e usar uma app como Google Authenticator ou Duo para ler um código QR, é provável que esteja a usar TOTP. Também pode ter notado que o site muitas vezes mostra um longo "código de recuperação" e aconselha a guardá-lo, pois só será mostrado uma vez. Alguns sites até incentivam os usuários a imprimi-lo em papel. Essencialmente, este código de recuperação funciona como uma longa password.
Quanto às OTPs por SMS/Email, podem ser caras e pouco fiáveis:
- Construir um serviço de envio de SMS ou email do zero requer instalação.
- Os serviços de envio de email precisam de estabelecer uma "reputação" positiva para melhorar a entregabilidade, caso contrário, o remetente pode ser marcado como spam.
- Cada país tem seus próprios operadores 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 à utilização apenas de métodos biométricos para autenticação online. De facto, há uma diferença fundamental em comparação com 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 usados principalmente para autenticação local.
A password não é perfeita, no entanto
Como podemos ver, os "assassinos de passwords" estão essencialmente a esconder passwords ou a usar passwords como opções de fallback. Aqui está um resumo das vantagens das passwords com base na nossa discussão:
- Acessibilidade e compatibilidade: As passwords podem ser usadas em vários sistemas e são acessíveis a uma ampla gama de utilizadores.
- Custo-eficácia e versatilidade: As autenticações baseadas em passwords são geralmente mais eficazes em termos de custos do que outros métodos e adaptáveis a diferentes cenários.
- Anonimato e privacidade: As passwords permitem o uso anónimo e protegem a privacidade do usuário.
Mas cada moeda tem duas faces. Embora as passwords tenham suas vantagens, depender delas apenas para autenticação representa vulnerabilidades significativas. Podem ser desafiadoras para os usuários finais gerirem, e se os donos de sites não seguirem práticas de segurança adequadas, as passwords tornam-se fáceis de comprometer. Práticas de segurança perigosas incluem, mas não se limitam a:
- Permitir passwords fracas ou vazadas.
- Falta de imposição de HTTPS para conexões.
- Uso de algoritmos de hashing inseguros.
- Falha em aderir estritamente a padrões testados em batalha como OAuth ou OpenID Connect (OIDC).
- Expor a base de dados ao público.
Conclusão
Não pretendo minimizar qualquer um dos métodos de autenticação mencionados acima. Pelo contrário, enquanto trabalho na construção do Logto, desenvolvi um respeito profundo por esses notáveis métodos de autenticação e pelas pessoas por trás deles.
No entanto, alcançar 100% de segurança é um objetivo inatingível. O que podemos esforçar-nos é reduzir a possibilidade de ataques. Uma abordagem eficaz é combinar a autenticação baseada em passwords com passwords de uso único baseadas no dispositivo ou ambiente atual, que adiciona uma camada extra de verificação e tem sido amplamente adotada. Ao aproveitar as forças de diferentes técnicas de autenticação, podemos criar uma abordagem em camadas que oferece proteção mais forte.
Em conclusão, em vez de focar em palavras da moda como "assassino de passwords" quando as passwords não estão realmente a ser eliminadas, seria mais valioso concentrar-se em encontrar um equilíbrio entre segurança e experiência do usuário. Isso implica compreender as forças 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 perfeita.