Атака на пользовательский ключ
Короче мы вляпались. Криптография— штука серьезная и все надежда на то, что пользователь был лох и назначил простой словарный пароль, который легко подобрать. Для этого совершенно необязательно каждый раз запускать Acrobat и вводить все словарные слова одно за другим. Это долго и непроизводительно. Будем использовать тот же самый метод аутентификации, что и сам Acrobat. Вычисляем хэш-сумму испытуемого пароля и сравниваем ее с /U-полем. На наше несчастье, хэш-сумма вычисляется по медленному алгоритму MD5 и на быстрый успех тут рассчитывать не приходится. Так же мы не можем заранее рассчитать хэш-суммы всех словарных паролей, чтобы впоследствии использовать их множестве файлов (именно так ломается NT и некоторые другие криптосистемы). Хитрые разработчики pdf'а использовали привязку к идентификатору документа и потому все хэш-суммы строго индивидуальны. Короче придется попотеть.
Для 40-битного шифрования есть крохотная лазейка, позволяющая нам гарантированно подобрать ключ шифрования не более чем за 30 дней на P-III. Для вскрытия электронных книг и других документов это вполне приемлемый срок. Атака получила название "Key search" (поиск ключей) и вот в чем состоит ее суть.
Ранние версии Acrobat'а (вплоть до 4.х) поддерживали всего лишь 40-битное шифрование (PDF 1.2/1.3), следовательно, независимо от длины введенного пароля, мы имеем всего лишь 2^40 (1.099.511.627.776) ключей. Разбиваем все пространство ключей на блоки, обрабатываемые независимо друг от друга на одном или нескольких компьютерах, до тех пор пока не найдем единственный правильный ключ. Легендарный Advanced PDF Password Recovery от Elcomsoft именно так и поступает. Если же ждать совсем невмоготу и хочется открыть файл как можно скорее, необходимо использовать большое количество мощных машин, или… напрячь свои мозговые клетки. Как уже говорилось криптоанализ не стоит на месте и алгоритм шифрования RC4 скомпрометировал себя уже не раз и не два. Используя предвычисленные таблицы можно подобрать ключ за очень короткое время можно даже сказать практически мгновенное (подробнее об этом можно прочитать в моих статьях, посвященных взлому беспроводных сетей и голубого зуба — там используется схожая технология шифрование).
Единственный минус — предвычисленные таблицы требуют очень много памяти, а если ее нет, приходится делать своп на диск и "мгновенные" секунды растягиваются в часы или даже дни. В своей презентации Дмитрий Скляров приводит следующие оценки времени поиска 40-битных ключей на 450MHZ P-III:
ревизия фильтра \ тип пароля |
User |
Owner |
ревизия 1,2 |
190,000 1xMD5 + 1xRC4 |
100,000 2xMD5 + 2xRC4 |
ревизия 3 |
3,250 51xMD5 + 20xRC4 |
1,610 102xMD5 + 40xRC4 |