Перейти к содержимому
getnextpdf.com

Enterprise редакция

Signature — глубокий справочник

Это углублённый справочник по модулю долгосрочного формирования NextPDF Enterprise: как собирается подпись B-LT или B-LTA, как собираются и принудительно проверяются данные об отзыве, как метка времени документа привязывает документ ко времени и как обеспечивается граница Pro. Он на уровне поведения и контракта. Конкретные типы реализации Enterprise здесь намеренно не называются; страница ссылается только на публичный пакет и поверхность контракта Core.

Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы возможности. Сравните редакции и получите лицензию.

Каноническая матрица «уровень→редакция»: B-B — базовый уровень, формируемый Core, Pro и Enterprise; B-T (с меткой времени) формируется Core, Pro и Enterprise — Core поставляет путь меток времени по RFC 3161, поэтому B-T не требует премиум-пакета; B-LT и B-LTA (DSS, VRI, метка времени документа) формируются только Enterprise. При развёртывании только с Pro запрос B-LT или B-LTA завершается защищённым отказом: Core SignatureLevel::isAvailableInEnvironment возвращает false, когда модуль долгосрочного формирования Enterprise отсутствует, и оркестратор Core вызывает именованную ошибку вместо молчаливого понижения уровня.

Уровень PAdESДобавляетРедакция модуля формирования
B-BПодпись CMS с подписанными атрибутамиCore, Pro, Enterprise
B-TДоверенная метка времени RFC 3161 на значение подписиCore, Pro, Enterprise
B-LTDocument Security Store с данными для проверкиТолько Enterprise
B-LTAМетка времени документа поверх DSS (архивный цикл)Только Enterprise

Подпись B-LT — это подпись B-T плюс Document Security Store. DSS — это словарь уровня Catalog, содержащий потоки сертификата, ответа OCSP и CRL, которые нужны проверяющей стороне после истечения срока действия сертификата подписи — ISO 32000-2 §12.8.4.3. Для долгосрочной проверки используются два типа словарей — DSS и словарь метки времени документа — ISO 32000-2 §12.8. Сама подпись CMS хранится в DER-кодировке в /Contents — ISO 32000-2 §12.8.1.

Подпись B-LTA добавляет метку времени документа поверх всего состояния документа, включая DSS, записанную через словарь метки времени документа — ISO 32000-2 §12.8.5. ETSI EN 319 142-2 описывает ту же долгосрочную композицию — §5.5 — и поддержку обработчика — §6.3.3.3.

  1. Постройте цепочку. Сертификат подписывающего плюс любые предоставленные вызывающим кодом промежуточные сертификаты образуют цепочку — подписывающий первым — к якорю доверия — RFC 5280 §6.1.
  2. Соберите данные об отзыве. Для каждого некорневого сертификата модуль формирования сначала обращается к OCSP. Ответ OCSP сообщает good, revoked или unknown — RFC 6960 §2.2 — и ограничен по времени полями thisUpdate/nextUpdate — RFC 6960 §4.2. Если OCSP недоступен, выполняется переход к CRL с поддержкой delta-CRL; базовый CRL и необязательный delta добавляются как отдельные записи DSS.
  3. Запишите DSS. Сертификаты, ответы OCSP и CRL записываются как отдельные потоковые объекты PDF; дубликаты устраняются по хешу содержимого. Словарь DSS ссылается на них через /Certs, /OCSPs, /CRLs.
  4. VRI для каждой подписи (по выбору). Запись VRI, ключом которой является хеш в верхнем регистре от значения /Contents подписи, индексирует конкретные сертификаты/OCSP/CRL для этой подписи с необязательной записью времени проверки. VRI по умолчанию отключён: ETSI EN 319 142-1 V1.2.1 §5.4 не рекомендует VRI в DSS для новых документов; некоторые валидаторы всё же лучше отображают долгосрочный статус с ним, поэтому он включается вызывающим кодом.
  5. Метка времени документа (B-LTA). После записи DSS добавляется словарь /DocTimeStamp с /SubFilter /ETSI.RFC3161, ByteRange и заполнителями /Contents. После сборки полного файла модуль формирования вычисляет дайджест SHA-256 по ByteRange, запрашивает токен RFC 3161 — §2.4.1 — и встраивает DER-токен; genTime — это момент создания токена во Всемирном координированном времени (UTC) — §2.4.2.

