RainbowCrack

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
RainbowCrack
Тип взлом хешей
Разработчик Zhu Shuanglei
Операционные системы Windows и Linux
Последняя версия 1.8 (25 августа 2020)
Сайт project-rainbowcrack.com

RainbowCrack — компьютерная программа для быстрого взлома хешей.

Является реализацией техники Филиппа Окслина faster time-memory trade-off[1], основанной на так называемых радужных таблицах. Она позволяет создать базу предсгенерированных хешей, с помощью которой можно за незначительное время взломать практически любой алфавитно-цифровой пароль заданной длины.

В то время как большинство проектов, связанных с компьютерной безопасностью, тратит много времени для взлома одного пароля шифровальных систем (полный перебор), RainbowCrack за время, сравнимое с временем взлома одного хеша простым перебором, получает таблицы хешей, по которым с очень высокой вероятностью можно в тысячи раз быстрее взломать любой хеш из проверенного диапазона[2]. Обычно хеши и алгоритм хеширования известны всем, но обратное преобразование слишком сложно. На этом основывается безопасность многих систем. Обладая отсортированной таблицей хешей и соответствующей таблицей паролей, можно получить систему, позволяющую с помощью быстрого бинарного поиска по всем таблицам выполнить обратное преобразование хеша в пароль.[3]

Стандартный клиент поддерживает следующие алгоритмы: LM, NTLM, MD5, SHA1, MYSQLSHA1, HALFLMCHALL, NTLMCHALL, ORACLE-SYSTEM и MD5-HALF; другие алгоритмы могут быть подключены в виде плагинов. [4]

Быстрая работа перебора паролей достигается ценой большого объёма радужных таблиц (для паролей до 7 символов, состоящих из букв цифр и специальных символов, объём таблиц может составлять порядка 900 Гб). Для оптимизации объёма используется следующий способ: хеши располагаются в цепочки по несколько тысяч комбинаций. Зная одну цепочку, мы можем получить следующую комбинацию из предыдущей с помощью функции хеширования. В таблицы записываются только начало и конец цепочки. Для нахождения пароля по такой таблице нужно применить к заданному хешу функцию хеширования много раз (зависит от длины цепочек) и на очередном цикле получится хеш, который является концом одной из цепочек в радужной таблице. После этого мы прогоняем эту цепочку и заново применяем функцию хеширования от начального до нужного нам хеша. После нескольких цепочек мы находим комбинацию, соответствующую заданному хешу — это и есть искомый пароль.

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

Преимущества

[править | править код]
  • Большая мощность системы расшифровки паролей.
  • Процесс расчёта таблицы может быть остановлен и позднее возобновлён.
  • При расчётах требуется мало памяти (2 МБ).
  • Входные данные занимают мало памяти (несколько байт для одной таблицы).
  • В программу, которая позволяет расшифровать пароли по полученным таблицам, можно добавлять новые алгоритмы хеширования. Таким образом, существует возможность создания собственного проекта, аналогичного RainbowCrack.

Примечания

[править | править код]
  1. Philippe Oechslin. Making a Faster Cryptanalytic Time-Memory Trade-Off // Lecture Notes in Computer Science. — 2003. — Т. 2729. — С. 617—630. — doi:10.1007/978-3-540-45146-4_36. Архивировано 4 февраля 2012 года.
  2. The Ethical Hacker Network — Tutorial: Rainbow Tables and RainbowCrack Архивировано 1 мая 2007 года.
  3. RainbowCrack — Распределённые вычисления. Дата обращения: 21 декабря 2012. Архивировано 28 сентября 2013 года.
  4. А.В. Аграновский, И.В. Мамай. O методах оптимизации алгоритма RainbowCrack в целях аудита информационной безопасности web-систем // Системы управления и информационные технологии. — 2006. — № 4.1 (26). — С. 108—111.