PBKDF2 ou Argon2id: comparar as funções de derivação de chave

O QUE É UMA FUNÇÃO DE DERIVAÇÃO DE CHAVE?

Uma função de derivação de chave (KDF - Key Derivation Function) é um algoritmo que transforma uma palavra-passe numa chave criptográfica adequada às operações de cifragem. Ao contrário das funções de hash comuns, as KDF são concebidas especificamente para resistir a ataques de força bruta e de dicionário, tornando o processo intencionalmente lento e exigente em recursos.

PBKDF2: UMA NORMA COMPROVADA

Como funciona o PBKDF2

O PBKDF2 (Password-Based Key Derivation Function 2) é uma função de derivação normalizada que tem dado provas ao longo de muitos anos. O seu funcionamento assenta em três elementos-chave:

  1. Função de hash subjacente: O PBKDF2 utiliza uma função como SHA-256 ou HMAC para realizar operações criptográficas repetidas.
  2. Sal criptográfico: É acrescentado à palavra-passe um sal aleatório único, para impedir a utilização de tabelas pré-calculadas (rainbow tables).
  3. Iterações: O PBKDF2 aplica a função de hash milhares ou mesmo milhões de vezes, o que aumenta consideravelmente o tempo necessário para testar cada palavra-passe possível.

Vantagens do PBKDF2 no Sigalion Vault

  • Compatibilidade universal: Enquanto norma reconhecida (RFC 2898), o PBKDF2 é suportado por praticamente todas as plataformas e bibliotecas criptográficas.
  • Validação rigorosa: Utilizado e testado há décadas, as suas propriedades de segurança são bem conhecidas.
  • Flexibilidade de parâmetros: O número de iterações pode ser ajustado à evolução do poder de cálculo.

ARGON2ID: UMA ALTERNATIVA ROBUSTA E MODERNA

O Argon2 venceu em 2015 a "Password Hashing Competition", uma competição internacional que visava criar uma nova norma de hash de palavras-passe. A variante Argon2id, utilizada no Sigalion Vault, combina o melhor das abordagens Argon2i (resistência a ataques de canal lateral) e Argon2d (resistência máxima a ataques por GPU).

Como funciona o Argon2id

O Argon2id distingue-se por três parâmetros configuráveis:

  1. Tempo de execução: Semelhante às iterações do PBKDF2, define a duração do cálculo.
  2. Memória necessária: O Argon2id consome deliberadamente uma quantidade significativa de RAM, o que torna muito mais caros os ataques por hardware especializado.
  3. Paralelismo: O número de threads utilizadas, que otimiza a utilização em processadores multinúcleo, mantendo uma forte resistência aos ataques.

Vantagens do Argon2id no Sigalion Vault

  • Resistência a ataques por hardware: Graças às suas exigências de memória, o Argon2id torna exponencialmente mais caros os ataques com GPU, FPGA ou ASIC.
  • Proteção contra vários métodos de ataque: A variante "id" oferece um bom equilíbrio entre a segurança contra ataques de canal lateral e contra a força bruta.
  • Adaptabilidade: Os parâmetros podem ser ajustados para manter um nível de segurança constante face à evolução tecnológica.

PORQUÊ UTILIZAR DUAS FUNÇÕES DE DERIVAÇÃO NO SIGALION VAULT?

O Sigalion Vault implementa tanto o PBKDF2 como o Argon2id, por várias razões estratégicas:

  1. Compatibilidade e migração: O PBKDF2 garante a compatibilidade com os sistemas existentes e permite uma migração gradual para o Argon2id.
  2. Defesa em profundidade: Utilizar dois algoritmos diferentes proporciona uma proteção adicional. Se fosse descoberta uma vulnerabilidade num deles, o outro continuaria a proteger os seus dados.
  3. Adaptação aos contextos de utilização: O PBKDF2 pode ser mais adequado a dispositivos com recursos limitados, enquanto o Argon2id oferece uma segurança máxima em sistemas com memória suficiente.

OTIMIZAÇÃO E EXPERIÊNCIA DO UTILIZADOR: UM EQUILÍBRIO DELICADO

A escolha e a configuração das funções de derivação de chave não se resumem à robustez contra ataques. É fundamental ter em conta o impacto no desempenho da aplicação e, por conseguinte, na experiência do utilizador.

Um número excessivo de iterações no PBKDF2, ou parâmetros de memória e de tempo de execução demasiado elevados no Argon2id, podem provocar atrasos percetíveis na autenticação. Se esse atraso se tornar excessivo, pode degradar a experiência do utilizador e frustrar os utilizadores.

É por isso que o Sigalion Vault procura um equilíbrio ideal. Os parâmetros predefinidos são escolhidos para oferecer um elevado nível de segurança, garantindo ao mesmo tempo uma autenticação rápida na maioria dos casos de utilização.

A aplicação foi concebida para fazer evoluir estes parâmetros ao longo do tempo. Esta abordagem proativa permite manter um nível ótimo de segurança face à evolução das ameaças e das capacidades de cálculo, garantindo que a autenticação continua rápida e fluida, para uma experiência de utilização ideal.