PDF, захищені паролем, та їхні межі
Мій PDF захищений, і інструмент пише, що не може його редагувати. Чому і що мені робити?
Паролі бувають двох різних видів
Шифрування PDF, описане в ISO 32000, розрізняє пароль користувача і пароль власника. Пароль користувача — його часто називають паролем на відкриття — потрібен, щоб узагалі розшифрувати документ. Без нього потоки вмісту є шифротекстом, і жодна програма не прочитає бодай однієї сторінки. Пароль власника працює інакше: документ відкривається й без нього, але словник шифрування несе прапорці дозволів, які кажуть, що сумісна програма перегляду має заборонити, — наприклад, друк, копіювання тексту чи зміну файлу.
Ця відмінність пояснює більшу частину плутанини. Документ, який відкривається миттєво, але не дає скопіювати абзац, не є «розблокованим» — він зашифрований із порожнім паролем користувача і набором обмежень.
Що насправді захищає шифрування
| Пароль | Потрібен для відкриття? | Що він захищає | Наскільки він надійний |
|---|---|---|---|
| Пароль користувача (на відкриття) | Так | Сам вміст; потоки та рядки зашифровані | Настільки, наскільки надійні шифр і обраний пароль |
| Пароль власника (на дозволи) | Ні | Криптографічно — нічого; він виставляє прапорці, які програму перегляду просять шанувати | Лише рекомендаційний |
Прапорці дозволів — це прохання до чемного програмного забезпечення, а не механізм примусу. Байти розшифровуються тієї миті, коли документ відкривається, тож будь-яка програма, яка вирішить проігнорувати прапорці, зробить це. Сприймайте їх як заяву про наміри: корисно, щоб позначити, як документ слід використовувати, і марно як засіб захисту.
Чому редактор відмовляється від файлу
Щоб перебудувати PDF — об'єднати, розділити, повернути сторінки, викинути невикористані об'єкти, — бібліотека має розібрати граф об'єктів. У зашифрованому документі рядки та потоки, з яких складається цей граф, є шифротекстом, доки не буде виведено правильний ключ. Розбирати просто нічого. Це не рішення інструмента з міркувань політики: документа там поки що справді немає.
Тому структурні PDF-інструменти FileSlimmer для зашифрованого документа вимкнені й кажуть про це прямо, замість того щоб зламатися на півдорозі й видати пошкоджений результат. Це правильна поведінка, хоч і менш зручна.
Що стається з паролем, який ви вводите
Там, де пропонується шлях із паролем, пароль використовується для виведення ключа розшифрування в пам'яті, у цій вкладці браузера, поки триває завдання. Він не записується в локальне сховище, не записується в кеш Service Worker, не потрапляє в URL і не передається — у цьому застосунку просто немає сервера, куди його можна було б передати. Коли вкладка закривається, він зникає.
І все ж варто свідомо ставитися до того, де ви вводите будь-який пароль. Розширення браузера може читати вміст сторінки, і це стосується кожного сайту, зокрема й цього. Якщо документ настільки чутливий, що це має значення, розблоковуйте його в офлайновій настільній програмі, якій ви довіряєте.
Чого цей інструмент не робитиме
- Він не намагатиметься відновити чи підібрати перебором пароль, якого у вас немає.
- Він не зніме пароль власника, щоб обійти прапорці дозволів на документі, прав на який у вас немає.
- Він не створить нишком розшифровану копію документа, який ви відкрили з паролем; зняття захисту — це окрема, явна дія.
- Він не вдаватиме, що прапорець дозволу є межею безпеки.
Зняття захисту з документа, змінювати який ви не маєте права, може ще й порушувати договір або закон вашої країни. Це питання до вас і, якщо воно принципове, до юриста — а не до інструмента стиснення.
Реалістичні варіанти, коли ви застрягли
- Попросіть у того, хто створив документ, копію без захисту. Це найпоширеніше рішення, і воно займає одне повідомлення.
- Якщо у вас є пароль на відкриття, скористайтеся ним: із розшифрованим документом усі звичайні операції знову доступні.
- Якщо сторінки потрібні вам лише щоб подивитися, надрукуйте у PDF або експортуйте растеризовану копію. Ви втратите текстовий шар, посилання і структуру доступності, зате збережете зовнішній вигляд.
- Якщо документ не лише зашифрований, а й підписаний, зупиніться і подумайте ще раз. Будь-яка зміна робить підпис недійсним, а підписаний документ зазвичай існує саме тому, що комусь треба буде його перевірити.
Ще одне обмеження
Старі редакції шифрування PDF використовували слабке виведення ключа і короткі ключі, і їх вважають зламаними. Новіші редакції використовують AES із належною функцією виведення ключа. Подивившись на документ, ви не визначите, яка з них там застосована, а те, що інструмент швидко відкриває старий файл, ще не доводить, що з новим буде так само. Якщо ви обираєте захист для документа, який створюєте самі, беріть сучасне програмне забезпечення і довгий пароль, а не покладайтеся на історію формату.
Інструменти для цього
Джерела
- ISO 32000-2 — Document management, Portable Document Format
- Adobe — PDF 32000-1:2008, clause 7.6 on encryption and permissions
- NIST FIPS 197 — the Advanced Encryption Standard