RAR пароли, почему не работают радужные таблицы? - PullRequest
5 голосов
/ 29 сентября 2010

Я искал шифрование , и я видел, как несколько реализаций Rainbow Tables работают как пароли (скажем, в окнах).

Я еще не виделреализация атаки Rainbow на RAR-файл.Почему это так.Что делает шифрование RAR более безопасным и защищенным от подобных атак?

Ответы [ 5 ]

15 голосов
/ 08 августа 2012

Радужная таблица - это оптимизация для инвертирования хеш-функций: поиск пароля, когда у вас есть только хеш. Хотя в этом нет особой необходимости, я рекомендую прочитать Что такое радужные таблицы и как они используются? , что дает очень хорошее объяснение, которое устраняет некоторые распространенные заблуждения.

Существует две части шифрования RAR (или почти все, что использует пароль для шифрования некоторых данных). Во-первых, ключ шифрования получается из пароля с использованием функции получения ключа (KDF). Затем ключ шифрования используется для шифрования или дешифрования данных.

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

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

KDF преобразует строку переменной длины в ключ фиксированного размера. Ключевое свойство KDF заключается в том, что он должен различать входные строки для разных ключей. A криптографическая хеш-функция (SHA-1, SHA-256, ...) достигает этого. Когда входная строка является предоставленным человеком паролем, есть два других важных свойства, которые хеш-функция сама по себе не достигает:

  • Если два человека выбирают один и тот же пароль, они не должны иметь один и тот же ключ.
  • KDF должен быть медленным для вычисления, чтобы злоумышленник не мог найти пароль с помощью грубой силы.

Соль приобретает первое свойство. Второе свойство достигается с помощью чего-то вроде этого: взять пароль, добавить соль, хэшировать много; возьми этот хэш, добавь соль, хэш много; повторить много раз.

Радужная таблица - это оптимизация для вычисления прообразов с помощью «односторонних» функций: функций, которые легко вычислить в одном направлении, но практически невозможно инвертировать, т. Е. С учетом x легко вычислить y = f (x) но с учетом y не существует известного способа найти x, для которого y = f (x), кроме как угадать x и проверить. Хеш-функции такие. Шифрование с помощью симметричного ключа не таково: атакующий не может вычислить f больше, чем он может вычислить его обратное. Следовательно, радужные таблицы не могут помочь с нарушением симметричного шифрования.

6 голосов
/ 29 сентября 2010

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

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

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

3 голосов
/ 29 сентября 2010

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

1 голос
/ 29 сентября 2010

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

0 голосов
/ 29 сентября 2010

Андре: Соли не делают хешей труднее взломать. Поскольку соль хранится в незашифрованном виде прямо рядом с хешем, легко извлечь эту часть из взломанного хеша ...

Цель соли - убедиться, что идентичные открытые тексты все еще имеют разные хэши. Например, скажем, ваш пароль - энтропия9, а его хеш - 649acba24bab481f16ee49cdf0a40870. Теперь, если вы видите, что чужой хэш также 649acba24bab481f16ee49cdf0a40870, то вы сразу узнаете его пароль! Очевидно, что это имеет значение и в не связанных с безопасностью контекстах, например, с хэш-картами и т. Д.

...