Ir al contenido
getnextpdf.com

Perfiles de línea base de PAdES

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

PAdES define cuatro niveles de línea base — B-B, B-T, B-LT, B-LTA — que se apoyan unos en otros. Cada uno añade un tipo específico de evidencia. Esta página explica la progresión y ayuda a elegir el nivel más bajo que aún cumple la obligación, en lugar del nivel más alto que se conoce de nombre.

Se recurre a «B-LTA» porque suena a lo más exhaustivo, o a «B-B» porque supone el menor esfuerzo. Ambas son conjeturas. El nivel que se necesita lo decide una pregunta, no una preferencia: ¿durante cuánto tiempo debe seguir siendo verificable esta firma, y por parte de quién? Si se elige un nivel demasiado bajo, una firma que era válida el día de la firma pasa a ser inverificable cuando caduca un certificado. Si se elige demasiado alto, se asume una autoridad de sellado de tiempo y una infraestructura de material de validación que no hacían falta, además de una obligación de archivo que hay que seguir alimentando. El equipo que después no puede cambiar el nivel paga el coste del nivel equivocado.

  • Los cuatro niveles son acumulativos. Cada uno es el anterior más un añadido.
  • B-B — la firma con sus atributos firmados obligatorios. Demuestra quién y qué.
  • B-TB-B más una marca de tiempo de confianza sobre la firma. Demuestra cuándo, con independencia del reloj del firmante.
  • B-LTB-T más material de validación incrustado (certificados y datos de revocación). El documento lleva su propia prueba de que el certificado era válido en el momento de la firma.
  • B-LTAB-LT más una marca de tiempo de documento, repetida a lo largo del tiempo. Mantiene todo el conjunto verificable a lo largo de décadas y de cambios de algoritmo.
  • Elegir el nivel según el tiempo de vida de la obligación, no según lo que parece más seguro.

NextPDF modela el nivel como una elección explícita y ordenada, y se niega a fingir. Se solicita un nivel. El motor produce exactamente ese nivel o falla con un error accionable. No firma discretamente en un nivel inferior para dejar que un registro de cumplimiento declare uno superior. Este diseño existe precisamente para impedir la degradación silenciosa de una solicitud de B-LTA a B-T cuando faltaba la infraestructura. Los requisitos de cada nivel se codifican como predicados: si se requiere una marca de tiempo, si se requiere material de validación incrustado, si se requiere una marca de tiempo de documento. El motor recorre esos predicados y, o bien los satisface, o bien se detiene.

La progresión que sigue es la misma que impone el motor y que define la norma.

NivelQué añade sobre el nivel anteriorLa pregunta que respondeQué necesita del despliegue
B-BAtributos firmados: content-type, message-digest, signing-time, signing-certificate-v2¿Quién firmó y qué bytes exactos?Una clave de firma y un certificado
B-TUna marca de tiempo de confianza sobre el valor de la firma¿Cuándo se firmó, de forma demostrable?Una autoridad de sellado de tiempo (TSA)
B-LTCertificados incrustados + datos de revocación (un DSS)¿Era válido el certificado al firmar, de forma demostrable más adelante?TSA + acceso a los datos de revocación en el momento de firmar
B-LTAUna marca de tiempo de documento, renovable a lo largo del tiempo¿Seguirá siendo verificable dentro de décadas?TSA + un proceso de archivo que vuelve a aplicar marcas de tiempo

El salto que más importa es el de B-T a B-LT. B-T demuestra cuándo. B-LT hace que el documento sea autónomo en cuanto a la confianza: deja de depender de que una autoridad de certificación siga siendo accesible y responda preguntas años después.

Los niveles también se comprueban, no solo se producen. En el lado de la verificación, la marca de tiempo B-T se vincula de forma estricta: NextPDF exige que la huella del mensaje (message imprint) del token coincida con el resumen del valor de la firma del firmante y falla de forma cerrada cuando no es así, de modo que una marca de tiempo puede elevar una firma a B-T únicamente cuando cubre de forma demostrable esa firma y no bytes distintos.

  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)
Las normas que respaldan la progresión de PAdES: ISO 32000-2 define cómo se integran las firmas y el material de validación en el PDF; ETSI EN 319 142-1 define los niveles de línea base; RFC 3161 define la marca de tiempo que introduce B-T; RFC 6960 define las evidencias de revocación que incrusta B-LT.

La API refleja la progresión: se nombra el nivel y el motor lo trata como un contrato.

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

Si se solicita B-LTA y el despliegue no puede aportar lo que B-LTA necesita, el comportamiento por defecto es fallar e indicar el nivel más alto que podría haber alcanzado, no devolver discretamente un archivo B-T etiquetado como B-LTA.

