Начиная с релиза FreeBSD pkg 2.8.0, SHA-256 постепенно выводится из эксплуатации, а Blake2b будет использоваться для контрольных сумм (защита от квантовых компьютеров?)
Привет, я некомпетентен.
Когда в ленте GitHub появился релиз freebsd/pkg, мне на глаза случайно попалось слово Blake2b.
https://github.com/freebsd/pkg/releases#release-2.8.0
- Blake2b используется везде, где это возможно, для контрольных сумм; репозитории используют blake2 вместо sha256
Сам по себе Blake2b, по-видимому, был включен в GNU coreutils и выпущен еще в 2016 году.
Что вообще такое Blake2b?
Я лишь мельком изучал это раньше и знал только то, что это один из алгоритмов хеширования, поэтому решил немного уточнить.
Реализация Blake2 (Blake2b) на Rust #Security - Qiita
Существует два типа Blake2: обычная версия Blake2b и уменьшенная версия Blake2s. Blake2b предназначен для 64-битных систем, а Blake2s — для 8–32-битных.
Понятно.
RFC:
RFC 7693 - Криптографическая хеш-функция BLAKE2 и код аутентификации сообщений (MAC)
Это также используется для хеширования паролей в Argon2. Станет ли современным стандартом проектирования замена текущих реализаций на bcrypt на Argon2 для хеширования паролей, а текущих реализаций на SHA-256 на Blake2 для криптографических хешей? Поскольку я уже вижу немало реализаций, использующих Argon2, я думаю, что это вполне возможно. С другой стороны, md5sum до сих пор используется как легкий и быстрый хеш, и он удобен для простой проверки целостности. Более того, даже в WebSocket в рукопожатии (Handshake) предполагается использование SHA-1, как указано в RFC, но в реализации для WS в этом нет особого смысла, поэтому это также задокументировано.
Рукопожатие WebSocket, описанное в этом документе, не зависит от свойств безопасности SHA-1 (таких как устойчивость к коллизиям или устойчивость к атакам на второй прообраз) (описано в [RFC4270]).
Я решил обсудить этот вопрос с ChatGPT (GPT 5.6).
Вывод заключается в том, что переход на Argon2 является правильным шагом для модернизации, но в качестве криптографического хеша это просто еще один инструмент в арсенале.
Однако тот факт, что FreeBSD переключила использование checksum в pkg, довольно удивителен, так что, возможно, в недалеком будущем это станет стандартом?
Ниже приведен вопрос к GPT 5.6.
В. Станет ли современным стандартом проектирования замена текущих реализаций на bcrypt на Argon2 для хеширования паролей, а текущих реализаций на SHA-256 на Blake2 для криптографических хешей?
О. Да, переход с bcrypt на Argon2id для хранения паролей можно смело назвать «модернизацией». С другой стороны, переход с SHA-256 на BLAKE2 для универсальных криптографических хешей не обязательно является простой сменой поколений.
Для паролей в настоящее время действуют следующие приоритеты:
| Назначение | Ранее | Текущая рекомендация |
|---|---|---|
| Хранение паролей | bcrypt | Argon2id |
| Альтернатива хранению паролей | PBKDF2 / scrypt | Argon2id / scrypt |
| Общие хеши | SHA-256 | SHA-256 / SHA-3 / BLAKE2 / BLAKE3 |
| MAC | HMAC-SHA256 | HMAC-SHA256 / keyed BLAKE2 |
| Быстрая проверка целостности | SHA-256 | BLAKE2 / BLAKE3 |
OWASP также делает Argon2id первым выбором для новых систем, а bcrypt позиционирует в основном для существующих систем. Argon2id — это memory-hard KDF (функция формирования ключа, требовательная к памяти), которая включает объем используемой памяти в стоимость атаки, поэтому она конструктивно выгоднее bcrypt против атак перебором паролей с использованием GPU/ASIC. (OWASP Cheat Sheet Series)
Например, для новой реализации естественной является такая конфигурация:
пароль
↓
Argon2id(
salt = случайные 128 бит,
memory = 64 МБ,
iterations = 3,
parallelism = по необходимости
)
↓
$argon2id$v=19$m=65536,t=3,p=...RFC 9106 также рекомендует Argon2id. (RFC Editor)
С другой стороны,
SHA-256 → BLAKE2это немного другое.
SHA-256 не устарел и не стал опасным.
Для SHA-256 в настоящее время не известны практические атаки на коллизии или атаки на прообраз, и он остается достаточно мощным для обычных криптографических целей.
Преимущества BLAKE2 в основном заключаются в следующем:
высокая скорость
+
высокая безопасность
+
стандартная поддержка keyed hashing
+
легкость реализацииПоэтому,
старое современное
bcrypt ───────→ Argon2id
↑Довольно четко
SHA-256 ───────→ BLAKE2
↑
Не обязательно замена
— это понимание ближе к истине.
Скорее, в современной архитектуре
Password
└─ Argon2id
Cryptographic digest
├─ SHA-256
├─ SHA-3
├─ BLAKE2
└─ BLAKE3
Message authentication
├─ HMAC-SHA256
└─ keyed BLAKE2
современным подходом является выбор алгоритма под конкретную задачу, как показано выше.
В частности, если вы проектируете новое программное обеспечение с нуля и не ограничены требованиями совместимости протоколов, я считаю, что лучше всего придерживаться следующей логики:
Password hashing
→ Argon2id
Общее быстрое хеширование
→ BLAKE2b / BLAKE3
Совместимость с внешними стандартами/протоколами
→ SHA-256
MAC
→ HMAC-SHA256
или keyed BLAKE2
И здесь важны BLAKE2 и BLAKE3. Если ваша цель при новом проектировании — «использовать более быстрый хеш, чем SHA-256», то по состоянию на 2026 год следует рассматривать не только BLAKE2, но и BLAKE3. BLAKE3 чрезвычайно быстр благодаря распараллеливанию, SIMD и эффективности при работе с большими объемами данных.
Однако,
SHA-256 → BLAKE3
— это не столько «отказ от SHA-256 по соображениям безопасности», сколько
выбор в пользу преимуществ производительности и дизайна API.
Другими словами, эти два вопроса не равнозначны:
bcrypt → Argon2id
Направление явной модернизации архитектуры безопасности.
SHA-256 → BLAKE2/BLAKE3
Это не обязательный переход по соображениям безопасности, а выбор, основанный на производительности и удобстве использования при новом проектировании.
В этом заключается разница.
Если расширить вопрос до «что выбрать, если проектировать API с нуля в 2026 году, включая аутентификацию, подписи, шифрование и хеширование файлов», то использование Argon2id / BLAKE3 / XChaCha20-Poly1305 / Ed25519 / X25519 в качестве основы обеспечит весьма современную конфигурацию.