Derivação de Chaves PBKDF2
Gere chaves criptográficas seguras a partir de senhas
Documentação PBKDF2
PBKDF2 (Password-Based Key Derivation Function 2) é um padrão criptográfico definido na RFC 8018. Ele transforma uma senha em uma chave criptográfica segura através de hash iterativo, tornando ataques de força bruta computacionalmente caros.
PBKDF2 é amplamente adotado em protocolos de segurança incluindo criptografia WiFi WPA2, proteção de dados iOS, macOS FileVault e numerosos sistemas empresariais de armazenamento de senhas. Seu status aprovado pelo NIST o torna a escolha preferida para aplicações sensíveis à conformidade.
Como o PBKDF2 Funciona
PBKDF2 aplica iterativamente uma função pseudoaleatória (HMAC-SHA256 por padrão) para gerar uma chave derivada:
- Recebe uma senha, salt, contagem de iterações e comprimento de chave desejado como entradas
- Aplica HMAC com a senha como chave e salt + contador como mensagem
- Repete a operação HMAC pelo número especificado de iterações
- Concatena os resultados intermediários para produzir a chave derivada final
Iterações Recomendadas pelo OWASP (2023)
O Open Web Application Security Project (OWASP) fornece diretrizes mínimas de iteração baseadas na força do algoritmo de hash. Esses valores são calibrados para garantir proteção adequada contra ataques de hardware modernos:
| Algoritmo de Hash | Iterações Mínimas | Recomendado |
|---|---|---|
| PBKDF2-SHA256 | 310,000 | 600,000+ |
| PBKDF2-SHA384 | 210,000 | 500,000+ |
| PBKDF2-SHA512 | 120,000 | 210,000+ |
| PBKDF2-SHA1 | 1,300,000 | Não Recomendado |
Casos de Uso Comuns
- Derivação de chaves de criptografia para AES/ChaCha20 a partir de senhas de usuários
- Armazenamento e verificação de senhas em sistemas de autenticação
- Geração de chaves determinísticas a partir de senhas mestras (gerenciadores de senhas)
- Derivação de chaves para criptografia de disco e contêineres seguros
Comparação KDF: PBKDF2 vs Bcrypt vs Argon2
| Recurso | PBKDF2 | Bcrypt | Argon2 |
|---|---|---|---|
| Padrão | RFC 8018 | OpenBSD | RFC 9106 |
| Memory-Hard | Não | Limitado (4KB) | Sim |
| Resistência a GPU | Baixo | Moderado | Alto |
| Melhor Caso de Uso | Conformidade FIPS/NIST | Sistemas legados | Novas aplicações |
Melhores Práticas de Segurança
- Sempre use um salt criptograficamente aleatório de pelo menos 16 bytes (128 bits)
- Armazene o salt junto com a chave derivada - não é um segredo
- Aumente as iterações anualmente para acompanhar os avanços de hardware
- Considere Argon2id para novos sistemas que requerem proteção memory-hard contra ataques GPU
Referências Técnicas
Ferramentas Relacionadas
Gerador de Hash de Senha
Gere e verifique hashes de senha seguros usando algoritmos Bcrypt, Scrypt e Argon2
Gerador HMAC
Gere códigos de autenticação HMAC com algoritmos MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3 e RIPEMD-160
Criptografia/Descriptografia AES
Criptografe e descriptografe texto com segurança usando o algoritmo AES
Gerador de Hash SHA
Gerador de hash SHA online suportando algoritmos SHA-1, SHA-256, SHA-384, SHA-512