Кажется, что при добавлении цифровой подписи в PDF-файл следует добавить только размер самого изображения подписи, возможно, от 20 до 50 килобайт для типичного файла PNG. Фактическое увеличение размера файла часто намного больше, иногда несколько сотен килобайт или даже мегабайт для документа, размер файла которого ранее был скромным. Это несоответствие озадачивает пользователей, которые ожидают, что размер файла вырастет примерно на размер добавленных данных подписи. Объяснение заключается в том, как цифровые подписи встроены в PDF-файл, в необходимой им криптографической инфраструктуре и в структурных изменениях, которые претерпевает формат PDF при переходе от неподписанного к подписанному документу.

Что цифровая подпись добавляет к PDF-файлу помимо видимого изображения подписи
Цифровая подпись в PDF-файле — это не просто изображение, вставленное на страницу. Это криптографическая конструкция, которая включает в себя несколько компонентов, помимо видимого внешнего вида подписи. Ядром подписи является подписанный хэш содержимого документа, созданный с использованием закрытого ключа и проверяемый с помощью соответствующего сертификата открытого ключа. Эти криптографические данные, хэш, значение подписи и цепочка сертификатов обычно занимают от 2 до 10 килобайт в зависимости от типа сертификата и используемого алгоритма подписи. Видимое изображение подписи, если оно используется, добавляет размер файла изображения поверх криптографических данных.
Помимо самих данных подписи, спецификация PDF требует словаря подписи, который описывает свойства подписи: время подписи, причину подписи, местоположение, фильтр и подфильтр, идентифицирующие обработчик подписи, а также ссылки на диапазоны подписанных данных в файле. Этот словарь плюс сопутствующие метаданные могут добавить еще несколько килобайт. Для большинства подписей общий объем данных, непосредственно относящихся к подписи, должен находиться в диапазоне от 30 до 100 килобайт. Увеличение размера за пределами этого диапазона происходит из-за структурных факторов, связанных с тем, как PDF-файл поглощает данные подписи. В таблице ниже представлены компоненты, которые способствуют увеличению размера файла.
| Компонент подписи | Типичный диапазон размеров | Что он содержит |
|---|---|---|
| Данные криптографической подписи | 2–10 КБ | Подписанный хеш, значение подписи, токен временной метки |
| Цепочка сертификатов | 3–15 КБ | Сертификат подписывающего лица, сертификаты промежуточного центра сертификации, корневой сертификат |
| Данные отзыва (CRL/OCSP) | 5–30 КБ | Доказательство того, что сертификаты были действительны на момент подписания |
| Словарь сигнатур и метаданные | 2–5 КБ | Время подписания, причина, место, идентификаторы фильтра |
| Видимое изображение подписи | 10-100 КБ | PNG или JPEG рукописной подписи или печати |
| Структурные накладные расходы (дополнительное сохранение) | 30–80 КБ | Обновлена таблица перекрестных ссылок, добавленные объекты, дескрипторы диапазонов байтов. |
Попробуйте подписать PDF
Никакой установки не требуется. Работает прямо в вашем браузере.
Как меняется структура PDF-файла при добавлении подписи
Содержимое PDF-файла хранится в виде набора пронумерованных объектов, связанных таблицей перекрестных ссылок, которая сопоставляет номера объектов со смещениями байтов внутри файла. При добавлении цифровой подписи PDF-файл необходимо изменить таким образом, чтобы не сделать подпись недействительной поверх существующего содержимого. Это достигается за счет инкрементного сохранения, при котором исходное содержимое файла остается нетронутым, а в конец файла добавляются новые объекты. Новые объекты включают словарь подписей, подписанные данные, обновленную таблицу перекрестных ссылок и любые объекты, которые были изменены в процессе подписания.
Механизм инкрементного сохранения гарантирует, что подпись можно проверить путем сравнения диапазонов подписанных байтов с исходным содержимым. Однако инкрементное сохранение неэффективно использует файловое пространство. Объекты, на которые можно компактно ссылаться при полной перезаписи, должны быть полностью указаны в добавленном разделе. Таблица перекрестных ссылок увеличивается с каждым дополнительным сохранением. Первая подпись обычно добавляет от 30 до 80 килобайт структурных служебных данных поверх криптографических данных. Последующие подписи добавляют аналогичные суммы. Документ, подписанный четырьмя сторонами, может содержать несколько сотен килобайт структурных данных, связанных с подписью.
Роль цепочек сертификатов и данных проверки отзыва
Цифровая подпись часто включает в себя полную цепочку сертификатов, необходимую для проверки личности подписавшего: сертификат подписавшего, выдающие промежуточные сертификаты центра сертификации, а иногда и корневой сертификат. Каждый сертификат в цепочке может иметь размер от 1 до 3 килобайт. Цепочка из трех сертификатов добавляет от 3 до 9 килобайт. Некоторые инструменты подписи также включают списки отзыва сертификатов (CRL) или ответы OCSP, которые доказывают, что сертификаты были действительны на момент подписания. Эти структуры данных проверки отзыва могут быть удивительно большими, иногда превышая размер самих сертификатов. Полный ответ OCSP с несколькими записями статуса может добавить от 10 до 20 килобайт и более.
Решение о включении данных отзыва принимается программным обеспечением для подписи и зависит от используемого профиля подписи. Подписи долгосрочной проверки (LTV), предназначенные для проверки спустя годы после истечения срока действия сертификатов, включают больше данных об отзыве, чем базовые подписи, предназначенные для немедленной проверки. Пользователь может не знать, что его инструмент подписи встраивает данные об отзыве, поскольку эта опция часто скрыта в дополнительных настройках или включена по умолчанию. Результирующее увеличение размера файла может сбить с толку, поскольку пользователь видит маленькое изображение подписи и ожидает соответственно небольшого изменения размера файла.
Почему разные инструменты PDF приводят к разному увеличению размера файла
Различные инструменты подписи PDF реализуют процесс подписи с разным уровнем структурной эффективности. Один инструмент может выполнить полную перезапись PDF-файла в рамках процесса подписания, сжимая структуру файла и удаляя потерянные данные из предыдущих изменений, поэтому чистое увеличение размера файла из-за подписи компенсируется структурной очисткой. Другой инструмент может выполнить инкрементальное сохранение, при котором все существующее содержимое останется неизменным, в результате чего к существующему размеру файла будут добавлены полные структурные издержки. Одна и та же подпись, примененная к одному и тому же документу двумя разными инструментами, может создавать выходные файлы, размер которых различается на сотни килобайт.
Инструмент Sign PDF WukongPDF применяет цифровые подписи, одновременно эффективно управляя структурой файла. Подпись добавляет необходимые криптографические данные без ненужного структурного дублирования. Для документов, которые были сильно отредактированы перед подписанием, выполнение полной перезаписи перед подписанием с помощью функции «Сохранить как» для создания чистой копии и последующее подписание этой копии минимизирует совокупный размер файла. Сочетание чистого базового файла и эффективного инструмента подписи позволяет получить подписанный PDF-файл минимально возможного размера.
Управление размером файла, когда требуется несколько подписей
Документы, для которых требуется несколько подписей, представляют собой наибольшую проблему с размером файла, поскольку каждая подпись добавляет свои собственные криптографические данные и структурные накладные расходы посредством постепенного сохранения. Контракт, подписанный покупателем, продавцом и двумя свидетелями, содержит четыре уровня данных подписи. Если каждая подпись добавляет от 50 до 100 килобайт, общий размер подписи, связанный с подписями, увеличивается на 200–400 килобайт, что вполне разумно с точки зрения предоставляемого юридического обеспечения. Проблемы возникают, когда каждая подпись добавляет несколько сотен килобайт из-за встроенных данных об отзыве и подробных цепочек сертификатов, в результате чего общее увеличение достигает мегабайтного диапазона.
Чтобы управлять размером файла для документов с несколькими подписями, используйте рабочий процесс подписи, который минимизирует структурные издержки. Подпишите документ, используя инструменты, создающие компактные подписи. Между подписями избегайте ненужного редактирования и сохранения, которое может привести к добавлению промежуточных слоев дополнительного сохранения. Если размер файла становится проблематичным, используйте инструмент оптимизации PDF после завершения всех подписей, чтобы сжать структуру файла. Подписи остаются действительными благодаря оптимизации до тех пор, пока диапазоны подписанных байтов не изменяются. Данные цифровой подписи сохраняются, в то время как структурные накладные расходы от нескольких инкрементных сохранений очищаются, создавая подписанный документ, который является юридически действительным и имеет эффективный размер.
Понимание того, что способствует увеличению размера файла после подписания, поможет вам принять обоснованные решения относительно конфигурации подписи. Для документов, в которых размер файла имеет значение, например тех, которые распространяются по электронной почте или загружаются на порталы с ограниченным размером, выбор профиля подписи, в котором отсутствуют ненужные данные об отзыве и используется минимальная цепочка сертификатов, может сэкономить сотни килобайт на каждую подпись. Для документов, для которых долгосрочная проверка важнее размера файла, таких как контракты, которые могут быть оспорены спустя годы, дополнительный размер данных об отзыве является выгодной инвестицией в будущую юридическую защищенность документа.
Попробуйте подписать PDF
Никакой установки не требуется. Работает прямо в вашем браузере.
