Todos os artigos

PBKDF2: o padrão mais antigo de alongamento de chave

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.

Experimentar a ferramenta