Índice
1. Introdução
Relatos persistentes de fugas de informação de contas e palavras-passe de websites destacam a importância crítica da segurança da informação e das palavras-passe. Embora as vulnerabilidades dos websites sejam um fator, a segurança inerente da própria palavra-passe é primordial. As práticas comuns de palavras-passe inseguras incluem palavras-passe baseadas em palavras-chave, uso de frases populares, incorporação de informações pessoais e reutilização de palavras-passe. O aumento da IA e dos modelos de linguagem de grande escala capacita ainda mais os atacantes a adivinhar palavras-passe de forma mais eficaz.
Esta investigação propõe um gerador de palavras-passe seguro baseado em Geradores Pseudo-Aleatórios (PRNGs) criptograficamente seguros. Constrói PRNGs utilizando Keyed-Hash Message Authentication Code (HMAC), Cipher-based MAC (CMAC) ou KECCAK MAC (KMAC) para gerar números aleatórios seguros, que são depois utilizados para produzir palavras-passe. A aleatoriedade gerada é validada contra o padrão NIST SP 800-90B através de testes de entropia e de Independência e Distribuição Idêntica (IID).
2. Revisão da Literatura
2.1. PRNG Baseado em Gerador Congruente Linear
Comumente utilizado em linguagens como C e Java, os LCGs geram uma sequência através da relação de recorrência: $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$, iniciada por $k$. São inseguros pois o estado pode ser revertido: $f_{i-1}(k) \equiv (f_i(k) - c) \times a^{-1} \ (\text{mod} \ m)$, expondo a semente e toda a sequência.
2.2. Geradores Pseudo-Aleatórios Seguros
Os PRNGs criptográficos são projetados para serem imprevisíveis, mesmo quando parte da saída é conhecida.
2.2.1. PRNG Baseado em HMAC
A segurança baseia-se na propriedade unidirecional das funções de hash (ex., SHA2, SHA3). Para uma chave $k$ e uma mensagem $M$, o HMAC é calculado como: $r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$. O modo contador é utilizado para gerar múltiplos blocos para saídas mais longas.
2.2.2. PRNG Baseado em CMAC
A segurança baseia-se no Advanced Encryption Standard (AES). Opera em modo Cipher Block Chaining (CBC). O bloco de texto cifrado final após o processamento da mensagem preenchida serve como MAC/saída: $r_{cmac}(k, Split(M))$.
2.2.3. PRNG Baseado em KMAC
Baseado na função de hash SHA-3 (KECCAK), o KMAC fornece uma saída de comprimento variável e é considerado um forte candidato para a criptografia pós-quântica.
2.3. Métodos de Validação de Aleatoriedade
O NIST SP 800-90B fornece metodologias para avaliar fontes de entropia. A estimação de entropia quantifica a imprevisibilidade (min-entropia). O teste IID verifica se os dados são independentes e identicamente distribuídos, uma suposição chave para muitos testes estatísticos. Passar nestes valida a qualidade da fonte de aleatoriedade.
3. Gerador de Palavras-Passe Seguro Proposto
A arquitetura do sistema envolve: 1) O utilizador fornece opcionalmente uma Mensagem a Ser "Hashada" (TBHM). 2) Um PRNG criptográfico (baseado em HMAC/CMAC/KMAC) utiliza a TBHM (e uma chave) para gerar um fluxo de bits de alta entropia. 3) Este fluxo de bits é mapeado para um conjunto de caracteres definido pelo utilizador (ex., alfanuméricos + símbolos) de um comprimento especificado para produzir a palavra-passe final. A segurança é analisada comparando o espaço de busca da palavra-passe com as forças das chaves AES-128 e AES-256.
4. Experiências e Resultados
4.1. Configuração Experimental
Implementou-se os três tipos de PRNG (HMAC-SHA256, CMAC-AES-128, KMAC256). Geraram-se grandes sequências de bits aleatórios para teste.
4.2. Resultados da Validação de Aleatoriedade
Resultado Chave: Todas as três construções de PRNG propostas (HMAC, CMAC, KMAC) passaram com sucesso tanto na validação de entropia como nos testes IID de acordo com o NIST SP 800-90B. Isto demonstra empiricamente que os números gerados possuem aleatoriedade e qualidade estatística suficientes para a geração criptográfica de palavras-passe.
4.3. Análise de Desempenho
A eficiência computacional foi avaliada. Embora todos os métodos sejam viáveis, o KMAC e o HMAC podem apresentar perfis de desempenho diferentes dependendo da plataforma, sendo o CMAC baseado em AES frequentemente mais rápido em hardware com aceleração AES.
5. Conclusão e Trabalho Futuro
Este artigo apresentou uma estrutura de gerador de palavras-passe seguro construída sobre PRNGs criptográficos (HMAC, CMAC, KMAC). A aleatoriedade gerada foi validada utilizando padrões NIST, confirmando a sua adequação. Trabalho futuro inclui integrar o gerador em extensões de navegador ou gestores de palavras-passe, explorar o seu uso na geração de chaves criptográficas para além de palavras-passe, e testar a resiliência contra ataques de adivinhação emergentes baseados em IA.
6. Análise Original & Comentário de Especialista
Ideia Central: Este artigo não trata de inventar uma nova cifra; é uma solução de engenharia pragmática e conforme aos padrões para um problema humano generalizado: a criação de palavras-passe fracas. O seu valor central reside na aplicação correta de primitivas criptográficas estabelecidas (HMAC, CMAC, KMAC) como PRNGs recomendados pelo NIST e na validação rigorosa da saída — um passo frequentemente ignorado em geradores de palavras-passe "faça você mesmo". Numa era em que a IA pode modelar padrões de dados pessoais (como visto em investigação sobre adivinhação de palavras-passe com IA como o PassGAN), mudar a fonte da aleatoriedade das palavras-passe dos cérebros humanos para algoritmos criptográficos validados é uma melhoria de segurança não negociável.
Fluxo Lógico: A lógica é sólida e segue um modelo clássico de criptografia aplicada: 1) Identificar vulnerabilidade (palavras-passe fracas geradas por humanos). 2) Selecionar ferramentas criptográficas apropriadas e validadas (PRNGs do NIST SP 800-108). 3) Construir um sistema (mapear a saída do PRNG para um conjunto de caracteres). 4) Validar o componente central (saída do PRNG via NIST SP 800-90B). Esta metodologia espelha as melhores práticas no design de sistemas seguros, semelhante a como bibliotecas modernas como `libsodium` priorizam primitivas robustas e seguras por padrão.
Pontos Fortes & Fraquezas:
Pontos Fortes: A rigorosa validação NIST é o ponto mais forte do artigo, fornecendo credibilidade empírica. O uso do KMAC alinha-se com a preparação pós-quântica. A entrada opcional do utilizador (TBHM) é uma funcionalidade inteligente, permitindo a regeneração determinística da palavra-passe se necessário, sem comprometer a segurança se o PRNG for robusto.
Fraquezas: A principal limitação do artigo é o seu âmbito como prova de conceito. Falta uma análise de implementação no mundo real abordando canais laterais (ataques de temporização durante o mapeamento), gestão segura da chave para o PRNG, e desafios de integração com políticas de palavras-passe existentes. Além disso, embora compare a força da palavra-passe com o AES, não analisa profundamente a perda de entropia durante o processo de mapeamento do conjunto de caracteres, que é um detalhe crítico para palavras-passe curtas.
Insights Acionáveis: Para profissionais de segurança, a conclusão é clara: Parem de deixar os utilizadores ou funções aleatórias ingénuas escolherem palavras-passe. Implementem um gerador de palavras-passe de backend como este para redefinições de "palavra-passe esquecida" ou configuração inicial de utilizador. A escolha específica do PRNG pode ser adaptada: use CMAC-AES para velocidade em servidores comuns, KMAC para preocupações quânticas de longo prazo. Crucialmente, qualquer adoção deve incluir a gestão da semente/chave do PRNG com o mesmo rigor que qualquer chave criptográfica. Este trabalho deve ser integrado em estruturas como a OWASP's Authentication Cheat Sheet como um padrão recomendado para geração segura de palavras-passe.
7. Detalhes Técnicos & Formulação Matemática
A segurança depende das formulações do PRNG. Para HMAC:
$r_{hmac}(k, M) = h((k \oplus opad) \ || \ h((k \oplus ipad) \ || \ M))$
onde $h$ é um hash como SHA-256, $ipad/opad$ são constantes, e $k$ é a chave. Para geração de palavras-passe, um contador $i$ é incorporado em $M_i$ para gerar múltiplos blocos: $M_i = i || \text{Label} || 0x00 || \text{Context} || L$. Os bits de saída são então convertidos num índice inteiro para selecionar caracteres do conjunto $C$ de tamanho $N$: $\text{index} = \text{random_bits} \mod N$.
8. Estrutura de Análise & Exemplo de Caso
Cenário: Um serviço web precisa gerar uma palavra-passe forte de 12 caracteres para uma nova conta de utilizador.
Aplicação da Estrutura:
1. Definir Parâmetros: Conjunto de caracteres $C$ = 94 caracteres ASCII imprimíveis. Comprimento $L=12$. Escolha do PRNG: HMAC-SHA256.
2. Gerar Aleatoriedade: Recolher entropia para a semente $k$. Usar TBHM = "serviceX_user123". Executar o PRNG baseado em HMAC em modo contador para produzir $\lceil log_2(94^{12}) \rceil \approx 79$ bits de entropia.
3. Mapear para Palavra-Passe: Usar o fluxo de 79 bits para gerar 12 índices, cada um selecionando um caractere de $C$.
4. Verificação de Validação: A entropia da palavra-passe gerada é ~78.5 bits, comparável a uma chave simétrica de ~80 bits, significativamente mais forte do que qualquer palavra-passe escolhida por um humano.
Fluxo de Trabalho Sem Código: Este processo pode ser encapsulado numa chamada de API do lado do servidor, abstraindo completamente a criptografia do utilizador final.
9. Aplicações Futuras & Direções
1. Motor Central de Gestor de Palavras-Passe: Integrar este gerador como o motor padrão de criação de palavras-passe em gestores de palavras-passe de código aberto e comerciais (ex., Bitwarden, 1Password).
2. Transição Pós-Quântica: A geração baseada em KMAC é uma solução pronta para geração de palavras-passe e tokens resistentes à computação quântica, conforme recomendado pelo projeto NIST de Criptografia Pós-Quântica.
3. IoT & Segurança Embebida: Versões leves de CMAC-AES podem gerar palavras-passe de dispositivo únicas e chaves de API em ambientes com restrições.
4. Blockchain & Web3: Gerar sementes de frases mnemónicas seguras e aleatórias para carteiras de criptomoedas usando uma fonte verificavelmente aleatória.
5. Padronização: Propor esta metodologia a organismos de normalização como IETF ou FIDO para inclusão nos protocolos de autenticação de próxima geração.
10. Referências
- M. Bishop, "Computer Security: Art and Science", Addison-Wesley, 2018.
- NIST, "Special Publication 800-63B: Digital Identity Guidelines", 2017.
- M. L. Mazurek et al., "Measuring Password Guessability for an Entire University", IEEE S&P, 2013.
- B. Ur et al., "How Does Your Password Measure Up? The Effect of Strength Meters on Password Creation", USENIX Security, 2012.
- NIST, "Special Publication 800-108: Recommendation for Key Derivation Using Pseudorandom Functions", Rev. 1, 2022.
- NIST, "Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation", 2018.
- J. Kelsey, B. Schneier, D. Wagner, "Secure Applications of Low-Entropy Keys", ISW, 1997.
- FIPS PUB 202, "SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions", 2015.
- B. Hitaj et al., "PassGAN: A Deep Learning Approach for Password Guessing", NeurIPS Workshop, 2017.
- D. J. Bernstein et al., "The Security Impact of a New Cryptographic Random Number Generator", 2020.