A LGPD (Lei Geral de Proteção de Dados) brasileira exige que quem trata dados pessoais adote "medidas de segurança técnicas e administrativas aptas a proteger os dados pessoais", sem citar um algoritmo específico. A ANPD (Autoridade Nacional de Proteção de Dados) e boas práticas do setor apontam funções de derivação de chave como PBKDF2 como um exemplo concreto dessa exigência genérica quando o assunto é armazenar senhas.
O princípio do alongamento de chave
Em vez de hashear uma senha uma única vez, o PBKDF2 aplica uma função hash base (geralmente HMAC-SHA256) muitas milhares de vezes seguidas, usando o resultado de cada iteração como entrada da próxima. Isso desacelera deliberadamente o cálculo de um único hash, tornando a força bruta em massa significativamente mais cara para um atacante.
PBKDF2 no Wi-Fi: WPA2
Um dos usos mais difundidos do PBKDF2 no mundo é a derivação da chave de criptografia do Wi-Fi a partir da senha da rede no padrão WPA2-PSK: a senha passa por PBKDF2-HMAC-SHA1 com 4096 iterações, usando o nome da rede (SSID) como sal, gerando uma chave de 256 bits. É por isso que uma senha de Wi-Fi curta é tão vulnerável a um ataque de força bruta offline após a captura de um único "handshake".
Por que essa ferramenta exige HTTPS
Esta ferramenta calcula o PBKDF2 usando a Web Crypto API nativa do navegador em vez de uma implementação manual em JavaScript. Os navegadores só expõem crypto.subtle em um "contexto seguro" — HTTPS, ou localhost durante o desenvolvimento — então, sem uma conexão criptografada, esta e qualquer outra ferramenta criptográfica do site simplesmente não funcionam, independente do poder do dispositivo.
Para que serve
- Derivar chaves criptográficas a partir de senhas para criptografia (por exemplo, no WPA2/WPA3 para Wi-Fi).
- Manter compatibilidade com sistemas legados que usam PBKDF2 para armazenamento de senhas.
- Entender por que o número de iterações recomendado continua crescendo nas novas versões dos padrões.
A escolha da função hash base importa
Implementações antigas do PBKDF2 costumavam usar HMAC-SHA1 por padrão — o próprio SHA-1 é considerado criptograficamente enfraquecido para hash direto, mas dentro da construção HMAC essa fraqueza não é uma vulnerabilidade crítica. Ainda assim, as recomendações atuais indicam claramente HMAC-SHA256 ou HMAC-SHA512 — não por uma ameaça direta do SHA-1, mas porque uma saída mais longa e uma função mais moderna oferecem uma margem de segurança maior sem perda perceptível de velocidade.