Argon2
O que é Argon2?
Argon2Função moderna de hashing de palavras-passe e KDF com custo de memória, vencedora do Password Hashing Competition 2015 e padronizada na RFC 9106.
O Argon2 é uma função de derivação de chaves e hashing de palavras-passe com custo de memória, projetada por Biryukov, Dinu e Khovratovich, selecionada como vencedora do Password Hashing Competition de 2015 e padronizada pela RFC 9106. Existe em três variantes: Argon2d (indexação dependente dos dados, a mais rápida, mas com padrões de acesso à memória que dependem do segredo e por isso vazam por canais laterais), Argon2i (independente dos dados, resistente a canais laterais mas mais fraca contra ataques de troca tempo-memória) e a recomendada Argon2id (uma híbrida que usa a indexação do Argon2i na primeira metade da primeira passagem e a do Argon2d a partir daí).
A sua segurança vem de preencher um grande bloco de memória que deve ser retido durante todo o cálculo. Essa dureza de memória é a vantagem-chave sobre os esquemas mais antigos: um cracker em GPU ou ASIC pode executar milhares de núcleos de hash paralelos e baratos, mas não consegue fornecer de forma barata a cada núcleo centenas de mebibytes de RAM rápida, pelo que o Argon2 aumenta o custo por tentativa muito mais do que o PBKDF2 ou mesmo o bcrypt (que usa apenas ~4 KiB). Os parâmetros ajustáveis são o custo de memória (m), o tempo/iterações (t), o paralelismo (p) e o comprimento da saída.
A RFC 9106 recomenda dois perfis: uma opção de alta memória de m=2 GiB, t=1, p=4, e uma opção com memória limitada de m=64 MiB, t=3, p=4. A OWASP Password Storage Cheat Sheet indica uma base conservadora para servidores web de Argon2id, m=19456 (19 MiB), t=2, p=1. Combine sempre o Argon2 com um salt aleatório único por palavra-passe e ajuste os parâmetros ao seu orçamento de latência.
flowchart LR P[Palavra-passe] --> H[Argon2id] S[Salt aleatorio unico] --> H PARAMS[m custo de memoria<br/>t iteracoes<br/>p paralelismo] --> H H --> MEM[Preenche grande bloco de memoria<br/>custo de memoria] MEM --> O[Hash / chave derivada] MEM -. aumenta o custo .-> GPU[Cracking GPU/ASIC<br/>torna-se caro]
● Exemplos
- 01
Armazenar palavras-passe de utilizadores com Argon2id (m=64 MiB, t=3, p=1).
- 02
Derivar uma chave de cifra simétrica a partir de uma passphrase numa ferramenta de cifragem de disco.
● Perguntas frequentes
O que é Argon2?
Função moderna de hashing de palavras-passe e KDF com custo de memória, vencedora do Password Hashing Competition 2015 e padronizada na RFC 9106. Pertence à categoria Criptografia da cibersegurança.
O que significa Argon2?
Função moderna de hashing de palavras-passe e KDF com custo de memória, vencedora do Password Hashing Competition 2015 e padronizada na RFC 9106.
Como se defender contra Argon2?
As defesas contra Argon2 costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Argon2?
Nomes alternativos comuns: Argon2id, Vencedor do PHC.