Хотя вы можете подумать о Rainbow Tables как об эклектичной красочной мебели, мы не будем обсуждать это. Радужные таблицы, о которых мы говорим, используются для взлома паролей и являются еще одним инструментом в постоянно растущем арсенале хакера .
Что такое «Радужные столы»? Как что-то с таким милым и приятным названием может быть таким вредным?
Основная концепция за радужными столами
Мы плохой парень, который только что подключил флэш-накопитель к серверу или рабочей станции, перезагрузил его и запустил программу, которая копирует файл базы данных безопасности, содержащий имена пользователей и пароли, на наш флэш-диск.
Пароли в файле зашифрованы, поэтому мы не можем их прочитать. Нам придется взломать пароли в файле (или, по крайней мере, пароль администратора), чтобы мы могли использовать их для доступа к системе.
Какие есть варианты взлома паролей? Мы можем попытаться использовать программу взлома паролей методом «грубой силы », такую как Джон Потрошитель, которая разбирает файл паролей, пытаясь итеративно угадать каждую возможную комбинацию пароля. Второй вариант — загрузить словарь для взлома паролей, содержащий сотни тысяч часто используемых паролей, и посмотреть, получит ли он какие-либо попадания. Эти методы могут занять недели, месяцы или даже годы, если пароли достаточно надежны.
Когда пароль «проверяется» в системе, он «хешируется» с использованием шифрования, поэтому действительный пароль никогда не передается в виде открытого текста через линию связи. Это предотвращает перехват пароля перехватчиками. Хеш пароля обычно выглядит как куча мусора и, как правило, отличается от исходного пароля. Ваш пароль может быть shitzu, но хэш вашего пароля будет выглядеть примерно так: 7378347eedbfdd761619451949225ec1 .
Для проверки пользователя система берет значение хеш-функции, созданное функцией хеширования пароля на клиентском компьютере, и сравнивает его со значением хеш-функции, хранящимся в таблице на сервере. Если хэши совпадают, то пользователь проходит аутентификацию и получает доступ.
Хэширование пароля — это односторонняя функция, это означает, что вы не можете расшифровать хэш, чтобы увидеть, что такое открытый текст пароля. Нет ключа для расшифровки хэша после его создания. Нет «кольца декодера», если хотите.
Программы для взлома паролей работают аналогично процессу входа в систему. Программа взлома запускается с получения незашифрованных паролей, запуска их с помощью алгоритма хеширования, такого как MD5, а затем сравнивает результат хеширования с хешами в украденном файле паролей. Если он находит совпадение, программа взломала пароль. Как мы уже говорили, этот процесс может занять очень много времени.
Войдите в Радужные Столы
Радужные таблицы — это в основном огромные наборы предварительно вычисленных таблиц, заполненных значениями хеша, которые предварительно сопоставляются с возможными незашифрованными паролями. Радужные таблицы, по сути, позволяют хакерам полностью изменить функцию хеширования, чтобы определить, какой пароль может быть открытым. Возможно, что два разных пароля приведут к одному и тому же хешу, поэтому не важно выяснить, каким был исходный пароль, при условии, что он имеет одинаковый хеш. Пароль в виде открытого текста может даже не совпадать с паролем, созданным пользователем, но до тех пор, пока хеш совпадает, не имеет значения, какой был первоначальный пароль.
Использование Радужных таблиц позволяет взламывать пароли за очень короткое время по сравнению с методами грубой силы, однако компромисс заключается в том, что для хранения Радужных таблиц требуется много места (иногда терабайтового размера). Сами по себе хранилища в наши дни многочисленны и дешевы, так что этот компромисс не такой большой, как десять лет назад, когда терабайтные накопители нельзя было купить в местной Best Buy.
Хакеры могут приобрести предварительно вычисленные таблицы Rainbow для взлома паролей уязвимых операционных систем, таких как Windows XP, Vista, Windows 7, и приложений, использующих MD5 и SHA1 в качестве механизма хеширования паролей (многие разработчики веб-приложений по-прежнему используют эти алгоритмы хеширования).
Как защитить себя от парольных атак на основе таблиц Rainbow
Мы хотели бы получить лучший совет по этому вопросу для всех. Мы хотели бы сказать, что более надежный пароль поможет, но это не совсем так, потому что проблема не в слабости пароля, а в слабости, связанной с функцией хеширования, используемой для шифрования пароля.
Лучший совет, который мы можем дать пользователям, — избегать веб-приложений, ограничивающих длину вашего пароля небольшим количеством символов. Это явный признак уязвимых процедур аутентификации пароля старой школы. Увеличенная длина и сложность пароля могут немного помочь, но это не гарантированная форма защиты. Чем длиннее ваш пароль, тем больше будет Радужных таблиц, чтобы взломать его, но хакер с большим количеством ресурсов все еще может это сделать.
Наш совет о том, как защититься от Rainbow Tables, действительно предназначен для разработчиков приложений и системных администраторов. Они находятся на переднем крае, когда речь заходит о защите пользователей от атак такого типа.
Вот несколько советов разработчиков по защите от атак Rainbow Table:
- Не используйте MD5 или SHA1 в функции хеширования пароля. MD5 и SHA1 являются устаревшими алгоритмами хэширования паролей, и большинство радужных таблиц, используемых для взлома паролей, созданы для целевых приложений и систем, использующих эти методы хэширования. Подумайте об использовании более современных методов хеширования, таких как SHA2.
- Используйте криптографическую «соль» в своей процедуре хеширования пароля . Добавление криптографической соли в функцию хеширования паролей поможет защитить от использования таблиц Rainbow, используемых для взлома паролей в вашем приложении. Чтобы увидеть некоторые примеры кодирования того, как использовать криптографическую соль, чтобы помочь «Rainbow-Proof» вашему приложению, пожалуйста, посетите сайт WebMasters By Design, на котором есть отличная статья по этой теме.