Selecionar idioma

Avaliação de Segurança da Geração, Armazenamento e Preenchimento Automático em Gestores de Palavras-passe Baseados no Navegador

Uma análise de segurança abrangente de 13 gestores de palavras-passe populares, avaliando a aleatoriedade da geração, a segurança do armazenamento e as vulnerabilidades do preenchimento automático.
computationalcoin.com | PDF Size: 1.0 MB
Avaliação: 4.5/5
Sua avaliação
Você já avaliou este documento
Capa do documento PDF - Avaliação de Segurança da Geração, Armazenamento e Preenchimento Automático em Gestores de Palavras-passe Baseados no Navegador

1. Introdução

A autenticação baseada em palavra-passe continua a ser o método dominante para a autenticação na web, apesar dos seus desafios de segurança bem documentados. Os utilizadores enfrentam uma carga cognitiva na criação e memorização de palavras-passe fortes e únicas, o que leva à reutilização de palavras-passe e à criação de credenciais fracas. Os gestores de palavras-passe prometem aliviar esta carga, gerando, armazenando e preenchendo automaticamente palavras-passe. No entanto, a sua segurança tem sido questionada em investigações anteriores. Este artigo apresenta uma avaliação de segurança atualizada e abrangente de treze gestores de palavras-passe populares baseados no navegador, cinco anos após a última divulgação de vulnerabilidades significativas. O estudo abrange todo o ciclo de vida do gestor de palavras-passe: geração, armazenamento e preenchimento automático.

2. Metodologia e Âmbito

A avaliação abrangeu treze gestores de palavras-passe, incluindo cinco extensões de navegador (por exemplo, LastPass, 1Password), seis gestores integrados no navegador (por exemplo, Chrome, Firefox) e dois clientes de desktop para comparação. A metodologia envolveu:

  • Gerar e analisar um corpus de 147 milhões de palavras-passe para avaliar a aleatoriedade e a robustez.
  • Replicar e estender avaliações anteriores sobre a segurança do armazenamento de palavras-passe.
  • Testar os mecanismos de preenchimento automático para vulnerabilidades como clickjacking e XSS.
  • Avaliar as configurações de segurança padrão e as práticas de encriptação.

3. Análise da Geração de Palavras-passe

Esta é a primeira análise abrangente dos algoritmos de geração de palavras-passe em gestores de palavras-passe.

3.1. Distribuição de Caracteres e Aleatoriedade

A análise do corpus de 147 milhões de palavras-passe revelou várias instâncias de distribuições de caracteres não aleatórias nas palavras-passe geradas. Alguns gestores exibiram tendências na seleção de caracteres, desviando-se de uma distribuição aleatória uniforme. Para um gerador verdadeiramente aleatório, a probabilidade de selecionar qualquer caractere de um conjunto de tamanho $N$ deve ser $P(caractere) = \frac{1}{N}$. Desvios disto indicam falhas algorítmicas.

3.2. Vulnerabilidade a Ataques de Adivinhação

A descoberta mais crítica foi que um subconjunto das palavras-passe geradas era vulnerável a ataques de força bruta:

  • Adivinhação Online: Palavras-passe com menos de 10 caracteres revelaram-se fracas contra ataques online com limitação de taxa.
  • Adivinhação Offline: Palavras-passe com menos de 18 caracteres eram suscetíveis a tentativas de quebra offline após uma violação de base de dados, onde um atacante pode fazer tentativas ilimitadas.

Isto contradiz a promessa central dos gestores de palavras-passe de criar palavras-passe fortes.

4. Segurança do Armazenamento de Palavras-passe

Embora tenham sido notadas melhorias em comparação com as avaliações de há cinco anos, persistem problemas significativos.

4.1. Encriptação e Tratamento de Metadados

Verificou-se que vários gestores de palavras-passe armazenavam metadados em formato não encriptado. Isto inclui URLs de sites, nomes de utilizador e timestamps. Embora a própria palavra-passe possa estar encriptada, estes metadados fornecem um mapa valioso para atacantes, revelando as contas online e os hábitos de um utilizador, que podem ser usados para ataques de phishing direcionado ou engenharia social.

4.2. Configurações Padrão Inseguras

