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

Базовые профили PAdES

Spec: ETSI EN 319 142-1 Spec: ISO 32000-2, §12.8 Spec: RFC 3161 Evidence: Standard-backed

PAdES определяет четыре базовых уровня — B-B, B-T, B-LT, B-LTA — которые надстраиваются друг над другом. Каждый добавляет один конкретный вид доказательства. Эта страница объясняет эту последовательность и помогает выбрать минимальный уровень, который всё ещё отвечает требованию, а не самый высокий из тех, чьё название вам знакомо.

Люди выбирают “B-LTA”, потому что он звучит как самый основательный, или “B-B”, потому что он требует меньше всего работы. И то и другое — догадки. Нужный уровень определяет вопрос, а не предпочтение: как долго эта подпись должна оставаться проверяемой и кем? Выберите слишком низкий уровень — и подпись, которая была действительна в день подписания, станет непроверяемой после истечения срока действия сертификата. Выберите слишком высокий уровень — и возьмёте на себя ненужные вам удостоверяющий центр меток времени и инфраструктуру материалов проверки, а также обязательство по архивированию, которое придётся постоянно поддерживать. Команда, которая не может изменить уровень позднее, платит за неверный выбор.

  • Четыре уровня кумулятивны. Каждый — это предыдущий плюс одно дополнение.
  • B-B — подпись с обязательными подписанными атрибутами. Доказывает кто и что.
  • B-TB-B плюс доверенная метка времени на подписи. Доказывает когда, независимо от часов подписанта.
  • B-LTB-T плюс встроенные материалы проверки (сертификаты и данные об отзыве). Документ сам содержит доказательство того, что сертификат был действителен в момент подписания.
  • B-LTAB-LT плюс метка времени документа, которую со временем проставляют повторно. Сохраняет всё это проверяемым на протяжении десятилетий и при смене алгоритмов.
  • Выбирайте уровень по сроку жизни обязательства, а не по тому, что выглядит самым безопасным.

NextPDF моделирует уровень как явный упорядоченный выбор и не делает вид, что всё получилось. Вы запрашиваете уровень. Движок создаёт именно этот уровень или завершается ошибкой с понятным указанием, что нужно сделать. Он не подписывает молча на более низком уровне, позволяя записи о соответствии заявлять более высокий. Эта конструкция нужна именно для того, чтобы предотвратить молчаливое понижение запроса B-LTA до B-T, когда нужной инфраструктуры нет. Требования каждого уровня закодированы как предикаты: требуется ли метка времени, требуются ли встроенные материалы проверки, требуется ли метка времени документа. Движок проходит по этим предикатам и либо удовлетворяет их, либо останавливается.

Описанная ниже последовательность совпадает с той, которую обеспечивает движок и определяет стандарт.

УровеньЧто добавляет по сравнению с предыдущим уровнемНа какой вопрос отвечаетЧто требуется от вашего развёртывания
B-BПодписанные атрибуты: content-type, message-digest, signing-time, signing-certificate-v2Кто подписал и какие именно байты?Ключ подписания и сертификат
B-TДоверенная метка времени над значением подписиКогда это подписали, с доказательством?Удостоверяющий центр меток времени (TSA)
B-LTВстроенные сертификаты + данные об отзыве (DSS)Был ли сертификат действителен в момент подписания, и можно ли доказать это позднее?TSA + доступ к данным об отзыве в момент подписания
B-LTAМетка времени документа, обновляемая со временемБудет ли это проверяемо спустя десятилетия?TSA + процесс архивирования с повторным проставлением меток времени

Самый важный переход — от B-T к B-LT. B-T доказывает когда. B-LT делает документ самодостаточным в части доверия: он перестаёт зависеть от того, останется ли удостоверяющий центр доступным и сможет ли отвечать на запросы спустя годы.

  1. Step 1 of 4: ISO 32000-2 §12.8 — signatures, LTV, document timestamp
  2. Step 2 of 4: ETSI EN 319 142-1 PAdES baseline levels B-B…B-LTA
  3. Step 3 of 4: RFC 3161 Timestamp token (introduced at B-T)
  4. Step 4 of 4: RFC 6960 OCSP revocation evidence (embedded at B-LT)
Стандарты, стоящие за последовательностью PAdES: ISO 32000-2 определяет, как подписи и материалы проверки располагаются в PDF; ETSI EN 319 142-1 определяет базовые уровни; RFC 3161 определяет метку времени, которую вводит B-T; RFC 6960 определяет доказательства отзыва, которые встраивает B-LT.

Evidence: Standard-backed Уровни определяет ETSI. Spec: ETSI EN 319 142-1 определяет базовые уровни PAdES ; Spec: ETSI EN 319 142-2, §5.3 указывает атрибут signature-time-stamp как необязательный элемент, наличие которого и отделяет уровень с меткой времени от B-B, а Spec: ETSI EN 319 142-2, §6.3.2.2 утверждает, что доверенная метка времени должна проставляться сразу после создания подписи, чтобы зафиксированное время было как можно ближе к реальному времени подписания. Spec: ETSI EN 319 142-2, §5.5 говорит, что долгосрочное поведение требует как хранилища безопасности документа (Document Security Store), так и меток времени документа — дополнения B-LT и B-LTA.

