Ir al contenido

Firma: PAdES B-LT / B-LTA, DSS y marcas de tiempo de documento

NextPDF Enterprise añade el productor de largo plazo sobre la firma CMS de Core: un almacén de seguridad de documento (DSS), información de validación relacionada por firma (VRI) y marcas de tiempo de documento. Estas estructuras llevan una firma de línea base PAdES de B-B a B-LT y luego a B-LTA. Esta página se mantiene en el nivel de comportamiento: explica qué escribe el productor, qué no decide y dónde empieza el límite de Pro.

Ventana de terminal
composer require nextpdf/enterprise

nextpdf/enterprise depende de nextpdf/core y nextpdf/pro. El paquete se resuelve con sus credenciales de licencia de NextPDF en Private Packagist.

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 OCSP y las 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 propio material de validación queda 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 se consigue con 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 forma a largo plazo: entradas DSS y 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. La cadena se recorre 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. El intercambio devuelve un TSTInfo — RFC 3161 §2.4.1 — cuyo genTime es el instante 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 hecho de que una firma producida se verifique lo determinan el verificador, los anclajes de confianza y la política de revocación con los que está configurado. El productor incrusta material; no afirma ningún resultado de confianza. Este límite se repite más abajo en los puntos relevantes.

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 del productor se muestra a continuación.

RFC 3161 TSAOCSP or CRL responderEnterprise LtvManagerCore CMS SignerRFC 3161 TSAOCSP or CRL responderEnterprise LtvManagerCore CMS SignerB-LT — embed validation materialalt[OCSP available][OCSP unavailable]B-LTA — anchor the DSS in timeCallersign byteRange1CMS SignedData — B-B or B-T2OCSP request per chain certificate3OCSP response — good, revoked or unknown4CRL fetch — fallback5CRL6Write DSS — certs + OCSP + CRL7TimeStampReq over file incl. DSS8TimeStampToken9Verify token, embed /DocTimeStamp10Long-term PDF — B-LT or B-LTA11Caller
Diagram

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.

TipoClaseFunciónEstabilidadDesde
SignerInterfaceinterfaz (NextPDF\Contracts)Contrato de firma de Core del que dependen los llamantesestable1.0.0
SignatureLevelenum (NextPDF\Security\Signature)Selector de nivel PAdES: B-B, B-T, B-LT, B-LTAestable1.0.0
LtvManagerInterfaceinterfaz (NextPDF\Contracts)Contrato del productor de validación a largo plazo resuelto en tiempo de ejecuciónestable1.0.0
TsaClientInterfaceinterfazCliente TSA de RFC 3161 que el productor invoca para las marcas de tiempo de documentoestable1.0.0

SignatureLevel::requiresDss() devuelve verdadero para B-LT y B-LTA; SignatureLevel::requiresDocumentTimestamp() devuelve 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.

examples/contracts/pades-blt-quickstart.php
<?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;
}

El nivel se pasa en la configuración de firma. 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.

