Главная » Софт » Несколько способов подделки PDF с цифровой подписью

Несколько способов подделки PDF с цифровой подписью

Рис. 1. Процедура инкрементального сохранения, на которой основаны цифровые подписи PDF. По результатам тестирования, это самый эффективный способ подделки документов

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

Защита от всех атак обеспечивается только в единственной программе, да и та работает под Linux.

Рис. 2. Структура документа PDF

При инкрементальном сохранении изменений в PDF-документ добавляются новые объекты в body, а также новая таблица Xref с описанием новых объектов и новый trailer со ссылками на catalog (см. Структура документа PDF изображена на рис. 2. Каталог — это корневой объект PDF-файла, он определяет структуру документа и может дополнительно определять разрешения на доступ. рис. 1).

Каждый объект начинается с номера объекта и номера версии, который увеличивается при каждом обновлении объекта.

Рис. 2. Структура объекта PDF
Добавление цифровой подписи в PDF-документ полагается на механизм инкрементального сохранения (см. рис. 1). При добавлении подписи во время инкрементального сохранения в документ добавляется следующий контент:

  • новый Catalog с новый параметром Perms, который определяет разрешения на изменение документа; этот параметр ссылается на объект Signature;
  • объект Signature (5 0 obj) с информацией о криптографических алгоритмах, использованных для хэширования и подписи документа, с параметром Contents, который содержит hex-кодированный блоб PKCS7 — в нём хранятся сертификаты и значение подписи, созданной с помощью приватного ключа, который соответствует открытому ключу в сертификате. Параметр ByteRange определяет, какие байты PDF-файла используются на входе функции хэширования для вычисления подписи (пары a, b и c, d), то есть какая часть файла подписывается;
  • новая таблица Xref со ссылкой на новый объект;
  • новый Trailer.

На рис. 3 приведена упрощённая схема PDF-файла с цифровой подписью.

Рис. 3. Упрощённая схема PDF-файла с цифровой подписью

Согласно текущим спецификациям, рекомендуется подписывать весь файл, за исключением блоба PKCS7.

Оно сразу извлекает подпись из PDF и применяет криптографические операции для проверки её корректности, а затем проверят, можно ли доверять сертификату X. Проверку подписи осуществляет приложение, в котором открывается PDF-документ. 509, ключи которого использовались для подписи.

Как и браузер Firefox, они распространяют собственное хранилища ключей и обычно позволяют пользователю указать хранилище с доверенными сертификатами. Что характерно, все приложения для чтения PDF не доверяют встроенному в операционную систему хранилищу ключей. Эта функция позволяет доверять только определённым сертификатам, например, от собственного центра сертификации.

Исследователи описывают три способа подделки с изменением содержимого подписанных PDF-документов.

  • универсальная подделка подписи (Universal Signature Forgery, USF);
  • атака на инкрементальное сохранение (Incremental Saving Attack, ISA);
  • атака на обёртку подписи (Signature Wrapping Attack, SWA).

Универсальная подделка подписи (USF)

Атака USF предусматривает отключение проверки подписи в приложении, которое открывает PDF. При этом пользователю выводится нормальное сообщение об успешной валидации подписи. Это делается с помощью манипуляции объектом Signature в документе: или внутри этого документа создаётся некорректная запись, или из файла удаляется ссылка на сам объект. Хотя программа просмотра PDF не может проверить корректность подписи, но в некоторых случаях программа всё равно показывает её наличие, что удовлетворяет целям злоумышленника.

Исследователи сформулировали 18 векторов атаки USF, восемь из них показаны на рис. 4.

Рис. 4. Восемь вектором атаки для обхода проверки цифровой подписи

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

Атака на инкрементальное сохранение (ISA)

Этот класс атак заключается в переопределении структуры и контента в добавочной секции документа. Идея в том, что подпись вычисляется на основе диапазона байтов, указанного в ByteRange, а добавочная секция не попадает в этот диапазон, как показано на рис. 5.

Рис. 5. При добавлении контента в добавочную секцию не нарушается цифровая подпись

Есть несколько способов, как обойти проверку на изменение документа и блокировать показ соответствующего предупреждения в программе просмотра PDF-документов.

Атака на обёртку подписи (SWA)

Наконец, последний класс атак позволяет обойти проверку подписи без инкрементального сохранения, а путём перемещения подписанной части PDF в конец документа и повторного использования указателя xref в подписанном Trailer на изменённую таблицу Xref. При этом чтобы избежать обработки перемещённой части, она может быть обёрнута в какой-нибудь посторонний объект, например, stream или dictionary.

Рис. 6. Сравнение оригинального и изменённого документов PDF
Исследователи проверили эффективность каждого типа атаки в разных программах для просмотра PDF. Не удалось обмануть только Adobe Reader 9 под Linux. Во всех остальных программах проверка подписи обходится одним или несколькими способами.

Не лучше ситуация и с сервисами онлайновой проверки цифровой подписи PDF.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

[Из песочницы] Как создать игру, если ты ни разу не художник

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

Киберпреступники пять месяцев контролировали ASUS Live Update

Злоумышленники разместили на сервере вредоносный файл с бэкдором, подписанный валидным сертификатом ASUS. Как сообщает «Лаборатория Касперского», хакеры из APT-группировки ShadowHammer 5 месяцев контролировали сервис обновлений ASUS Live Update и заразили более полумиллиона компьютеров по всему миру.Исследователи из «Лаборатории Касперского» обнаружили, ...