Enterprise edición
Firma: PAdES B-LT / B-LTA, DSS, marcas de tiempo de documento
De un vistazo
Sección titulada «De un vistazo»NextPDF Enterprise añade un productor de largo plazo sobre la firma Cryptographic Message Syntax (CMS) de Core: un almacén de seguridad de documento (DSS), información relacionada con la validación por firma (VRI) y marcas de tiempo de documento. Estas estructuras elevan una firma de línea base PDF Advanced Electronic Signatures (PAdES) de B-B a B-LT y luego a B-LTA. Esta página describe el comportamiento. Indica qué escribe el productor, qué no decide y dónde empieza el límite de Pro.
Disponibilidad y licencia
Sección titulada «Disponibilidad y licencia»Esta capacidad se incluye en NextPDF Enterprise (nextpdf/enterprise) y se activa con un sobre de licencia de nivel Enterprise. Una implementación sin ese derecho no carga las clases de la capacidad. Compare las ediciones y obtenga una licencia.
NextPDF Core produce los niveles de línea base PAdES B-B y B-T: Core incluye el firmante CMS por software y la ruta de marca de tiempo RFC 3161, por lo que una firma B-T (con marca de tiempo) es una capacidad de Core y no requiere Enterprise. NextPDF Pro también produce B-B y B-T: Pro compone la pila RFC 3161 de Core para añadir el atributo no firmado signature-time-stamp sobre el valor de la firma (PadesBtTimestamper, verificado con fixtures). Los niveles B-LT y B-LTA —el productor de DSS, VRI y marca de tiempo de documento— son una capacidad de Enterprise y no los producen Core ni Pro. En una implementación solo con Pro, solicitar B-LT o B-LTA falla de forma cerrada con un mensaje que nombra el componente de Enterprise ausente, porque SignatureLevel::isAvailableInEnvironment() devuelve falso cuando el productor de largo plazo de Enterprise está ausente.
| Nivel PAdES | Añade | Edición del productor |
|---|---|---|
| B-B | Firma CMS con atributos firmados | Core, Pro, Enterprise |
| B-T | signature-time-stamp RFC 3161 sobre el valor de la firma (estructural; no cualificada eIDAS) | Core, Pro, Enterprise |
| B-LT | Almacén de seguridad de documento con material de validación | Solo Enterprise (nextpdf/enterprise) |
| B-LTA | Marcas de tiempo de documento para la validez de archivado | Solo Enterprise (nextpdf/enterprise) |
Esta es la matriz canónica nivel→nivel de licencia: B-B es la línea base que producen todas las ediciones; B-T (con marca de tiempo) también lo producen Core y Pro (Pro compone la pila RFC 3161 de Core); B-LT y B-LTA son exclusivos de Enterprise. El productor B-T es estructural; no es una declaración de conformidad certificada ETSI EN 319 142-1 ni cualificada eIDAS. Esto coincide con la tabla de niveles publicada en la página de seguridad de Pro.
Instalación
Sección titulada «Instalación»composer require nextpdf/enterprisenextpdf/enterprise depende de nextpdf/core y nextpdf/pro. El paquete se resuelve con sus credenciales de licencia de NextPDF en Private Packagist.
Descripción conceptual
Sección titulada «Descripción conceptual»Una firma de línea base PAdES tiene cuatro niveles. Cada nivel añade material al anterior. B-B es una firma CMS con atributos firmados. B-T añade una marca de tiempo RFC 3161 de confianza sobre el valor de la firma. B-LT añade un DSS que transporta los certificados, las respuestas Online Certificate Status Protocol (OCSP) y las listas de revocación de certificados (CRL) que un verificador necesita después de que caduque el certificado de firma. B-LTA añade una marca de tiempo de documento sobre todo el estado del documento, incluido el DSS, de modo que el material de validación permanece anclado en el tiempo.
Core construye el CMS SignedData y lo almacena codificado en DER en la entrada Contents del diccionario de firma — ISO 32000-2 §12.8.1. La validación a largo plazo utiliza dos tipos de diccionario: un almacén de seguridad de documento y un diccionario de marca de tiempo de documento — ISO 32000-2 §12.8. El productor de Enterprise escribe el DSS que contiene el material de certificados, OCSP y CRL — ISO 32000-2 §12.8.4.3 — y, para B-LTA, el diccionario de marca de tiempo de documento — ISO 32000-2 §12.8.5. ETSI EN 319 142-2 describe la misma estructura a largo plazo: entradas DSS más marcas de tiempo de documento para firmas a largo plazo — §5.5 — con soporte del controlador de firma — §6.3.3.3.
El productor recopila material de revocación para cada certificado de la cadena. Primero consulta a un respondedor OCSP; una respuesta OCSP informa good, revoked o unknown — RFC 6960 §2.2 — y los campos thisUpdate y nextUpdate acotan la frescura de ese estado — RFC 6960 §4.2. Si OCSP no está disponible, recurre a una CRL. El productor recorre la cadena desde el firmante hacia un anclaje de confianza siguiendo las entradas de validación de ruta — RFC 5280 §6.1.
La marca de tiempo de documento B-LTA es un intercambio RFC 3161 con una autoridad de marcado de tiempo (TSA). La solicitud devuelve un valor Time Stamp Information (TSTInfo) — RFC 3161 §2.4.1 — cuyo genTime es el instante en tiempo universal coordinado (UTC) en que se creó el token — RFC 3161 §2.4.2. El token se incrusta en un diccionario /DocTimeStamp con /SubFilter /ETSI.RFC3161 que cubre todo el archivo.
El verificador decide si una firma producida se verifica, usando los anclajes de confianza y la política de revocación que tiene configurados. El productor incrusta material; no afirma ningún resultado de confianza. Este límite se repite más abajo donde resulta relevante.
El orden es determinante: el DSS debe escribirse antes que la marca de tiempo de documento B-LTA, porque la marca de tiempo debe cubrir el estado del documento que ya contiene el material de validación. El flujo siguiente muestra esa secuencia del productor.
Por qué funciona así
Sección titulada «Por qué funciona así»La validez a largo plazo tiene una regla de orden estricta: la marca de tiempo de documento debe cubrir el material de validación. Por eso el DSS se escribe siempre primero, y la marca de tiempo B-LTA se toma sobre el estado del archivo que ya lo incluye. Si se invierte ese orden, la marca de tiempo no protege nada de lo que un verificador lea años después: los certificados, OCSP y CRL quedarían fuera de su cobertura. Por tanto, el productor incrusta material y lo ancla en el tiempo, pero no llega a afirmar un resultado de confianza; esa decisión corresponde al verificador y a sus anclajes de confianza. Fallar de forma cerrada cuando falta material de revocación significa que un documento que declara un nivel a largo plazo nunca se emite sin la evidencia que respalda esa declaración. El resultado es una firma que un tercero puede volver a comprobar mucho después de que caduque el certificado de firma, sin contactar con los respondedores originales.
Contexto de diseño: Validación a largo plazo.
Superficie de la API
Sección titulada «Superficie de la API»El productor de largo plazo de Enterprise se usa a través del contrato de Core. El código de producción depende del contrato, no del tipo de implementación concreto de Enterprise.
| Tipo | Clase | Función | Estabilidad | Desde |
|---|---|---|---|---|
SignerInterface | interfaz (NextPDF\Contracts) | Contrato de firma de Core para los llamantes | estable | 1.0.0 |
SignatureLevel | enum (NextPDF\Security\Signature) | Selector de nivel PAdES: B-B, B-T, B-LT, B-LTA | estable | 1.0.0 |
LtvManagerInterface | interfaz (NextPDF\Contracts) | Contrato del productor de validación a largo plazo resuelto en tiempo de ejecución | estable | 1.0.0 |
TsaClientInterface | interfaz | Cliente TSA de RFC 3161 que el productor invoca para las marcas de tiempo de documento | estable | 1.0.0 |
SignatureLevel::requiresDss() es verdadero para B-LT y B-LTA; SignatureLevel::requiresDocumentTimestamp() es verdadero solo para B-LTA. En Core, SignatureLevel::isAvailableInEnvironment() devuelve falso para B-LT y B-LTA cuando el productor de largo plazo de Enterprise no está instalado; en ese caso, el orquestador de Core falla de forma cerrada. Las clases concretas del productor de Enterprise son internas y no forman parte de la API pública; se debe depender de LtvManagerInterface y del enum.
Ejemplo de código — Inicio rápido
Sección titulada «Ejemplo de código — Inicio rápido»<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/** * Select the PAdES level for a long-term signature. * * B-LT embeds a DSS. B-LTA also adds a document timestamp. * Both require the nextpdf/enterprise long-term producer at runtime. * * @return SignatureLevel The requested PAdES baseline level. */function longTermLevel(): SignatureLevel{ return SignatureLevel::PAdES_B_LTA;}La configuración de firma transporta el nivel. El orquestador de Core resuelve el productor de largo plazo a través de LtvManagerInterface en tiempo de ejecución, de modo que el código de la aplicación no hace referencia al tipo de Enterprise.
Ejemplo de código — Producción
Sección titulada «Ejemplo de código — Producción»<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Core\Document;use NextPDF\Exception\NextPdfException;use NextPDF\Security\Signature\CertificateInfo;use NextPDF\Security\Signature\SignatureLevel;use NextPDF\Security\Timestamp\TsaClient;use Psr\Http\Client\ClientInterface;use Psr\Log\LoggerInterface;
/** * Produce a PAdES B-LTA signature through the high-level Document seam, which * drives the Core PadesOrchestrator and the Enterprise long-term producer in the * load-bearing order: sign, write the DSS (LtvManager::enableLtv), then add the * /DocTimeStamp over the state that already includes it (::addDocumentTimestamp). */final readonly class LongTermSigner{ public function __construct( private TsaClient $tsa, // RFC 3161 TSA client (required for B-T and above). private ClientInterface $http, // PSR-18 client that fetches OCSP/CRL for the DSS. private LoggerInterface $logger, ) {}
/** * Sign at B-LTA and return the long-term-signed PDF bytes; requesting B-LTA * without the nextpdf/enterprise producer fails closed rather than downgrading. * * @throws NextPdfException Fail-closed: enterprise producer absent * (SignatureLevelUnreachableException), no HTTP client * (SignatureException), or missing material (LtvException). */ public function sign(CertificateInfo $certInfo): string { try { $document = Document::createStandalone(); $document->addPage(); $document->setSignature($certInfo, SignatureLevel::PAdES_B_LTA, $this->tsa, $this->http);
return $document->getPdfData(); } catch (NextPdfException $e) { $this->logger->error('long-term B-LTA signing failed', ['reason' => $e->getMessage()]); throw $e; } }}El DSS debe escribirse antes que la marca de tiempo de documento. La marca de tiempo B-LTA cubre todo el archivo, incluido el DSS, lo que ancla en el tiempo el propio material de validación.
Casos límite y trampas
Sección titulada «Casos límite y trampas»- La falta de material de revocación falla de forma cerrada de manera predeterminada. Cuando no se configura ningún modo de aplicación, el productor trata una respuesta OCSP ausente y una CRL ausente para cualquier certificado que no sea raíz como un error, no como una advertencia. Esto evita que se escriba un documento que declara un nivel a largo plazo sin material de revocación en el DSS. El flujo de trabajo permisivo es opcional y solo de advertencia.
- B-LTA necesita una TSA. Una marca de tiempo de documento es un ciclo de ida y vuelta de RFC 3161. Sin ningún cliente TSA configurado, el paso B-LTA genera un error en lugar de producir silenciosamente B-LT.
- El orden es determinante. Añada la marca de tiempo de documento solo después de que se haya escrito el DSS. Una marca de tiempo tomada antes del DSS no cubre el material de validación.
- Ejecuciones aisladas (air-gapped). Bajo una política de red estrictamente sin conexión, el productor no realiza ninguna obtención de OCSP/CRL ni ninguna solicitud a la TSA; solo utiliza el material ya incrustado en el DSS. B-LTA, que requiere un token TSA reciente, no es alcanzable en modo estrictamente sin conexión.
- La VRI es opcional. La VRI por firma no se escribe de manera predeterminada. Algunos validadores muestran mejor el estado a largo plazo cuando la VRI está presente; actívela cuando un verificador de destino la necesite.
Rendimiento
Sección titulada «Rendimiento»El costo del ensamblaje del DSS escala con la longitud de la cadena y el número de respuestas de revocación obtenidas. Cada obtención de OCSP o CRL es un ciclo de ida y vuelta de red; el material recopilado previamente o en caché elimina esos ciclos. Una ejecución B-LTA añade un ciclo de ida y vuelta a la TSA para la marca de tiempo de documento. El presupuesto de tiempo de pared de 1500 ms cubre una única firma a largo plazo con conexiones OCSP/CRL y TSA en caliente; los respondedores fríos o lentos dominan el tiempo de pared. El perfil de reproducibilidad es structural: las marcas de tiempo incrustan los instantes de firma y de estampado, por lo que dos ejecuciones difieren en esos bytes mientras que la estructura del documento es idéntica.
Notas de seguridad
Sección titulada «Notas de seguridad»- La confianza es decisión del verificador. El productor incrusta certificados, OCSP y CRL. Que la firma se valide depende del verificador, de sus anclajes de confianza y de su política de frescura de revocación. NextPDF no incluye ninguna lista de confianza integrada.
- La frescura de la revocación está acotada en el tiempo. Las ventanas de validez de OCSP
thisUpdate/nextUpdatey de las CRL acotan cuánto tiempo sigue siendo útil el material incrustado. El bucle de archivado vuelve a estampar antes de que caduque el certificado de marca de tiempo; usted es responsable de ejecutarlo según el calendario. - Valor predeterminado de fallo cerrado. El valor predeterminado de aplicación estricta de la revocación evita que se haga una declaración a largo plazo sin el material que la respalda.
- Consulte la sección del modelo de amenazas de Enterprise y Archivo: DSS, VRI, salud de LTV.
Residencia de datos y mitigaciones de PII
Sección titulada «Residencia de datos y mitigaciones de PII»La obtención de OCSP y CRL contacta con los respondedores indicados en cada certificado; esos puntos de conexión y la TSA ven los metadatos de la solicitud. En una implementación con restricciones de residencia de datos, recopile previamente el material de revocación y ejecute bajo la política estrictamente sin conexión, de modo que no se contacte con ningún respondedor ni con ninguna TSA en el momento de la firma. Los certificados transportan la identidad del sujeto. El productor incrusta los certificados necesarios para la validación y no añade identidad más allá de la cadena; no elimina los campos de sujeto de un certificado que usted suministra.
Telemetría segura y depuración de registros
Sección titulada «Telemetría segura y depuración de registros»Los diagnósticos del productor registran el nivel, la posición en la cadena y la condición de material ausente. No registran claves privadas ni cuerpos de certificado completos. Al conectar un registrador PSR-3, mantenga los registros de diagnóstico en un nivel de detalle no destinado a producción para los flujos de firma y depure las URL de los respondedores si estas revelan infraestructura interna. Todo byte OCSP/CRL incrustado debe tratarse como contenido del documento, no como contenido de registro.
Comportamiento en modo FIPS
Sección titulada «Comportamiento en modo FIPS»El perfil de política criptográfica Federal Information Processing Standards (FIPS) 140-3 es una capacidad de Enterprise documentada con el módulo de seguridad. El productor de largo plazo no añade ninguna primitiva criptográfica propia más allá del resumen SHA-256 utilizado para la marca de tiempo de documento y el intercambio RFC 3161; la primitiva de firma es la del firmante de Core. Cuando el perfil FIPS está activo, se producen las mismas estructuras de DSS y de marca de tiempo de documento; la restricción se aplica a los algoritmos de firma y de resumen subyacentes, no al diseño del DSS.
Modelo de amenazas
Sección titulada «Modelo de amenazas»| Activo | Adversario | Riesgo | Mitigación |
|---|---|---|---|
| Material de revocación del DSS | Aceptación de material obsoleto | Un verificador confía en datos de revocación caducados | Los campos de frescura de OCSP/CRL acotan la validez; el bucle de archivado vuelve a estampar antes de la caducidad |
| Marca de tiempo de documento B-LTA | Compromiso de la TSA o TSA no alcanzable | Ningún anclaje de tiempo fiable | TSA elegida por el llamante; B-LTA falla de forma cerrada cuando no hay ninguna TSA configurada |
| Declaración a largo plazo | Material ausente sin aviso | Un PDF «a largo plazo» sin datos de revocación | El valor predeterminado de aplicación de fallo cerrado genera un error en lugar de una advertencia |
| Verificación de firma | Confianza del verificador mal configurada | Validez aparente que el verificador no debería afirmar | El productor declara que solo incrusta material; la decisión de confianza es del verificador |
Conformidad
Sección titulada «Conformidad»| Declaración | Estándar | Cláusula |
|---|---|---|
El valor de la firma (o el token de marca de tiempo) se almacena codificado en DER en /Contents. | ISO 32000-2 | §12.8.1 |
| La validación a largo plazo utiliza un DSS y un diccionario de marca de tiempo de documento. | ISO 32000-2 | §12.8 |
| El DSS contiene certificados, respuestas OCSP y CRL. | ISO 32000-2 | §12.8.4.3 |
| La marca de tiempo de documento utiliza un diccionario de marca de tiempo de documento. | ISO 32000-2 | §12.8.5 |
| Las entradas DSS y las marcas de tiempo de documento dan soporte a firmas a largo plazo. | ETSI EN 319 142-2 | §5.5 |
| El controlador de firma da soporte a entradas DSS y marcas de tiempo de documento. | ETSI EN 319 142-2 | §6.3.3.3 |
| Un token de marca de tiempo transporta un genTime UTC que es el instante en que se creó. | RFC 3161 | §2.4.2 |
| OCSP informa good, revoked o unknown, acotado por thisUpdate/nextUpdate. | RFC 6960 | §2.2, §4.2 |
Todas las cláusulas están parafraseadas. NextPDF no reproduce el texto normativo; consulte los estándares publicados para conocer la redacción autorizada. NextPDF no hace ninguna declaración de certificación PAdES. Las estructuras descritas aquí están alineadas con los niveles B-LT y B-LTA tal como se definen en ETSI EN 319 142; no se reclama ningún resultado de prueba de conformidad ni atestación de terceros. La parte de niveles de línea base de ETSI EN 319 142-1 queda fuera del conjunto de evidencia citado, por lo que esta página indica la estructura producida y el límite Pro/Enterprise, no un nivel de conformidad certificado. La evidencia ETSI citada es EN 319 142-2; los anclajes ISO y RFC sostienen las declaraciones a largo plazo y de marca de tiempo, tal como ocurre en la referencia de firma de Core.
Contrato de comportamiento
Sección titulada «Contrato de comportamiento»- Tanto Core como Pro producen B-B y B-T (B-T añade el signature-time-stamp de RFC 3161; Pro compone la pila RFC 3161 de Core). B-LT y B-LTA son un límite de Enterprise; solicitarlos sin
nextpdf/enterprisefalla de forma cerrada con un error nombrado. - El productor escribe un DSS (B-LT) y una marca de tiempo de documento sobre el DSS (B-LTA). Incrusta material de validación; no afirma un resultado de verificación de confianza.
- El valor predeterminado de aplicación de revocación con fallo cerrado genera un error cuando falta material de revocación para un certificado que no es raíz, a menos que el llamante opte por el flujo de trabajo permisivo.
- B-LTA requiere una TSA configurada; sin ninguna, el paso B-LTA genera un error en lugar de degradarse a B-LT.
Límite de publicación
Sección titulada «Límite de publicación»Esta página documenta únicamente el comportamiento observable externamente y la superficie de API pública admitida. Las rutas internas de espacio de nombres, las clases auxiliares, las tablas de mecanismos, los nombres de archivos de runbook y los prefijos de tickets quedan fuera del alcance.
Alternativa de Core
Sección titulada «Alternativa de Core»En una implementación solo con Core, el firmante por software produce PAdES B-B y B-T con una clave local o una clave suministrada a través del contrato de estrategia de firma de Core. Core incluye la ruta de marca de tiempo RFC 3161, por lo que B-T es alcanzable sin ningún paquete premium. Core no tiene productor de DSS, VRI ni de marca de tiempo de documento; solicitar B-LT o B-LTA falla de forma cerrada con un error nombrado. Consulte Seguridad / Firma (Core).
Alternativa de Pro
Sección titulada «Alternativa de Pro»En una implementación solo con Pro, la ruta de firma admitida es la línea base B-B de Pro y el nivel B-T de Pro (Pro compone la pila RFC 3161 de Core para añadir el atributo no firmado signature-time-stamp), además de sus estrategias de firma remota y de servicio de gestión de claves (KMS) en la nube. Pro no produce ningún DSS, VRI ni marca de tiempo de documento. Una configuración que solicita B-LT o B-LTA en una implementación solo con Pro falla de forma cerrada con un mensaje que nombra el componente de Enterprise ausente. Consulte Seguridad de Pro para la superficie de firma de Pro.
Nota sobre el límite de Enterprise
Sección titulada «Nota sobre el límite de Enterprise»El productor de DSS, VRI y marca de tiempo de documento se describe únicamente a nivel de comportamiento. La lógica interna que ordena el ensamblaje del DSS, los detalles internos de generación de claves de la VRI por firma y los detalles internos de programación del bucle de archivado quedan fuera del alcance de la superficie pública y no se reproducen aquí.
Límite de implementación
Sección titulada «Límite de implementación»NextPDF Enterprise incrusta material de validación; se integra con respondedores OCSP/CRL suministrados por el llamante y con una TSA de RFC 3161. No opera, aloja ni garantiza por sí mismo la disponibilidad de esos respondedores ni de la TSA. La validez a largo plazo depende de los respondedores, de la TSA, del calendario del bucle de archivado y del operador — no de NextPDF Enterprise por sí solo. El operador es responsable de seleccionar la TSA y de su accesibilidad, del acceso a los respondedores de revocación o al material recopilado previamente, de la política de red y de ejecutar el bucle de archivado antes de que caduque cada certificado de marca de tiempo.
Límite de cumplimiento legal
Sección titulada «Límite de cumplimiento legal»Trata sobre firma criptográfica y validación a largo plazo. La alineación con las estructuras B-LT y B-LTA definidas en ETSI EN 319 142 es una declaración estructural, no una opinión legal ni una certificación. NextPDF no hace ninguna declaración de certificación PAdES. Consulte a sus asesores de cumplimiento y legales sobre sus obligaciones regulatorias.
Véase también
Sección titulada «Véase también»- Seguridad / Firma (Core) — CMS, RFC 3161, validación de ruta RFC 5280, OCSP/CRL.
- Seguridad de Pro — la línea base B-B y el límite de Enterprise.
- Archivo: DSS, VRI, salud de LTV — archivado a largo plazo y salud de LTV.
- Verificación de firma — el lado de verificación: verificación criptográfica de CMS / marca de tiempo, TSA-en-genTime y validación de la cadena de archivado.
- Firma (referencia de Enterprise) — la referencia de API de DSS, VRI y marca de tiempo de documento para esta capacidad.
- Mapeo de línea base PAdES — B-B, B-T, B-LT, B-LTA entre ediciones.
- PAdES · DSS · VRI · LTV — términos del glosario.