Selecionar idioma

Gerador de Palavras-Passe Seguro Baseado em Gerador de Números Pseudoaleatórios (PRNG)

Um artigo de pesquisa que propõe um gerador de palavras-passe seguro utilizando PRNGs baseados em HMAC, CMAC ou KMAC, validado através dos testes de entropia e IID do NIST SP 800-90B.
computationalcoin.com | PDF Size: 0.5 MB
Avaliação: 4.5/5
Sua avaliação
Você já avaliou este documento
Capa do documento PDF - Gerador de Palavras-Passe Seguro Baseado em Gerador de Números Pseudoaleatórios (PRNG)

Índice

1. Introdução

Esta investigação aborda o problema persistente de fugas de palavras-passe e o consequente risco de exposição de dados pessoais. Embora a segurança dos websites seja um fator, a força intrínseca da própria palavra-passe é primordial. As vulnerabilidades comuns incluem palavras-passe baseadas em palavras-chave, frases populares, informações do utilizador e reutilização de palavras-passe. O aumento da IA e dos modelos de linguagem de grande escala capacita ainda mais os atacantes para adivinhar palavras-passe de forma mais eficaz.

Em resposta, este artigo propõe um gerador de palavras-passe seguro construído sobre um Gerador de Números Pseudoaleatórios (PRNG) seguro. O núcleo do PRNG é construído utilizando primitivas criptográficas como HMAC, CMAC ou KMAC para gerar números aleatórios de alta qualidade, que são depois usados para criar palavras-passe. O sistema permite uma entrada opcional do utilizador (Mensagem a Ser *Hashada*, TBHM) para iniciar o processo. As principais contribuições são:

2. Revisão da Literatura

2.1. Gerador de Números Pseudoaleatórios Baseado no Gerador Congruencial Linear

As linguagens de programação comuns (C, Java) usam Geradores Congruenciais Lineares (LCG). Dada uma semente $k$, a sequência é gerada como: $f_0(k) \equiv a \oplus k \ (\text{mod} \ m)$ e $f_i(k) \equiv a \times f_{i-1}(k) + c \ (\text{mod} \ m)$. Este método é inseguro 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. Gerador de Números Pseudoaleatórios Seguro

Os PRNGs seguros baseiam-se em primitivas criptográficas conforme delineado no NIST SP 800-108 Rev. 1.

2.2.1. Baseado em HMAC

A segurança depende da propriedade unidirecional das funções *hash* (por exemplo, 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))$. Para gerar um fluxo de bits aleatório de comprimento $L$, é usado um modo de contador: $M_i = i \ || \ \text{KDF} \ || \ 0x00 \ || \ M \ || \ L$, produzindo saídas $r_{hmac,i}$.

2.2.2. Baseado em CMAC

