Argon2
Что такое Argon2?
Argon2Современная memory-hard функция хеширования паролей и KDF, победитель Password Hashing Competition 2015 и стандарт RFC 9106.
Argon2 — это memory-hard функция деривации ключей и хеширования паролей, разработанная Бирюковым, Дину и Ховратовичем, выбранная победителем Password Hashing Competition 2015 и стандартизованная в RFC 9106. Она существует в трёх вариантах: Argon2d (индексирование, зависящее от данных, самая быстрая, но с шаблонами доступа к памяти, которые зависят от секрета и потому утекают через побочные каналы), Argon2i (не зависит от данных, устойчива к побочным каналам, но слабее против атак по схеме «время-память») и рекомендуемый Argon2id (гибрид, использующий индексирование Argon2i для первой половины первого прохода и Argon2d далее).
Её безопасность достигается за счёт заполнения большого блока памяти, который должен удерживаться на протяжении всего вычисления. Эта жёсткость по памяти — ключевое преимущество перед старыми схемами: GPU- или ASIC-взломщик может запускать тысячи дешёвых параллельных хеш-ядер, но он не может дёшево выделить каждому ядру сотни мебибайт быстрой RAM, поэтому Argon2 повышает стоимость одной попытки гораздо сильнее, чем PBKDF2 или даже bcrypt (который использует лишь ~4 КиБ). Настраиваемые параметры: затраты по памяти (m), время/итерации (t), параллелизм (p) и длина вывода.
RFC 9106 рекомендует два профиля: вариант с большим объёмом памяти m=2 GiB, t=1, p=4 и вариант с ограниченной памятью m=64 MiB, t=3, p=4. OWASP Password Storage Cheat Sheet даёт консервативную базовую конфигурацию для веб-сервера: Argon2id, m=19456 (19 МиБ), t=2, p=1. Всегда сочетайте Argon2 с уникальной случайной солью на каждый пароль и настраивайте параметры под ваш бюджет задержки.
flowchart LR P[Пароль] --> H[Argon2id] S[Уникальная случайная соль] --> H PARAMS[m затраты по памяти<br/>t итерации<br/>p параллелизм] --> H H --> MEM[Заполнение большого блока памяти<br/>memory-hard] MEM --> O[Производный хеш / ключ] MEM -. повышает стоимость .-> GPU[Взлом на GPU/ASIC<br/>становится дорогим]
● Примеры
- 01
Хранение паролей пользователей с Argon2id (m=64 МиБ, t=3, p=1).
- 02
Деривация симметричного ключа шифрования из пользовательской парольной фразы в инструменте шифрования диска.
● Частые вопросы
Что такое Argon2?
Современная memory-hard функция хеширования паролей и KDF, победитель Password Hashing Competition 2015 и стандарт RFC 9106. Относится к категории Криптография в кибербезопасности.
Что означает Argon2?
Современная memory-hard функция хеширования паролей и KDF, победитель Password Hashing Competition 2015 и стандарт RFC 9106.
Как защититься от Argon2?
Защита от Argon2 обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Argon2?
Распространённые альтернативные названия: Argon2id, Победитель PHC.