Можно ли прочитать зашифрованный PDF-файл?

Исследователь Фабиан Айзинг на Chaos Communication Congress показал, насколько надежно шифрование в  PDF-файлах.

Исследователь Фабиан Айзинг на Chaos Communications Congress показал, насколько надежно шифрование в  PDF-файлах.

Формат файлов PDF, согласно спецификациям, поддерживает шифрование. В нем используется алгоритм AES с режимом Cipher Block Chaining. Так что в теории человек или компания, защитившие файл, могут быть уверены, что содержимое документа станет известно кому-либо только в том случае, если он знает пароль.

В продолжение исследования безопасности PDF, о котором мы уже писали, исследователь Фабиан Айзинг из Мюнстерского университета прикладных наук решил проверить, насколько надежна имплементация шифрования в этом формате. И пришел к неутешительным выводам.

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

Кто и для чего использует зашифрованные PDF на практике?

Прежде чем приступать к анализу, исследователи задались вопросом, а применяет ли кто-нибудь зашифрованные PDF на практике. Оказалось, что да. Вот что они нашли навскидку:

  • Некоторые банки таким образом обеспечивают конфиденциальность документов, пересылаемых клиентам.
  • Есть ряд плагинов, которые встраивают в почтовые клиенты возможность отправить письмо в виде зашифрованного PDF.
  • Некоторые подключаемые к интернету МФУ позволяют отправлять отсканированные документы непосредственно на почту и при выборе опции «в зашифрованном виде» применяют именно PDF, защищенные паролем.
  • Медицинские диагностические приборы также используют зашифрованные PDF для сохранения результатов исследований.
  • Кроме того, некоторые государственные учреждения принимают входящие документы в виде шифрованных PDF. Например, американский департамент правосудия поступает так с исковыми заявлениями.

Прямая эксфильтрация (атака типа direct exfiltration)

Первый вариант атаки исследователи называют «взлом шифрования в обход криптографии». Изучая документацию формата, они выяснили, что в PDF-файлах шифруется только само содержимое — объекты типов string и stream. Остальные объекты, отвечающие за структуру документа, остаются незащищенными. То есть при желании можно узнать количество и размер страниц, объектов, ссылок. А эту информацию, по большому счету, не следовало бы оставлять потенциальным злоумышленникам.

Исследователи задумались, нельзя ли добавить в материал собственный контент. Они подробнее изучили документацию стандарта и нашли любопытный момент. Оказывается, в PDF 1.5 была добавлена функция гранулярного контроля над шифрованием контента. Иными словами, он допускает частичное шифрование – можно, например, зашифровать только вышеупомянутые объекты типа string или stream. А значит, часть контента может быть незашифрованной. Более того, проверка целостности не производится.

Это позволяет добавить в зашифрованный документ что-то постороннее. В том числе функцию submit-form action, которая позволят встроить в PDF-файл форму, отправляющую данные на сторонний сайт. При желании она активируется при открытии документа (то есть сразу после введения пароля). Так вот, в качестве отправляемых данных можно указать весь зашифрованный контент файла. Так что легитимный получатель вводит пароль, содержимое расшифровывается, а потом вся информация отправляется на сторонний сайт.

Впрочем, это не единственный метод эксфильтрации — при необходимости можно встроить простое обращение к сайту злоумышленников, добавив в URL все содержимое файла. Или использовать JavaScript.

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

Криптографическая атака (Malleability attack)

Второй недостаток формата — использование известного изъяна в режиме сцепления блоков шифрования (Cipher Block Chaining, CBC) без контроля целостности. Его суть заключается в том, что если часть зашифрованной информации известна злоумышленнику, то он может изменить содержимое одного из блоков.

Согласно спецификациям формата PDF, часть шифрованных данных — 12 байт различных разрешений (раздел /Perm), которые шифруются тем же AES-ключом, что и остальной документ. Это сделано для того, чтобы злоумышленники не пытались самовольно изменять их (например, выдавая читателю возможность редактировать файл). Но в результате получается, что атакующему заранее известна часть незашифрованных данных.

В итоге он может добавить в защищенный файл все тот же механизм эксфильтрации данных, который вышлет содержимое файла на сторонний сайт.

Итог

Исследователи проверили свои методы на 23 разных программах для чтения PDF и четырех браузерах. И обнаружили, что каждая из программ хотя бы частично уязвима к одной из этих атак.

Сводная таблица уязвимостей в приложениях для чтения PDF. Источник: https://media.ccc.de/v/36c3-10832-how_to_break_pdfs

Сводная таблица уязвимостей в приложениях для чтения PDF. Источник.

К сожалению, справиться с этой проблемой непросто. Все каналы эксфильтрации данных перекрыть не удастся — это сделает использование формата бессмысленным. Исследователи связались с разработчиками программ и сообщили о существующей проблеме. Некоторые компании, в частности Apple, постарались сделать более заметным предупреждение о том, что файл обращается к стороннему сайту. Другие решили прекратить попытки «починить то, что починить невозможно». По большому счету, тут спасет только изменение стандарта.

Единственное, что мы можем порекомендовать в данной ситуации — использовать альтернативные методы передачи конфиденциальных данных. Например, зашифрованные контейнеры, которые можно создавать при помощи наших решений.

Советы

Как защитить умный дом

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