Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #62, ЯНВАРЬ 2006 г.

Ломаем текстовые хранилища

Крис Касперски

Спецвыпуск: Хакер, номер #062, стр. 062-096-5


Как и любой другой pdf, он содержит так называемый trailer dictionary (дословно «словарь прицепа» (как ты это делаешь, Крис? Всегда правой? :) -прим. Dr.), содержащий ссылки на важнейшие объекты документа, в том числе словарь шифрования (encryption dictionary), который присутствует в любом зашифрованном pdf'е и без которого его невозможно ни открыть, ни прочитать.

Trailer dictionary может быть расположен в любом месте документа (как в начале, так и в конце), но его легко обнаружить по ключевому слову «trailer», которое стоит в его начале (в нашем случае оно расположено по смещению 451h). Следом за ним идут типографские скобки <<, символизирующие собственно сам словарь. Заглянем, что там.

Здесь мы видим ссылку на объект «encrypt» с номером 457 «/Encrypt 475 0 R» (в других pdf-файлах этот номер наверняка будет иным). Дело хорошее! Поищем его с помощью HIEW'а:

Поле с именем «/Filter (имя фильтра)» специфицирует имя дескриптора безопасности, определяющего алгоритм шифрования. По умолчанию это «/Standard», однако при наличии плагинов поддерживаются и другие фильтры, из которых в первую очередь хотелось бы отметить:

- Rot13 от New Paradigm Resource Group (www.nprg.com)

Стоит $3000 за копию — мыщъху явно не по карману, то есть не по хвосту, под которым у него, как известно, находится дырка, тем более что все ключи легко обнаруживаются тривиальным контекстным поиском в теле плагина.

- FileOpen-фильтр, разработанный FileOpen Systems (www.fileopen.com)

За лицензию требует $2500 и позиционируется как «complete, secure e-publishing solution» («законченное, безопасное решение для электронных публикаций»), но в действительности все не так. FileOpen Publisher версии 2.3 шифровал «все» документы одним-единственным ключом, который не представляет для хакеров никакого секрета и хранится прямо в плагине. Начиная с версии 2.4 FileOpen Publisher использует сменные ключи, однако сам зашифрованный документ содержит всю необходимую информацию для мгновенного восстановления секретного ключа. В общем, снова все плохо.

- Фильтр SoftLock от компании SoftLock Services, Inc. (www.softlock.com)

Ушел немного дальше своих собратьев, потому что использовал для генерации ключа (SoftlockID Number) идентификатор тома жесткого диска. Пароль, введенный пользователем, должен соответствовать секретному идентификатору SoftlockID открываемого pdf-документа. Другими словами, на чужой машине свой файл не прочтешь. Издатели ликуют, а хакеры ломают книги только так! При эффективной длине пароля в 24 бита даже на догигагерцовых компьютерах он вскрывается методом тупого перебора менее чем за сутки, а если прибегнуть к оптимизированным алгоритмам — практически мгновенно.

Так что ни в каких нестандартных фильтрах нет особого смысла. Во всяком случае, пока… Впрочем, в подавляющем большинстве случаев используется фильтр типа Standard, альтернатива ему встречаются крайне редко.

Поле «/V» описывает алгоритм, используемый фильтром для шифрования. Один и тот же фильтр может использовать множество различных алгоритмов, и это поле позволяет выбрать тот или другой. Стандартный фильтр использует следующие значения:

Назад на стр. 062-096-4  Содержание  Вперед на стр. 062-096-6