A partir do lançamento do FreeBSD pkg 2.8.0, o SHA-256 será gradualmente descontinuado e o Blake2b será usado para checksums (medida pós-quântica?)

9 min

language: ja bn en es hi pt ru zh-cn zh-tw

Olá, sou um incompetente.
Ao ver o lançamento do freebsd/pkg na linha do tempo do Github, deparei-me com o caractere Blake2b.

https://github.com/freebsd/pkg/releases#release-2.8.0

  • Blake2b usado sempre que possível para checksums; os repositórios usam blake2 em vez de sha256

O próprio Blake2b parece ter sido incluído e lançado no GNU coreutils em 2016.

O que é o Blake2b afinal?

Como só tinha pesquisado brevemente antes e apenas o reconhecia como um algoritmo de hash, verifiquei rapidamente.

Implementei o Blake2 (Blake2b) em Rust #Security - Qiita

Existem dois tipos de Blake2: a versão normal Blake2b e a versão reduzida Blake2s. O Blake2b é para 64 bits e o Blake2s é para 8~32 bits.

Entendi.

RFC:
RFC 7693 - The BLAKE2 Cryptographic Hash and Message Authentication Code (MAC)

É também o que é usado para o hash de senha do Argon2. Será que a substituição futura por aqui será usar Argon2 para implementações que atualmente usam bcrypt para hash de senha, e usar Blake2 para implementações que atualmente usam SHA-256 para hash criptográfico, tornando-se o design moderno? Como já existem implementações que substituíram cada um deles, e implementações que usam Argon2 recentemente são bastante comuns, acho que é possível. Dito isto, md5sum e similares ainda são usados como hashes rápidos e leves, e são convenientes apenas para verificar a integridade de forma simples. Na verdade, até o WebSocket menciona o uso de SHA-1 no handshake do WebSocket na RFC, mas como não faz sentido mudar isso na implementação do WS, também está documentado.

O handshake do WebSocket descrito neste documento não depende das propriedades de segurança do SHA-1 (como resistência a colisões ou resistência a ataques de segunda pré-imagem) (conforme descrito em [RFC4270]).

RFC 6455 - The WebSocket Protocol

Como já posso discutir essa dúvida, perguntei ao ChatGPT (GPT 5.6).
Em conclusão, a migração para Argon2 é apropriada como modernização, mas como hash criptográfico, parece que apenas mais um meio foi adicionado.
No entanto, o fato de o FreeBSD ter mudado o uso de checksum no pkg foi algo bastante surpreendente, então talvez se torne um padrão em um futuro não tão distante?

Abaixo, a pergunta para o GPT 5.6


P. A transição de implementações que atualmente usam bcrypt para Argon2 para hash de senha, e de implementações que usam SHA-256 para Blake2 para hash criptográfico, está se tornando um design moderno?

R. Sim, para armazenamento de senhas, bcrypt → Argon2id pode ser considerado uma "modernização". Por outro lado, a transição de SHA-256 → BLAKE2 para hashes criptográficos de uso geral não é necessariamente uma simples substituição geracional.

Para senhas, a prioridade atual é geralmente a seguinte:

Uso Tradicional Recomendação Atual
Armazenamento de senha bcrypt Argon2id
Alternativa para armazenamento de senha PBKDF2 / scrypt Argon2id / scrypt
Hash geral SHA-256 SHA-256 / SHA-3 / BLAKE2 / BLAKE3
MAC HMAC-SHA256 HMAC-SHA256 / keyed BLAKE2
Verificação rápida de integridade SHA-256 BLAKE2 / BLAKE3

A OWASP também coloca o Argon2id como a primeira escolha para novos sistemas, e posiciona o bcrypt principalmente para sistemas existentes. O Argon2id é um memory-hard KDF que pode incorporar o uso de memória como custo de ataque, além da carga da CPU, por isso é vantajoso em relação ao bcrypt contra ataques de força bruta de senha que tentam muitas vezes usando GPU/ASIC. (OWASP Cheat Sheet Series)

Por exemplo, em uma nova implementação, uma configuração como:

password
   ↓
Argon2id(
    salt = random 128bit,
    memory = 64 MiB,
    iterations = 3,
    parallelism = conforme necessário
)
   ↓
$argon2id$v=19$m=65536,t=3,p=...

é natural. A RFC 9106 também recomenda o Argon2id. (Editor RFC)

Por outro lado,

SHA-256 → BLAKE2

é um pouco diferente.

Isso não significa que o SHA-256 ficou antigo e perigoso.

Atualmente, não se conhecem ataques práticos de colisão ou de pré-imagem para o SHA-256, e ele continua sendo suficientemente forte para usos criptográficos comuns.

As vantagens do BLAKE2 são principalmente:

Rápido
+
Alta segurança
+
Possui keyed hashing como padrão
+
Fácil de implementar

Portanto,

Antigo                  Moderno
bcrypt      ───────→ Argon2id
                 ↑
Bastante claro SHA-256 ───────→ BLAKE2 ↑ Não é necessariamente uma substituição

é a forma mais próxima de entender.

Na verdade, no design atual, o moderno é escolher de acordo com o propósito, como mostrado abaixo:

Password
 └─ Argon2id
Cryptographic digest
 ├─ SHA-256
 ├─ SHA-3
 ├─ BLAKE2
 └─ BLAKE3
Message authentication
 ├─ HMAC-SHA256
 └─ keyed BLAKE2

Especialmente em softwares novos que você mesmo projeta, se não houver restrições como compatibilidade de protocolo, eu acho que é bom pensar da seguinte forma:

Password hashing
→ Argon2id
Hash rápido geral
→ BLAKE2b / BLAKE3
Foco em compatibilidade com padrões/protocolos externos
→ SHA-256
MAC
→ HMAC-SHA256
  ou keyed BLAKE2

Além disso, o importante são o BLAKE2 e o BLAKE3. Se o objetivo de um novo design for "querer usar um hash rápido mais novo que o SHA-256", em 2026, você deve incluir não apenas o BLAKE2, mas também o BLAKE3 como candidatos. O BLAKE3 é extremamente rápido para paralelização, SIMD e hashing de grandes volumes de dados.

No entanto,

SHA-256 → BLAKE3

também não é sobre "descartar o SHA-256 por segurança", mas sim uma escolha para obter benefícios de desempenho e design de API.

Em suma, as duas perguntas não estão no mesmo nível:

bcrypt → Argon2id

Uma direção para modernizar claramente o design de segurança.

SHA-256 → BLAKE2/BLAKE3

Não é uma migração obrigatória por segurança, mas uma escolha feita em novos designs considerando desempenho e facilidade de uso.

Existe essa diferença. Se expandirmos para "o que escolher se for projetar uma API do zero em 2026, incluindo autenticação, assinatura, criptografia e hash de arquivos", focar em Argon2id / BLAKE3 / XChaCha20-Poly1305 / Ed25519 / X25519 resultará em uma configuração bastante moderna.

Related Posts