Наш зашифрованный PDF был взломан - PullRequest
4 голосов
/ 16 марта 2011

Мы шифруем наш PDF с помощью следующего кода iText.Однако кто-то смог отредактировать наш pdf (я не уверен, как).

pdfWriter.setEncryption(null, null, PdfWriter.ALLOW_SCREENREADERS
    | PdfWriter.ALLOW_COPY | PdfWriter.ALLOW_PRINTING,
    PdfWriter.ENCRYPTION_AES_128);

Есть ли лучший способ защитить PDF-файл от этой проблемы?

Ответы [ 4 ]

9 голосов
/ 16 марта 2011

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

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

Поскольку существует множество программ для просмотра PDF с открытым исходным кодом,очень просто создать средство просмотра, которое просто игнорирует эти ограничения.

См. это объяснение механизма шифрования PDF для более подробной информации.

3 голосов
/ 16 марта 2011

Если ваш PDF зашифрован с использованием 128-битного AES, то он безопасен от того, кто не знает ключ, наиболее правдоподобным объяснением является то, что у кого-то был доступ к ключу.

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

1 голос
/ 16 марта 2011

Шифрование, которое препятствует просмотру PDF-файла, работает, если пароль достаточно длинный.

Функции DRM, которые позволяют просматривать, но отключают другие функции, такие как печать, редактирование, ..., работают только в том случае, если программа чтения-operates.Пользователь может использовать взломанный или сторонний читатель, чтобы обойти такие ограничения.

0 голосов
/ 16 марта 2011

Добавить пароль пользователя.Это единственный, который действительно имеет значение.Как вы, несомненно, поняли из других ответов, пароль владельца представляет собой шутку.

Пароль пользователя - надежное шифрование ... до 256-битного AES IIRC, хотя в оригинальной спецификации шифрования PDF используетсяразрешено только для 40-битного шифрования из-за ограничений на экспорт в США.Все, что сильнее 40-битного, считалось «боеприпасом».Бестолковые законы.

Пароль ВЛАДЕЛЬЦА - нет, он более вежлив, чем все остальное.Библиотеки PDF стараются поддерживать его в той или иной степени, но библиотеки PDF с открытым исходным кодом быстро заменяют код, превращаясь в «взломщиков PDF».

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

PS:

При вызове setEncryption:

  • a null открытый пароль означает «пустой пароль», как я описал выше
  • a null владелец пароль означает «сгенерировать случайный для меня».

Пароль случайного владельца означает «никто не может законно изменитьPDF ".. но это не значит" никто не может изменить PDF ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...