Со стороны контейнера это Spec: ISO 32000-2, §12.8.3.3 : подписи PAdES — это профили CAdES CMS, объединённые с долгосрочной проверкой (§12.8.4) и словарём меток времени документа (§12.8.5), в точности так, как описывает ETSI EN 319 142-1. Причину, по которой важен B-LT, отражает Spec: RFC 6960, §4.4.4 : архивированные доказательства отзыва помогают проверяющей стороне оценить надёжность подписи на момент её создания даже после того, как сертификат, использованный для проверки, истёк. В этом и состоит смысл их встраивания.

Движок NextPDF кодирует каждый уровень как предикат-требование и создаёт запрошенный уровень либо завершается ошибкой — он не объявляет уровень, который не построил.

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

<?php
declare(strict_types=1);
use NextPDF\Security\Signature\SignatureLevel;
// The level is an explicit, ordered choice — not a flag you hope is honoured.
$level = SignatureLevel::PAdES_B_T;
// The level itself tells you what it requires, before you sign:
$level->requiresTimestamp(); // B-T and above → true
$level->requiresDss(); // B-LT and above → true
$level->requiresDocumentTimestamp(); // B-LTA only → true
// Ask for B-LTA only if the deployment can actually fulfil it.
// The engine produces exactly the requested level or fails with an
// actionable error — it never silently signs lower and reports higher.

Если вы запросите B-LTA, а развёртывание не может предоставить то, что требует B-LTA, поведение по умолчанию — завершиться ошибкой и сообщить вам наивысший уровень, которого движок мог бы достичь, а не молча вернуть файл B-T с меткой B-LTA.

Ловушка звучит так: “B-LTA просто лучший, всегда выбирайте его.” B-LTA не лучше вне контекста; он — больше, а большее несёт обязательства. Он требует удостоверяющего центра меток времени, материалов отзыва, собранных в момент подписания, и постоянного процесса архивирования, который повторно проставляет метки времени на документе до того, как защищающие его алгоритмы или сертификаты меток времени ослабнут. Файл B-LTA, которому никто не обновляет метки времени, не защищён на будущее — это файл B-LT с лишней процедурой. И наоборот, B-B для договора, который должен прожить десятилетие, не “лёгкий вариант”; это подпись, которая провалит проверку в тот день, когда истечёт срок действия сертификата. Правильный уровень — тот, которого требует обязательство, не выше и не ниже.

NextPDF создаёт запрошенный уровень PAdES; он не предоставляет стороны, от которых этот уровень зависит. Удостоверяющий центр меток времени, цепочка сертификатов, якоря доверия и связь для получения данных об отзыве в момент подписания — это обязанности развёртывания. Движок реализует структуру и обеспечивает соблюдение контракта уровня; он не может сделать TSA доверенным или сертификат действительным. Создаваемая структура содержит элементы, которые требует уровень, проверенные собственными тестами движка и приведёнными пунктами стандартов. Это не сертификация соответствия от третьей стороны, и эта страница не утверждает юридическую силу eIDAS, которая зависит от сертификата, подписанта и юрисдикции. Является ли время подписания независимо доверенным, рассматривается в разделе Метки времени и доверенное время; как долгосрочные доказательства сохраняют подпись проверяемой, рассматривается в разделе Долгосрочная проверка.

Несколько границ, чтобы точнее задать ожидания:

  • B-LT и B-LTA создают структуру долгосрочной проверки, а не вердикт о соответствии. Движок записывает словарь хранилища безопасности документа (Document Security Store) плюс ревизию с меткой времени документа — словарь подписи с Type = DocTimeStamp согласно Spec: ISO 32000-2, §12.8 . Эта структура не объявляется здесь как проверенная на соответствие профилю; проверки профиля ETSI EN 319 142-1 привязаны к релизу на конвейере CI редакций Pro и Enterprise, поэтому эта страница не заявляет о соответствии созданного файла ETSI EN 319 142-1.
  • Зашифрованные документы обрабатываются по принципу fail-closed для B-LT и B-LTA. Запрос долгосрочного уровня для зашифрованного документа останавливается с понятной ошибкой, а не записывает частичную долгосрочную ревизию.

Доступность уровней по редакциям: все четыре достижимы через один и тот же высокоуровневый интерфейс, setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save():

PAdES baseline level — edition availability
Edition Availability
Core

PAdES B-B — базовый уровень с подписанными атрибутами; интерфейс Core.

Pro

Добавляет PAdES B-T — доверенную метку времени над значением подписи, управляемую через TsaClient.

Enterprise

Добавляет PAdES B-LT и B-LTA — встроенные материалы проверки (DSS) и обновляемый цикл архивирования с метками времени документа. Они работают через тот же высокоуровневый интерфейс, но только когда установлены оба пакета — Pro и Enterprise; если любой из них отсутствует, вызов завершается отказом по принципу fail-closed, а не записывает частичную долгосрочную ревизию.

  • PAdES — PDF Advanced Electronic Signatures (усовершенствованные электронные подписи PDF); серия ETSI EN 319 142, профилирующая подписи CMS для PDF.
  • Базовый уровень — один из B-B, B-T, B-LT, B-LTA; определённый кумулятивный набор обязательных элементов подписи.
  • B-B — базовая подпись с обязательными подписанными атрибутами.
  • B-TB-B плюс доверенная метка времени над значением подписи.
  • B-LTB-T плюс встроенные материалы долгосрочной проверки (DSS).
  • B-LTAB-LT плюс обновляемая метка времени документа для архивной проверки.
  • DSS — Document Security Store (хранилище безопасности документа); структура PDF, содержащая встроенные сертификаты и данные об отзыве.
  • TSA — Time-Stamp Authority (удостоверяющий центр меток времени); доверенная служба, выпускающая токены меток времени RFC 3161.