Что такое радужная атака? [закрытый]

Я читал несколько статей о солях и хэшах паролей, и несколько человек упоминали rainbow attacks. Что такое радужная атака и каковы наилучшие методы ее предотвращения?

7 ответов


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

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

когда злоумышленник крадет у вас длинный список хэшей паролей, он может быстро проверить, есть ли какой-либо из них в таблице Rainbow. Для тех, кто есть, таблица Rainbow также будет содержать строку, из которой они были хэшированы.

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


Это когда кто-то использует Радужный таблице для взлома паролей.

Если вы беспокоитесь об этом, вы должны использовать соль. Существует также Stack Overlow вопрос что может помочь вам понять соль немного лучше, чем Википедия...


Это полезная статья о Rainbow Tables для мирянина. (Не предполагая, что вы непрофессионал, но это хорошо написано и лаконично.)


поздно на вечеринку, но я также знал, что радужные таблицы являются методом атаки на хэшированные / несоленые пароли. Однако в Twitter недавно http://codahale.com/how-to-safely-store-a-password/ был разделен и в зависимости от ваших потребностей и проблем.. возможно, вы не сможете солить свой путь к безопасному хранению паролей.

Я надеюсь, что это информативно для вас.


Википедия - ваш друг:

http://en.wikipedia.org/wiki/Rainbow_table


вообще говоря, вы шифруете огромное количество возможных коротких строк открытого текста (т. е. для паролей) и храните зашифрованные значения рядом с открытым текстом. Это делает его (относительно) простым для простого поиска открытого текста, когда у вас есть зашифрованное значение.

Это очень полезно для слабых и/или несоленых хэшей пароль. Популярный пример -диспетчер LAN хэш, используется версиями Windows до XP для хранения пользователя пароли.

обратите внимание, что предварительно вычисленная радужная таблица даже для чего-то простого, как LM-хэш, занимает много времени процессора для генерации и занимает достаточное пространство (порядка 10s гигабайт IIRC).


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

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

лучшая защита от такого рода атак-использовать соль (случайные символы) в вашем пароле. т. е. вместо хранения md5 (пароль), хранить md5 (пароль + соль), или даже лучше md5(соль + md5 (пароль)).

поскольку даже с радужными таблицами будет почти невозможно хранить все возможные соленые хэши.

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