Certos gestores tinham configurações padrão inseguras, como ativar o preenchimento automático em todos os sites por defeito ou usar protocolos de encriptação mais fracos. Isto coloca o ónus da segurança nos utilizadores para descobrir e alterar estas configurações, o que a maioria não faz.

5. Vulnerabilidades do Mecanismo de Preenchimento Automático

A funcionalidade de preenchimento automático, concebida para conveniência, introduz uma superfície de ataque significativa.

5.1. Clickjacking e Disfarce de Interface (UI Redressing)

Vários gestores de palavras-passe eram vulneráveis a ataques de clickjacking. Um atacante poderia criar uma página web maliciosa com camadas invisíveis que enganam um utilizador para clicar na caixa de diálogo de preenchimento automático do gestor de palavras-passe, revelando assim as credenciais ao site do atacante em vez do site legítimo pretendido.

5.2. Riscos de Cross-Site Scripting (XSS)

Os mecanismos de preenchimento automático que injetam credenciais em formulários de páginas web sem verificações rigorosas de origem podem ser explorados através de vulnerabilidades XSS em sites de outra forma confiáveis. Se um site benigno tiver uma falha XSS, um script injetado poderia acionar o gestor de palavras-passe para preencher credenciais num campo de formulário oculto controlado pelo atacante.

6. Resultados e Análise Comparativa

Tamanho do Corpus

147M

Palavras-passe Analisadas

Gestores Testados

13

Navegador e Desktop

Falha Crítica

<18 carac.

Vulnerável a Quebra Offline

Conclusão Principal: O panorama melhorou desde estudos anteriores (por exemplo, Li et al., 2014; Silver et al., 2013), mas falhas de segurança fundamentais persistem em múltiplos fornecedores. Nenhum gestor de palavras-passe foi impecável em todas as três fases avaliadas (geração, armazenamento, preenchimento automático). Os gestores integrados no navegador e as extensões dedicadas exibiram padrões distintos de vulnerabilidades.

7. Recomendações e Direções Futuras

O artigo conclui com recomendações acionáveis:

  • Para Utilizadores: Evitar gestores de palavras-passe com falhas de geração conhecidas ou configurações de preenchimento automático inseguras por defeito. Preferir gestores que permitam controlo granular sobre o comportamento de preenchimento automático.
  • Para Programadores: Implementar geradores de números aleatórios criptograficamente seguros (CSPRNGs) para a geração de palavras-passe. Encriptar todos os metadados. Implementar verificações robustas de origem e mecanismos de consentimento do utilizador para o preenchimento automático (por exemplo, exigir um clique num elemento não sujeito a disfarce de interface).
  • Para Investigadores: Explorar a integração de métodos formais para verificar a lógica de preenchimento automático e a aplicação de aprendizagem automática para detetar pedidos de preenchimento automático anómalos indicativos de um ataque.

8. Análise Original e Comentário de Especialistas

Ideia Central: O estudo de Oesch e Ruoti apresenta uma verificação da realidade sóbria: as ferramentas de segurança em que confiamos para consolidar as nossas chaves digitais foram elas próprias construídas com bases alarmantemente frágeis. Cinco anos após a exposição de grandes falhas, o progresso da indústria é incremental na melhor das hipóteses, falhando em abordar questões sistémicas em todos os três pilares fundamentais—geração, armazenamento e preenchimento automático. Isto não é apenas um relatório de erros; é uma acusação de complacência num setor crítico de segurança.

Fluxo Lógico: O poder do artigo reside na sua abordagem holística do ciclo de vida. Identifica corretamente que uma corrente é tão forte quanto o seu elo mais fraco. Encontrar não aleatoriedade na geração ($P(caractere) \neq \frac{1}{N}$) mina fundamentalmente toda a premissa antes mesmo de se considerar o armazenamento ou o preenchimento automático. A replicação de testes anteriores de armazenamento/preenchimento automático mostra então um padrão: embora vulnerabilidades superficiais possam ser corrigidas, falhas arquitetónicas (como metadados não encriptados ou preenchimento automático promíscuo) persistem. Esta progressão lógica, desde a criação defeituosa até ao manuseio inseguro e à implementação arriscada, pinta um quadro completo e condenatório.

