Как я могу предотвратить подделку универсальной подписи (USF), атаку с сохранением (ISA), перенос подписи (SWA) в Apache PDFBox - PullRequest
1 голос
/ 07 марта 2019

В настоящее время Iam создает цифровую и электронную подпись, используя apache pdfbox.Недавно я узнал об уязвимостях в цифровой и электронной подписи, таких как Универсальная Подделка Подписи (USF), Инкрементная атака сбережений (ISA) и Обертывание подписи (SWA).Обеспечивает ли PDFBox эту заботу автоматически или нам нужно дополнительно применять код, чтобы позаботиться об этом

1 Ответ

3 голосов
/ 08 марта 2019

О самих атаках

Начнем с того, что упомянутые атаки были разработаны в магистерской диссертации ( "Безопасность подписей PDF" Карстен Мейер цу Селхаузен в Рурском университетеБохум) был обнародован в феврале 2019 года. Предварительная версия производного «Отчета об уязвимости» была распространена и обсуждена с рядом организаций, связанных с информационной безопасностью, в ноябре 2018 года, поэтому ряд подписей в формате PDFпроверенные в статье валидаторы тем временем были исправлены, чтобы должным образом показать нарушение или ограничение действительности подписи.Вы можете найти обзор на незащищенном PDF-сайте .

. Читая тезис и просматривая примеры, у меня сложилось впечатление, что автор и его советники еще очень долго не рассматривали PDF-файлы,по крайней мере, не в глубину.Два примера того, что вызвало такое впечатление:

  • Тезис явно основан на публикации PDF Reference 1.7, опубликованной в 2006 году, в которой известно, что PDF стал стандартом ISO в 2008 году (ISO 32000-1) который, между тем, в 2017 году был обновлен (ISO 32000-2).

    В результате некоторые аспекты в нем просто устарели.Например,

    • В качестве темы для будущей работы описывается «Атаки на дайджесты объектов», но дайджесты объектов не были включены в стандарт ISO 32000-1 в 2008 году, они устарели более 10 лет.теперь на момент публикации диссертации.
    • Кроме того, «Отчет об уязвимостях», полученный из диссертации, содержит предложение по усовершенствованной проверке, но упоминает в качестве недостатка, что требует изменения в PDF.спецификация, определяющая ByteRange в качестве необязательного параметра ... но она требуется с 2008 года в стандарте ISO 32000-1 (по крайней мере, для подписей, представляющих интерес)!
  • Манипуляции (в первую очередь в контексте атак USF) проводились без должного уважения к действительности полученных PDF-файлов.

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

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

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

Предотвращение предстоящих атак в качестве подписывающего лица на основе PDFBox

ОП - это "создание цифровой и электронной подписи с использованием apache pdfbox" и в отношении вышеуказанных атак удивляет, что он, как создатель подписи, может сделать для предотвращения атак.

На самом деле создатель подписи мало что может сделать, чтобы предотвратить атаки, в основном это задача средства проверки подписи:распознавать манипуляции.

В одном смысле, он может онlp: Некоторые варианты атаки с обертыванием подписи используют область завершающей строки в 00 байтов в содержимом подписи;поэтому он может помочь предотвратить некоторые атаки, сделав эту строку максимально короткой.К сожалению, существует множество настроек подписи, в которых вряд ли можно предсказать размер контейнера подписи, который будет вставлен сюда, поэтому вряд ли можно избежать определенного количества конечных байтов 00.

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

Правильное распознавание атак как валидатора на основе PDFBox

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

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

Запуск примера проверки подписи PDFBox ShowSignature по образцам файлов атаки изна сайте безопасности PDF ( здесь ) можно получить следующие результаты:

  • Очень часто (чаще всего ISA, все файлы SWA) можно увидеть вывод «Подпись проверена» вместе с«Подпись не распространяется на весь документ».
  • В одном случае ISA имеется NoSuchAlgorithmException.
  • Часто (большинство файлов USF) существует NullPointerException.
  • В одном случае USF есть ClassCastException.
  • В одном случае USF есть CMSException.

(Результат теста SecurityThesisValidation )

Таким образом, если валидатор на основе PDFBox правильно выводит предупреждение «Подпись не охватывает весь документ», где это применимо, и выводит«Сбой» или «Неизвестно» в случае произвольных исключений, он не становится жертвой существующих файлов атаки.

Как @Tilman также сказал в комментарии к вопросу, деактивируя снисходительный режим при загрузке PDF-файлов для проверки.может быть хорошей идеейЭто перехватит большинство атак ISA и некоторых атак USF еще до того, как можно будет обмануть любую процедуру проверки ...


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

...