EMZETT.
Войти

Радужные таблицы (rainbow tables)

Коротко: Радужные таблицы — это заранее вычисленные таблицы поиска, с помощью которых по хэшу пароля быстро восстанавливают пароль. Соль делает их бесполезными.

Подробнее: Вместо того чтобы каждый раз перебирать все пароли, они меняют память на время вычислений: заранее вычисляются цепочки из шагов хэширования и редукции, а хранятся только начало и конец.

Подробности

  • Идея: Цепочка пароль → хэш → пароль' → хэш → … хранится как (начало, конец). При взломе цепочка строится заново от целевого хэша, пока не совпадёт конечная точка, затем восстанавливается от начала.
  • Контрмера — соль: Случайное дополнительное значение для каждого пользователя превращает одинаковые пароли в разные хэши. Таблицы пришлось бы пересчитывать для каждой соли. См. безопасное хранение паролей.
  • Медленные методы: Argon2, bcrypt и scrypt делают каждую попытку дорогой.
  • Сегодня: Против несолёных устаревших хэшей (MD5, SHA-1, см. MD5 и SHA-1) они всё ещё работают. Для стойких паролей практичнее словарные атаки на GPU.
  • Урок: Никогда не хранить пароли с быстрым несолёным хэшем.

См. также: Хэширование