Pontos Fortes e Fracos: A principal força do estudo é a sua abordagem massiva e baseada em dados para a geração de palavras-passe—uma primeira na literatura. O corpus de 147 milhões de palavras-passe fornece evidência estatística irrefutável de fraqueza algorítmica, indo além de preocupações teóricas. No entanto, a análise tem um ponto cego: trata os gestores de palavras-passe em grande parte como clientes isolados. A realidade moderna é a sincronização na nuvem e as aplicações móveis. Como observado nos procedimentos do IEEE Symposium on Security and Privacy sobre modelos de segurança na nuvem, a superfície de ameaça estende-se aos protocolos de sincronização, APIs do lado do servidor e integração com o sistema operativo móvel, que este estudo não avalia. Além disso, embora mencione "configurações padrão inseguras", não quantifica a taxa de adoção pelos utilizadores das configurações seguras—um fator crítico no risco do mundo real, como os estudos de usabilidade da conferência USENIX SOUPS mostram consistentemente que a maioria dos utilizadores nunca altera as configurações padrão.

Ideias Acionáveis: Para equipas de segurança empresarial, esta investigação obriga a uma mudança de recomendações gerais de "use um gestor de palavras-passe" para orientações específicas por fornecedor e configuração. Gestores com geradores fracos devem ser colocados na lista negra. As listas de verificação de aquisições devem agora incluir a verificação do uso de CSPRNG e da encriptação de metadados. Para programadores, o caminho a seguir é claro: adotar um princípio de "confiança zero" para o preenchimento automático, exigindo consentimento explícito e contextual do utilizador para cada ação de preenchimento, semelhante aos modelos de permissão defendidos pelo World Wide Web Consortium (W3C) para APIs web poderosas. O futuro não está em tentar proteger perfeitamente um preenchimento automático excessivamente permissivo, mas em conceber um preenchimento minimamente permissivo e controlado pelo utilizador. O fracasso da indústria em autocorrigir-se ao longo de cinco anos sugere que a intervenção regulatória ou de organismos de normalização (por exemplo, pelo NIST ou FIDO Alliance) pode ser necessária para impor requisitos de segurança de base para estes guardiões da nossa identidade digital.

9. Detalhes Técnicos e Resultados Experimentais

Análise da Geração de Palavras-passe: A entropia $H$ de uma palavra-passe gerada de comprimento $L$ a partir de um conjunto de caracteres $C$ é idealmente $H = L \cdot \log_2(|C|)$ bits. O estudo encontrou instâncias em que a entropia efetiva era menor devido a uma seleção de caracteres tendenciosa. Por exemplo, se um gerador pretendia usar um conjunto de 94 caracteres, mas certos caracteres apareciam com probabilidade $p \ll \frac{1}{94}$, a entropia real é reduzida: $H_{real} = -\sum_{i=1}^{94} p_i \log_2(p_i)$ por caractere, onde $\sum p_i = 1$.

Descrição do Gráfico Experimental: Um gráfico-chave no estudo traçaria a fração cumulativa de palavras-passe quebradas em relação ao número de tentativas de adivinhação (escala logarítmica) para palavras-passe geradas de diferentes comprimentos (por exemplo, 8, 12, 16 caracteres). A curva para palavras-passe com menos de 10 caracteres mostraria um aumento acentuado, indicando comprometimento rápido sob simulações de ataque online (por exemplo, 1000 tentativas). A curva para palavras-passe com menos de 18 caracteres mostraria uma fração significativa quebrada após $10^{10}$ a $10^{12}$ tentativas de adivinhação offline, colocando-as dentro da capacidade de atacantes determinados com hardware moderno, conforme referenciado por ferramentas como Hashcat e rainbow tables.

10. Estrutura de Análise e Estudo de Caso