Модуль формирования разрешает режим принудительной проверки с таким приоритетом: явный структурированный режим побеждает; иначе явный (устаревший) булев параметр сопоставляется со строгим или разрешающим; иначе по умолчанию действует строгий (защищённый отказ).

При строгой проверке отсутствие ответа OCSP и отсутствие CRL для любого некорневого сертификата вызывает ошибку, а не только предупреждение. Защищённый отказ по умолчанию существует, чтобы PDF «B-LT» нельзя было сформировать без данных об отзыве в DSS, всё ещё заявляя долгосрочный уровень. Разрешающий (только предупреждения) сценарий включается явно. При строгой офлайн-политике сети запросы OCSP/CRL не выполняются; используются только данные, встроенные в DSS, а условие отсутствия данных обрабатывается тем же правилом принудительной проверки.

Метка времени документа B-LTA привязана сертификатом TSA, который сам истекает. Архивный цикл, выполняемый до этого истечения, собирает свежие данные об отзыве для цепочки сертификата TSA, перезаписывает DSS, при необходимости добавляет запись VRI с ключом по хешу сертификата TSA и добавляет новую метку времени документа поверх обновлённого состояния. Каждая новая метка времени охватывает предыдущие. Запуск цикла по расписанию — эксплуатационная обязанность; модуль формирования вызывает ошибку, если цикл запрошен без настроенного TSA или при строгой офлайн-политике. Полная архивная поверхность описана в углублённом справочнике по архиву.

Поверхность API (только публичный контракт)

Заголовок раздела «Поверхность API (только публичный контракт)»
ТипВидРольСтабильностьНачиная с
SignerInterfaceинтерфейс (NextPDF\Contracts)Контракт подписания Coreстабильный1.0.0
LtvManagerInterfaceинтерфейс (NextPDF\Contracts)Контракт модуля долгосрочного формирования и архивного цикла, разрешаемый во время выполнениястабильный1.0.0
TsaClientInterfaceинтерфейсКлиент TSA по RFC 3161, к которому обращается модуль формированиястабильный1.0.0
SignatureLevelперечисление (NextPDF\Security\Signature)Селектор B-B, B-T, B-LT, B-LTA и проба доступностистабильный1.0.0

SignatureLevel::requiresDss → true для B-LT, B-LTA. requiresDocumentTimestamp → true только для B-LTA. requiresTimestamp → true для B-T, B-LT, B-LTA. Рабочий код зависит от этих контрактов; конкретные классы реализации Enterprise являются внутренними и не входят в публичный API.

УтверждениеСтандартПункт
Подпись/метка времени хранится в DER-кодировке в /Contents.ISO 32000-2§12.8.1
LTV использует DSS и словарь метки времени документа.ISO 32000-2§12.8
DSS — это словарь, являющийся значением ключа DSS в каталоге документа; содержит Certs, OCSPs, CRLs.ISO 32000-2§12.8.4.3
Структура словаря метки времени документа.ISO 32000-2§12.8.5
DSS + метки времени документа для долгосрочных подписей.ETSI EN 319 142-2§5.5
Обработчик поддерживает DSS + метки времени документа.ETSI EN 319 142-2§6.3.3.3
Запрос RFC 3161 возвращает TSTInfo; genTime — момент создания в UTC.RFC 3161§2.4.1, §2.4.2
OCSP good/revoked/unknown ограничен thisUpdate/nextUpdate.RFC 6960§2.2, §4.2
Входные данные проверки пути до якоря доверия.RFC 5280§6.1