A segurança depende da cifra de bloco AES no modo CBC. A mensagem $M$ é dividida em blocos $M'_1, M'_2, ...$. O processo itera: $c_{i+1} = AES(k, c_i \oplus M'_{i+1})$ com $c_0 = Pad0(0)$. A saída final $r_{cmac}$ é derivada do último bloco cifrado após um preenchimento específico (Pad1).

2.2.3. Baseado em KMAC

Utiliza a função esponja KECCAK (a base do SHA-3), oferecendo uma função MAC flexível e robusta adequada para gerar bits aleatórios determinísticos.

2.3. Métodos para Validação da Aleatoriedade

O artigo adota a estrutura do NIST SP 800-90B, que é o padrão de facto para validar fontes de entropia. Inclui dois conjuntos de validação críticos:

3. Gerador de Palavras-Passe Seguro Proposto

A arquitetura do sistema proposto é simples, mas poderosa:

  1. Entrada/Semente: Aceita uma TBHM fornecida opcionalmente pelo utilizador. Se for fornecida, é processada; caso contrário, é usada uma semente segura gerada pelo sistema.
  2. Núcleo do PRNG Seguro: A TBHM/semente é alimentada a uma das três construções criptográficas de PRNG (baseada em HMAC, baseada em CMAC, baseada em KMAC) para gerar uma sequência de bits pseudoaleatórios criptograficamente forte.
  3. Construção da Palavra-Passe: Os bits aleatórios são mapeados para um conjunto de caracteres definido pelo utilizador ou pelo sistema (por exemplo, alfanumérico + símbolos) para produzir uma palavra-passe do comprimento desejado.

Análise de Segurança: O artigo argumenta que a segurança da palavra-passe gerada depende diretamente da entropia da saída do PRNG e do tamanho do conjunto de caracteres. Realiza uma análise comparativa, mostrando que uma palavra-passe de 16 caracteres de um conjunto de 94 caracteres gerada por este método pode oferecer resistência a ataques de força bruta comparável ou superior à das chaves AES-128 ou AES-256, assumindo que a saída do PRNG é verdadeiramente aleatória.

4. Resultados Experimentais e Análise

A validação experimental é um ponto forte chave do artigo.

Descrição do Gráfico (Implícita): Um gráfico de barras compararia eficazmente as estimativas de min-entropia (em bits por bit) para os três métodos de PRNG contra o valor ideal de 1,0. Todas as barras estariam muito próximas de 1,0. Um segundo gráfico poderia mostrar os valores-p dos principais testes IID (por exemplo, Qui-Quadrado, Kolmogorov-Smirnov), com todos os valores bem acima do limiar de significância típico (por exemplo, 0,01), indicando uma aprovação.

5. Conclusão e Trabalho Futuro

A investigação demonstra com sucesso uma estrutura de geração de palavras-passe segura baseada em PRNGs criptográficos. Os métodos propostos geram palavras-passe com aleatoriedade suficiente, conforme validado rigorosamente pelos padrões NIST. As direções de trabalho futuro incluem:

6. Análise Original & Perspetiva de Especialista

Perspetiva Central: Este artigo não trata de inventar uma nova primitiva criptográfica; trata-se da aplicação e validação disciplinadas de primitivas existentes e validadas (HMAC, CMAC, KMAC) para resolver o problema mundano, mas crítico, da geração de palavras-passe. O seu valor real reside em colmatar o fosso entre a criptografia teórica e a higiene de segurança prática, provando rigorosamente que a sua saída é adequada para o propósito utilizando o conjunto de testes padrão-ouro do NIST.

Fluxo Lógico: O argumento é sólido: 1) Os LCGs padrão são criptograficamente quebrados. 2) Os PRNGs seguros construídos a partir de MACs criptográficos são comprovadamente robustos. 3) Portanto, as palavras-passe derivadas de tais PRNGs herdam essa robustez. 4) Esta afirmação é validada não apenas pela teoria, mas pela aprovação em testes empíricos rigorosos (NIST SP 800-90B). Esta validação de ponta a ponta é o que falta a muitas ferramentas de "gerador de palavras-passe seguro".

Pontos Fortes & Fraquezas:
Pontos Fortes: O rigor metodológico é louvável. Usar o NIST SP 800-90B para validação eleva imediatamente a sua credibilidade, semelhante à forma como os algoritmos criptográficos são validados através do CAVP (Programa de Validação de Algoritmos Criptográficos). A comparação com a força da chave AES é uma métrica prática e relacionável para equipas de segurança.
Fraquezas: O artigo opera num ambiente controlado e idealizado. Assume que a semente/TBHM inicial tem entropia suficiente — um elo crítico e frequentemente fraco em sistemas reais. A entrada "opcional" do utilizador é uma faca de dois gumes; uma frase de utilizador fraca e previsível (por exemplo, "minhapalavrapasse") poderia minar toda a construção criptográfica, um risco não totalmente quantificado. Além disso, como observado na revisão de 2023 "Criptografia Pós-Quântica: Uma Jornada de Dez Anos" do NIST, o campo está a mover-se para algoritmos resistentes à computação quântica. As construções do artigo, embora seguras contra computadores clássicos, dependem de SHA2/AES, cuja resistência quântica a longo prazo é incerta.