Estrutura para Avaliar a Segurança do Gestor de Palavras-passe:

  1. Integridade da Geração: Testar estatisticamente a saída para aleatoriedade (por exemplo, testes NIST STS, Dieharder) e calcular a entropia efetiva. Verificar se as configurações padrão de comprimento mínimo estão alinhadas com as diretrizes atuais do NIST (>= 12 caracteres).
  2. Segurança do Armazenamento: Inspecionar o armazenamento local (por exemplo, IndexedDB do navegador, ficheiros SQLite) e o tráfego de rede para dados encriptados vs. em texto simples. Auditar a biblioteca de encriptação e a função de derivação de chave (por exemplo, está a usar PBKDF2 com iterações suficientes, ou Argon2?).
  3. Postura de Segurança do Preenchimento Automático: Mapear o mecanismo de acionamento do preenchimento automático. Testar para disfarce de interface criando iframes sobrepostos. Testar a lógica de correspondência de origem implementando sites com nomes de domínio semelhantes (por exemplo, `example.com` vs. `example.com.evil.net`). Verificar se o preenchimento automático requer um gesto do utilizador num elemento da página não previsível.

Estudo de Caso - Vulnerabilidade de Clickjacking: Considere o Gestor X, que mostra um botão de preenchimento automático sobre um formulário de login. Um atacante cria uma página maliciosa com um iframe invisível a carregar `bank.com`. O iframe é posicionado de modo que o botão de preenchimento automático do Gestor X apareça sobre um botão oculto "enviar-para-atacante" na página maliciosa. O utilizador clica para preencher automaticamente, mas em vez disso clica no botão do atacante, enviando as credenciais do `bank.com` para o servidor do atacante. Isto demonstra uma falha na vinculação do evento de clique e na validação de origem do gestor.

11. Aplicações Futuras e Perspetivas de Investigação

As descobertas abrem várias vias para trabalho futuro:

  • Geração e Armazenamento Suportados por Hardware: Integração com Módulos de Plataforma Confiável (TPMs) ou Secure Enclaves (por exemplo, Secure Element da Apple) para gerar sementes aleatórias e armazenar chaves de encriptação, movendo segredos para fora de domínios puramente de software.
  • Preenchimento Automático Consciente do Contexto e Baseado no Risco: Aproveitar a aprendizagem automática para analisar o contexto da página (estrutura DOM, detalhes do certificado, reputação do site) para avaliar o risco de preenchimento automático. Um contexto de alto risco poderia exigir autenticação adicional (biométrica) ou bloquear totalmente o preenchimento automático.
  • APIs de Segurança Padronizadas: Desenvolvimento de uma API padronizada e com permissões para gestores de palavras-passe (por exemplo, um sucessor da API `chrome.loginState`) que forneça acesso seguro e em sandbox às credenciais com prompts claros de consentimento do utilizador, reduzindo a superfície de ataque da injeção arbitrária no DOM.
  • Preparação para a Criptografia Pós-Quântica: Investigação sobre a migração da encriptação dos gestores de palavras-passe para algoritmos resistentes a ataques de computadores quânticos, uma vez que o cofre encriptado é um ativo de longa duração altamente atrativo para adversários que colhem agora e desencriptam mais tarde.
  • Modelos Descentralizados e de Autocustódia: Explorar o uso de protocolos de identidade descentralizados (por exemplo, baseados em Credenciais Verificáveis do W3C) para reduzir a dependência de um cofre central, distribuindo o risco e dando maior controlo aos utilizadores.

12. Referências

  1. Oesch, S., & Ruoti, S. (2020). That Was Then, This Is Now: A Security Evaluation of Password Generation, Storage, and Autofill in Browser-Based Password Managers. USENIX Security Symposium.
  2. Li, Z., He, W., Akhawe, D., & Song, D. (2014). The Emperor's New Password Manager: Security Analysis of Web-based Password Managers. IEEE Symposium on Security and Privacy (SP).
  3. Silver, D., Jana, S., Boneh, D., Chen, E., & Jackson, C. (2013). Password Managers: Attacks and Defenses. USENIX Security Symposium.
  4. National Institute of Standards and Technology (NIST). (2017). Digital Identity Guidelines (SP 800-63B).
  5. Stock, B., & Johns, M. (2013). Protecting the Intranet Against "JavaScript Malware" and Related Attacks. International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment (DIMVA).
  6. Herley, C. (2009). So Long, And No Thanks for the Externalities: The Rational Rejection of Security Advice by Users. Proceedings of the New Security Paradigms Workshop (NSPW).
  7. World Wide Web Consortium (W3C). (2021). Permissions Policy. https://www.w3.org/TR/permissions-policy-1/
  8. FIDO Alliance. (2022). FIDO2: WebAuthn & CTAP. https://fidoalliance.org/fido2/