Введение

Набор данных для взлома паролей. Радужная таблица — это предварительно вычисленная таблица для кэширования результатов криптографической хеш-функции, обычно используемая для взлома хешей паролей. Пароли обычно хранятся не в виде обычного текста, а в виде хеш-значений. Если такая база данных хешированных паролей попадает в руки злоумышленника, он может использовать предварительно вычисленную радужную таблицу для восстановления исходных паролей. Распространенной защитой от этой атаки является вычисление хешей с использованием функции вывода ключа, которая добавляет "соль" к каждому паролю перед хешированием, при этом разные пароли получают разные соли, которые хранятся в открытом виде вместе с хешем. Радужные таблицы являются практическим примером компромисса между временем и объемом памяти: они требуют меньше вычислительного времени и больше памяти, чем перебор, который вычисляет хеш при каждой попытке, но больше вычислительного времени и меньше памяти, чем простая таблица, хранящая хеш каждого возможного пароля. Радужные таблицы были изобретены Филиппом Оechслином.

Предыстория

Для аутентификации пользователей пароли хранятся либо в виде обычного текста, либо в виде хешей. Поскольку пароли, хранящиеся в виде обычного текста, легко украсть при компрометации доступа к базе данных, базы данных обычно хранят хеши. Таким образом, никто, включая систему аутентификации, не может узнать пароль, просто просмотрев значение, хранящееся в базе данных. Когда пользователь вводит пароль для аутентификации, для него вычисляется хеш, который затем сравнивается с сохраненным хешем этого пользователя. Аутентификация не удается, если два хеша не совпадают; более того, аутентификация также не удастся, если в качестве пароля будет введен хеш, поскольку система аутентификации повторно хеширует его. Чтобы восстановить пароль из хеша, необходимо найти строку, которая при вводе в хеш-функцию создает тот же хеш. Это эквивалентно инвертированию хеш-функции. Хотя для попытки инвертирования хеш-функции могут использоваться атаки грубой силы (например, атаки по словарю), они могут стать невыполнимыми, если набор возможных паролей достаточно велик. Альтернативой грубой силе является использование предварительно вычисленных таблиц хеш-цепочек. Радужные таблицы – это особый вид таких таблиц, который решает определенные технические проблемы.

Этимология

Термин "радужные таблицы" впервые был использован в первоначальной работе Оэкслина. Этот термин относится к способу использования различных функций сведения для повышения вероятности успеха атаки. Оригинальный метод Хеллмана использует множество небольших таблиц, каждая из которых имеет свою функцию сведения. Радужные таблицы значительно больше и используют различную функцию сведения в каждом столбце. Когда цвета используются для представления функций сведения, в радужной таблице появляется радуга. На рисунке 2 в работе Оэкслина представлена черно-белая графика, иллюстрирующая взаимосвязь этих секций. Для своей презентации на конференции Crypto 2003 Оэчслин добавил цвет к графике, чтобы сделать ассоциацию с радугой более наглядной. Улучшенная графика, представленная на конференции, показана на иллюстрации.

Общее применение

Почти все дистрибутивы и варианты Unix, Linux и BSD используют хэши с солью, хотя многие приложения используют только хэш (обычно MD5) без соли. Семейство Microsoft Windows NT/2000 использует метод хеширования LAN Manager и NT LAN Manager (основанный на MD4) и также не использует соль, что делает его одним из наиболее часто генерируемых наборов таблиц. Использование радужных таблиц снизилось с 2020 года, поскольку применение соли стало более распространенным, а брутфорс-атаки на основе GPU стали более эффективными. Однако радужные таблицы доступны для восьми- и девятисимвольных паролей NTLM.