Perspetivas Acionáveis: Para arquitetos de segurança, este artigo fornece um modelo. Não crie o seu próprio PRNG. Use construções criptográficas estabelecidas como blocos de construção. Mais importante, valide, valide, valide. Integre a validação contínua de entropia (como os testes NIST) nos seus sistemas críticos de geração de números aleatórios, uma prática enfatizada por organizações como os esforços de CCC (Certificação de Critérios Comuns) da Linux Foundation. Para o desenvolvimento de produtos, a lição imediata é substituir qualquer geração de palavras-passe baseada em LCG nos seus sistemas por um gerador baseado em KMAC ou HMAC-SHA256, usando uma semente obtida de forma segura. O passo de preparação para o futuro é começar a prototipar com desenhos baseados em SHA-3/KECCAK (como KMAC) e monitorizar a evolução dos padrões de criptografia pós-quântica do NIST para eventual integração.

7. Detalhes Técnicos & Formulação Matemática

As operações matemáticas centrais são definidas na Revisão da Literatura (Secção 2). As fórmulas-chave incluem:

A geração da palavra-passe mapeia um inteiro aleatório $R$ (da saída do PRNG) para um índice de caractere: $\text{índice} = R \ \text{mod} \ |S|$, onde $|S|$ é o tamanho do conjunto de caracteres.

8. Estrutura de Análise & Exemplo de Caso

Exemplo de Caso: Avaliar o Gerador de Palavras-Passe de um Sistema Legado
Cenário: Uma aplicação web legada usa um LCG modificado para gerar palavras-passe temporárias de utilizador. É necessária uma auditoria de segurança.
Aplicação da Estrutura:

  1. Identificar o Tipo de PRNG: Inspecionar o código-fonte. Encontrar: seed = (a * seed + c) % m; Confirmar que é uma variante de LCG.
  2. Avaliar a Segurança Criptográfica: O LCG é determinístico e reversível. Um atacante que obtenha algumas palavras-passe consecutivas poderia resolver para a semente e prever todas as palavras-passe futuras, violando as diretrizes do NIST SP 800-63B sobre aleatoriedade do autenticador.
  3. Propor Remediação usando o Método do Artigo:
    • Fonte da Semente: Substituir a semente de hora do sistema por um CSPRNG (por exemplo, /dev/urandom no Linux, CryptGenRandom no Windows).
    • Gerador Central: Implementar um PRNG baseado em HMAC-SHA256 conforme o desenho do artigo.
    • Validação: Gerar uma amostra grande (1.000.000 bits) do novo gerador e executar o NIST STS (Conjunto de Testes Estatísticos) ou os estimadores de entropia do SP 800-90B para verificar a aleatoriedade antes da implementação.
Esta estrutura muda a avaliação de "parece aleatório?" para "passa na validação criptográfica padronizada?".

9. Aplicações Futuras & Direções de Desenvolvimento

Os princípios estendem-se para além das palavras-passe de utilizador:

10. Referências

  1. M. Bishop, “Computer Security: Art and Science”, Addison-Wesley, 2019.
  2. NIST, “Special Publication 800-63B: Digital Identity Guidelines”, 2020.
  3. NIST, “Special Publication 800-90B: Recommendation for the Entropy Sources Used for Random Bit Generation”, 2018.
  4. NIST, “Special Publication 800-108 Rev. 1: Recommendation for Key Derivation Using Pseudorandom Functions”, 2022.
  5. NIST, “FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions”, 2015.
  6. J. Kelsey, B. Schneier, D. Wagner, “Secure Applications of Low-Entropy Keys”, Information Security Workshop, 1997.
  7. M. Dworkin, “Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication”, NIST SP 800-38B, 2005.
  8. NIST, “Status Report on the Third Round of the NIST Post-Quantum Cryptography Standardization Process”, 2022. [Online]. Disponível: https://csrc.nist.gov/projects/post-quantum-cryptography
  9. Linux Foundation, “Common Criteria Certification and Open Source”, 2023. [Online]. Disponível: https://www.linuxfoundation.org/