Все пункты приведены в пересказе. NextPDF не воспроизводит нормативный текст. NextPDF не делает заявления о сертификации PAdES: модуль формирования записывает структуры, согласованные с уровнями B-LT и B-LTA, определёнными в ETSI EN 319 142; результат тестирования на соответствие и сторонняя аттестация не заявляются. Часть базовых уровней ETSI EN 319 142-1 находится вне приведённого набора доказательств, поэтому приведённое свидетельство ETSI — EN 319 142-2, а свидетельства ISO/RFC подтверждают заявления о долгосрочности и метках времени — то же положение раскрытия, что и в справочнике по подписанию Core. Пройдёт ли сформированная подпись проверку — это решение проверяющей стороны на основе её якорей доверия и политики свежести отзыва; модуль формирования встраивает данные и не утверждает доверенный результат.

  • DSS должен быть записан до метки времени документа; метка времени, записанная до DSS, не охватывает данные для проверки.
  • Строгая проверка (по умолчанию) вызывает ошибку при отсутствии данных об отзыве для некорневого сертификата. Разрешающий режим включается по выбору.
  • B-LTA без настроенного TSA вызывает ошибку, а не формирует B-LT.
  • Строгая офлайн-политика: нет сетевого доступа к OCSP/CRL/TSA; B-LTA недостижим в строгом офлайн-режиме.
  • Токен метки времени документа имеет ограниченное зарезервированное пространство; токен, превышающий его, вызывает ошибку, а не усекается.

Профиль криптополитики FIPS 140-3 — это возможность Enterprise, описанная вместе с модулем безопасности. Модуль долгосрочного формирования добавляет только дайджест SHA-256, используемый для метки времени документа, и обмен по RFC 3161; примитив подписания относится к подписывающему модулю Core. В профиле FIPS формируются те же структуры DSS, VRI и метки времени документа; ограничение применяется к алгоритмам подписи и дайджеста, а не к разметке DSS. Аппаратное хранение ключей через PKCS#11 описано вместе с модулем безопасности и выходит за рамки этой страницы.

  • Core формирует B-B и B-T (B-T добавляет метку времени RFC 3161 на значение подписи). Pro формирует B-B и B-T через тот же стек Core. B-LT и B-LTA формируются только Enterprise.
  • Модуль формирования записывает DSS (B-LT) и метку времени документа поверх DSS (B-LTA). Он встраивает данные для проверки; он не утверждает доверенный результат проверки.
  • Защищённый отказ по умолчанию для принудительной проверки отзыва вызывает ошибку при отсутствии данных об отзыве для некорневого сертификата, если вызывающий код не включил разрешающий сценарий.
  • B-LTA требует настроенного TSA; при его отсутствии шаг B-LTA вызывает ошибку, а не понижается до B-LT.

При развёртывании только с Core программный подписывающий модуль формирует PAdES B-B и B-T через SignerInterface; Core поставляет путь меток времени RFC 3161, поэтому B-T не требует премиум-пакета. У Core нет модуля формирования DSS, VRI или метки времени документа; запрос B-LT или B-LTA завершается защищённым отказом через возврат false из SignatureLevel::isAvailableInEnvironment.

При развёртывании только с Pro путь подписания — это базовый уровень B-B/B-T плюс рабочие процессы удалённого и облачного KMS-подписания. Pro не формирует DSS или метку времени документа. RemoteSigningConfig несёт перечисление Core SignatureLevel, но долгосрочный уровень (B-LT/B-LTA) — это заранее объявленное значение, которое Pro не обрабатывает; долгосрочный модуль формирования разрешается во время выполнения через контракт Core и поставляется в nextpdf/enterprise.

Детали внутреннего механизма остаются во внутренней документации исходного репозитория и выходят за рамки этого руководства.

NextPDF Enterprise встраивает данные для проверки; он интегрируется с предоставленными вызывающим кодом ответчиками OCSP/CRL и TSA по RFC 3161. Он сам не эксплуатирует, не размещает и не гарантирует доступность этих ответчиков или TSA. Долгосрочная действительность зависит от ответчиков, TSA, расписания архивного цикла и оператора — а не только от NextPDF Enterprise. Оператор отвечает за выбор и доступность TSA, доступ к ответчикам отзыва или заранее собранные данные, политику сети и запуск архивного цикла до истечения срока действия каждого сертификата метки времени.

Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы тикетов выходят за рамки.

Согласованность со структурами B-LT и B-LTA, определёнными в ETSI EN 319 142, — это структурное утверждение, а не юридическое заключение и не сертификация. NextPDF не делает заявления о сертификации PAdES. Пройдёт ли сформированная подпись проверку — это решение проверяющей стороны на основе её якорей доверия и политики свежести отзыва.