examples/contracts/pades-blt-production.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\LtvManagerInterface;
use NextPDF\Contracts\SignerInterface;
use NextPDF\Exception\NextPdfException;
use Psr\Log\LoggerInterface;
final readonly class LongTermSigner
{
public function __construct(
private SignerInterface $signer,
private LtvManagerInterface $ltv,
private LoggerInterface $logger,
) {}
/**
* Sign, then embed the DSS and the B-LTA document timestamp.
*
* The order matters: the DSS is written first, then the document
* timestamp is taken over the document state that already includes it.
*
* @param string $byteRange The PDF byte range to sign.
*
* @throws NextPdfException When revocation material is missing under the
* fail-closed enforcement default, or when no TSA
* is configured for B-LTA.
*/
public function sign(string $byteRange): string
{
try {
$contents = $this->signer->sign($byteRange)->toHex();
// The orchestrator drives DSS collection and the document
// timestamp through the resolved LtvManagerInterface; revocation
// freshness and TSA reachability are operational inputs.
return $contents;
} catch (NextPdfException $e) {
$this->logger->error('long-term 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.

  • 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 (solo de advertencia) es opcional.
  • B-LTA necesita una TSA. Una marca de tiempo de documento implica un ciclo de ida y vuelta de RFC 3161. Si no hay 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). Con una política de red estrictamente sin conexión, no se realiza ninguna obtención de OCSP/CRL ni ninguna solicitud a la TSA; solo se 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.
  • VRI es opcional. La VRI por firma no se escribe de manera predeterminada. Algunos validadores muestran mejor el estado a largo plazo con VRI presente; debe activarse cuando un verificador de destino la necesite.

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é evita 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.

  • 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/nextUpdate y 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; ejecutarlo según el calendario es responsabilidad del llamante.
  • Valor predeterminado de fallo cerrado. El valor predeterminado de aplicación estricta de la revocación existe para que no se haga una declaración a largo plazo sin el material que la respalda.
  • Consulte la sección de modelo de amenazas de Enterprise y Archivo: DSS, VRI, salud de LTV.

Al obtener OCSP y CRL se 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, el material de revocación debe recopilarse previamente y la firma debe ejecutarse 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 proporciona el llamante.

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, se deben mantener los registros de diagnóstico en un nivel de detalle no destinado a producción para los flujos de firma y depurar 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.

El perfil de política criptográfica 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.

ActivoAdversarioRiesgoMitigación
Material de revocación del DSSAceptación de material obsoletoUn verificador confía en datos de revocación caducadosLos 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-LTACompromiso de la TSA o TSA no alcanzableNingún anclaje de tiempo fiableTSA elegida por el llamante; B-LTA falla de forma cerrada cuando no hay ninguna TSA configurada
Declaración a largo plazoMaterial ausente sin avisoUn PDF «a largo plazo» sin datos de revocaciónEl valor predeterminado de aplicación de fallo cerrado genera un error en lugar de una advertencia
Verificación de firmaConfianza del verificador mal configuradaValidez aparente que el verificador no debería afirmarEl productor declara que solo incrusta material; la decisión de confianza es del verificador
DeclaraciónEstándarCláusulareference_id
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.

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. Esto coincide con la tabla de niveles publicada en la página de seguridad de Pro: B-B y B-T los producen Core y Pro, y B-LT y B-LTA solo Enterprise. El productor B-T es estructural — compone el signature-time-stamp de RFC 3161 según la evidencia citada de RFC 3161 / RFC 5652 / ETSI EN 319 122-1; no es una declaración de conformidad certificada ETSI EN 319 142-1 ni cualificada eIDAS. 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 PAdESAñadeEdición del productor
B-BFirma CMS con atributos firmadosCore, Pro, Enterprise
B-Tsignature-time-stamp RFC 3161 sobre el valor de la firma (estructural; no cualificada eIDAS)Core, Pro, Enterprise
B-LTAlmacén de seguridad de documento con material de validaciónSolo Enterprise (nextpdf/enterprise)
B-LTAMarcas de tiempo de documento para la validez de archivadoSolo Enterprise (nextpdf/enterprise)

Esta es la matriz canónica nivel→nivel de licencia: B-B es la línea base producida por 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.

El productor de largo plazo forma parte de la edición Enterprise (license_feature_flag: enterprise). Se resuelve en tiempo de ejecución a través del contrato de Core; la API pública no cambia al actualizar de Pro a Enterprise.

  • 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/enterprise falla 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.

Esta página pública describe únicamente el comportamiento del productor observable externamente. No contiene rutas internas de espacio de nombres, ni nombres de clases o traits internos, ni nombres de archivos de runbook, ni prefijos de tickets internos. Los tipos concretos del productor de largo plazo de Enterprise se mencionan únicamente a través del contrato público de Core (LtvManagerInterface, SignatureLevel). Los detalles internos del ensamblaje del DSS y del bucle de archivado están en la referencia profunda protegida por NDA.

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).

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 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.

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í.

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 garantizar 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.

Esta página está marcada como export_control_class: legal-review-required. Trata sobre firma criptográfica y validación a largo plazo. Se requiere aprobación legal antes de establecer el indicador publish. 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 propios asesores de cumplimiento y legales sobre sus obligaciones regulatorias.