La trampa es «B-LTA es sencillamente el mejor, hay que elegirlo siempre». B-LTA no es mejor en abstracto; es más, y ese «más» conlleva obligaciones. Requiere una autoridad de sellado de tiempo, material de revocación reunido en el momento de la firma y un proceso de archivo continuo que vuelve a marcar el tiempo del documento antes de que se debiliten sus algoritmos de protección o los certificados de sus marcas de tiempo. Un archivo B-LTA al que nadie vuelve a aplicar marcas de tiempo no es a prueba de futuro: es un archivo B-LT con ceremonia adicional. A la inversa, B-B para un contrato que debe sobrevivir una década no es «ligero»; es una firma que no superará la validación el día en que caduque el certificado. El nivel correcto es el que exige la obligación, ni más alto ni más bajo.

NextPDF produce el nivel PAdES solicitado; no aporta las partes de las que ese nivel depende. Una autoridad de sellado de tiempo, la cadena de certificados, los anclajes de confianza y la conectividad para obtener los datos de revocación en el momento de la firma son responsabilidades del despliegue. El motor implementa la estructura e impone el contrato del nivel; no puede hacer que una TSA sea fiable ni que un certificado sea válido. La estructura producida lleva los elementos que ese nivel exige, verificados frente a las propias pruebas del motor y frente a las cláusulas citadas. No es una certificación de conformidad de un tercero, y esta página no afirma efecto jurídico según eIDAS, que depende del certificado, del firmante y de la jurisdicción. Si el momento de la firma goza de confianza independiente es algo que se trata en Marcas de tiempo y tiempo de confianza; cómo la evidencia a largo plazo mantiene viva una firma se trata en Validación a largo plazo.

Algunas fronteras para fijar las expectativas con precisión:

  • B-LT y B-LTA emiten la estructura de validación a largo plazo, no un veredicto de conformidad. Lo que el motor escribe es un diccionario Document Security Store más una revisión de marca de tiempo de documento: un diccionario de firma con Type = DocTimeStamp según Spec: ISO 32000-2, §12.8. Esa estructura no se presenta aquí como sometida a pruebas de conformidad de perfil; las comprobaciones de perfil de ETSI EN 319 142-1 están sujetas a un control de publicación en la vía de CI de Pro y Enterprise, de modo que esta página no reclama conformidad con ETSI EN 319 142-1 para el archivo producido.
  • Los documentos cifrados fallan de forma cerrada para B-LT y B-LTA. Una solicitud de un nivel a largo plazo sobre un documento cifrado se detiene con un error accionable en lugar de escribir una revisión parcial a largo plazo.

Disponibilidad de cada nivel por plan — los cuatro se alcanzan a través de la misma conexión de alto nivel, setSignature($cert, SignatureLevel::PAdES_B_LTA, $tsaClient)->save():

Nivel de línea base PAdES — edition availability
EditionAvailability
Core

PAdES B-B y B-T — la línea base de atributos firmados, más una marca de tiempo de confianza sobre el valor de la firma impulsada por un TsaClient. Ambos niveles se incluyen en la conexión de Core.

Pro

Añade flujos de trabajo de firma sobre la línea base de Core —firma remota, con KMS en la nube y secuencial—, no un nuevo nivel.

Enterprise

Añade PAdES B-LT y B-LTA — material de validación incrustado (DSS) y el bucle renovable de archivo con marca de tiempo de documento. Se ejecutan a través de la misma conexión de alto nivel, pero solo cuando están instalados ambos paquetes, Pro y Enterprise; si falta cualquiera de ellos, la llamada falla de forma cerrada en lugar de escribir una revisión parcial a largo plazo.

  • PAdES — PDF Advanced Electronic Signatures; la serie ETSI EN 319 142 que perfila las firmas CMS para PDF.
  • Nivel de línea base — uno de B-B, B-T, B-LT, B-LTA; un conjunto definido y acumulativo de elementos de firma requeridos.
  • B-B — la firma de línea base con sus atributos firmados obligatorios.
  • B-TB-B más una marca de tiempo de confianza sobre el valor de la firma.
  • B-LTB-T más material de validación a largo plazo incrustado (un DSS).
  • B-LTAB-LT más una marca de tiempo de documento renovable para la validez de archivo.
  • DSS — Document Security Store; la estructura del PDF que contiene los certificados y los datos de revocación incrustados.
  • TSA — Time-Stamp Authority (autoridad de sellado de tiempo); un servicio de confianza que emite tokens de marca de tiempo RFC 3161.