Ir al contenido

Mapeo de los niveles de línea base de PAdES

PAdES es la familia de perfiles de firma electrónica avanzada para PDF, estandarizada en ETSI EN 319 142. Define cuatro niveles de conformidad de línea base —B-B, B-T, B-LT y B-LTA—; cada nivel superior añade material al inferior. Esta página relaciona esos niveles con lo que produce NextPDF y separa la superficie de Core de la de las ediciones Pro y Enterprise. El mapeo se sitúa en el plano del comportamiento: describe lo que emite el motor, no sus clases internas.

El resumen es el siguiente: NextPDF Core produce estructuras de firma alineadas con los niveles B-B y B-T. La ruta de producción de B-LT y B-LTA se incluye en las ediciones Pro y Enterprise. Que una firma producida sea aceptada como conforme a un nivel determinado depende del verificador y de las anclas de confianza con las que esté configurado. Un productor no puede afirmar la conformidad por cuenta del verificador.

Ventana de terminal
composer require nextpdf/core:^3

Una firma digital de PDF es una estructura CMS SignedData almacenada en la entrada Contents del diccionario de firma. El arreglo ByteRange indica los tramos de bytes que cubre el resumen —ISO 32000-2 §12.8.1. El CMS SignerInfo contiene los atributos firmados, incluidos content-type y message-digest —RFC 5652 §5.3. El resumen del mensaje sobre esos atributos se calcula mediante el proceso de §5.4. PAdES reutiliza el modelo de atributos de CAdES y lo incrusta dentro de ese diccionario de firma del PDF.

Los cuatro niveles de línea base son aditivos:

  • B-B incluye la firma base con sus atributos firmados obligatorios.
  • B-T añade un atributo de marca de tiempo de la firma calculado sobre el valor de la firma. Ese atributo acredita que la firma existía en el instante marcado —ETSI PAdES §5.4.3. El token lo emite una autoridad de sellado de tiempo conforme a RFC 3161 —RFC 3161 §2.4.1.
  • B-LT añade material de validación a largo plazo —certificado, datos OCSP y CRL— ubicado en el Document Security Store —ETSI PAdES §6.2.2, ISO 32000-2 §12.8.4.3, y en la ubicación de los datos de validación descrita en ETSI EN 319 142-2 §6.3.
  • B-LTA añade un sello de tiempo de documento de archivo para que la validez se pueda mantener durante periodos prolongados —ETSI PAdES §6.2.2.

Los cuatro niveles son estrictamente aditivos: cada nivel superior conserva todo lo que incluía el nivel inferior y añade exactamente una capa nueva de material. La edición productora que incluye cada paso se muestra en la transición.

+ RFC 3161 sig time-stamp

(Core / Enterprise
+ Document Security Store

(Enterprise only)
+ archive doc time-stamp

(Enterprise only)

B-B

CMS signature + signed attributes

B-T

+ signature time-stamp (over the signature value)

B-LT

+ DSS validation material (cert, OCSP, CRL)

B-LTA

+ archive document time-stamp (over the DSS)

;

not

Pro)

Diagram

El selector de nivel es el enum SignatureLevel, con los casos PAdES_B_B, PAdES_B_T, PAdES_B_LT y PAdES_B_LTA. Sus métodos requiresTimestamp(), requiresDss(), requiresDocumentTimestamp() y isAvailableInEnvironment() indican qué requiere un nivel y si el entorno de ejecución actual puede satisfacerlo. En la distribución Core, isAvailableInEnvironment() devuelve true para B-B y B-T, y false para B-LT y B-LTA. Devuelve false para B-LT y B-LTA porque el productor de validación a largo plazo se resuelve en tiempo de ejecución y no forma parte del paquete de código abierto. El código en producción consume el contrato SignerInterface en lugar de estos tipos internos.

NivelQué añadeCore (nextpdf/core)Pro / Enterprise
B-BFirma base con atributos firmados obligatoriosProduce una estructura alineada; probada contra líneas base de referencia sintéticasMisma superficie
B-TMarca de tiempo de la firma sobre el valor de la firmaProduce una estructura alineada cuando se proporciona un servicio de marca de tiempo conforme a RFC 3161Misma superficie
B-LTDatos de validación en el Document Security StoreCore no incluye el productor; seleccionar B-LT sin el paquete Enterprise falla de forma cerradaProductor incluido
B-LTASello de tiempo de documento de archivoCore no incluye el productor; falla de forma cerrada del mismo modoProductor incluido

«Produce una estructura alineada» significa que el motor emite una firma cuya estructura sigue las cláusulas citadas. Esa estructura se prueba mediante los artefactos tests/Corpus/pades/ y tests/Golden/baselines/ del proyecto. No constituye una afirmación de que un validador externo certifique la salida en ese nivel. Consulta la sección de conformidad.

examples/contracts/signing-quickstart.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Contracts\SignerInterface;
/**
* Sign a byte range with any SignerInterface implementation.
*
* @param SignerInterface $signer A Core or Premium signer.
* @param string $byteRange The PDF byte range to sign.
*
* @return string Hex-encoded CMS SignedData for the PDF /Contents field.
*/
function signByteRange(SignerInterface $signer, string $byteRange): string
{
return $signer->sign($byteRange)->toHex();
}

La función depende del contrato SignerInterface, no de una clase concreta. Tanto un firmante por software de Core (B-B o B-T) como un firmante HSM de Premium cumplen ese contrato. El código que la invoca no cambia cuando cambia la edición.

examples/contracts/signing-level.php
<?php
declare(strict_types=1);
require_once __DIR__ . '/../../vendor/autoload.php';
use NextPDF\Security\Signature\SignatureLevel;
/**
* Resolve the highest baseline level the current runtime can produce.
*
* B-B and B-T are produced by the Core distribution. B-LT and B-LTA
* require the Enterprise long-term-validation package; without it the
* level reports unavailable so callers fail closed rather than emit a
* structure that does not carry the validation material the level names.
*
* @return SignatureLevel The highest level available in this runtime.
*/
function highestAvailableLevel(): SignatureLevel
{
foreach ([
SignatureLevel::PAdES_B_LTA,
SignatureLevel::PAdES_B_LT,
SignatureLevel::PAdES_B_T,
SignatureLevel::PAdES_B_B,
] as $level) {
if ($level->isAvailableInEnvironment()) {
return $level;
}
}
return SignatureLevel::PAdES_B_B;
}

isAvailableInEnvironment() devuelve true para B-B y B-T sin ningún paquete adicional. Devuelve true para B-LT y B-LTA solo cuando está instalado el paquete de validación a largo plazo de Enterprise. Seleccionar un nivel no disponible sin optar por la degradación lanza una excepción tipada de nivel inalcanzable cuyo mensaje nombra el paquete que falta. Por lo tanto, un despliegue mal configurado falla de forma cerrada en lugar de emitir en silencio un nivel inferior al que solicitó el llamante.

  • Una firma estructuralmente B-T no es lo mismo que una firma validada como B-T. La validación se ejecuta en el verificador, con sus anclas de confianza y la vigencia de la información de revocación. El productor no puede afirmar ese resultado.
  • PAdES B-LT y B-LTA requieren el paquete NextPDF Enterprise (nextpdf/enterprise). Cuando no está instalado, el firmante falla de forma cerrada y B-LT/B-LTA no quedan disponibles. La superficie de Core ofrece B-B/B-T a través del contrato público NextPDF\Contracts\SignerInterface, con la validación a largo plazo detrás de LtvManagerInterface. Seleccionar un nivel no disponible en la distribución Core falla de forma cerrada por defecto. La excepción tipada nombra el paquete público que falta, no un tipo interno. La degradación elegante a un nivel inferior es opcional, nunca el comportamiento predeterminado.
  • El resumen del rango de bytes debe excluir el valor de la firma. Un resumen que también cubra los octetos de Contents no podrá verificarse nunca —ISO 32000-2 §12.8.1.
  • La marca de tiempo de la firma en B-T se calcula sobre el valor de la firma, no sobre los bytes del documento. El sello de tiempo de archivo en B-LTA es un sello de tiempo de documento independiente. Los dos no son intercambiables —ETSI PAdES §5.4.3 y §6.2.2.
  • ETSI EN 319 142-1 (la parte de los niveles de línea base) no está en el corpus de evidencia de este proyecto. Las afirmaciones sobre la estructura de niveles que aparecen aquí se anclan a ETSI EN 319 142-2, el documento de perfil pades, ISO 32000-2 §12.8 y RFC 5652 / RFC 3161. Los nombres de nivel y la estructura aditiva se declaran tal como están implementados en v3.x. No se afirma ningún resultado de prueba de conformidad ni atestación de terceros.

El costo del nivel crece con el nivel. B-B es una única operación de firma, de menos de diez milisegundos con una clave por software. B-T añade una ida y vuelta de red a la autoridad de sellado de tiempo. B-LT añade una consulta de revocación por cada certificado de la cadena. B-LTA añade un sello de tiempo de documento adicional. El presupuesto de 1500 ms de reloj cubre una única firma B-T con una TSA remota en una conexión ya establecida. B-LT o B-LTA contra un punto de conexión de revocación lento supera ese presupuesto y debe situarse fuera de la ruta de la solicitud. El perfil de reproducibilidad es structural, no bitwise. Una marca de tiempo incrusta el instante de firma. Por lo tanto, dos ejecuciones difieren en los bytes de la marca de tiempo, aunque la estructura del documento permanece idéntica.

El nivel que declara una firma y el nivel con el que se valida son hechos distintos. Esta página describe únicamente la superficie del productor. La validación a largo plazo depende de que los datos de validación se recopilen en el momento de la firma y de que el verificador confíe posteriormente en las mismas anclas. El productor no puede garantizar ninguna de las dos cosas. La confianza en la marca de tiempo se reduce a la confianza en la autoridad de sellado de tiempo, que el despliegue fija mediante un proveedor inyectable. Esta página está marcada como export_control_class: legal-review-required porque trata sobre perfiles de firma criptográfica. Todas las fuentes normativas se parafrasean y ninguna se reproduce, conforme a las buenas prácticas de citación.

AfirmaciónEstándarCláusulaEvidencia
El valor de la firma se almacena codificado en DER como CMS SignedData o como un TimeStampToken en la entrada Contents del diccionario de firma.ISO 32000-2§12.8.1
El resumen se calcula sobre los tramos de ByteRange y excluye el valor de la firma.ISO 32000-2§12.8.1
El atributo de marca de tiempo de la firma se calcula sobre el valor de la firma (B-T).ETSI PAdES (EN 319 142)§5.4.3
El material de validación a largo plazo se incorpora en el Document Security Store (B-LT).ETSI PAdES (EN 319 142) / ISO 32000-2§6.2.2 / §12.8.4.3,
Los datos de validación se colocan en los diccionarios DSS y VRI.ETSI EN 319 142-2§6.3,
Un sello de tiempo de documento de archivo mantiene la validez durante periodos prolongados (B-LTA).ETSI PAdES (EN 319 142)§6.2.2
SignerInfo contiene los atributos firmados content-type y message-digest.RFC 5652§5.3
El resumen del mensaje se calcula sobre los atributos firmados codificados en DER (proceso de §5.4).RFC 5652§5.4
La marca de tiempo se solicita a una TSA conforme a RFC 3161 y devuelve una estructura TSTInfo.RFC 3161§2.4.1

Todas las cláusulas se parafrasean. NextPDF no reproduce el texto normativo. Consulta los estándares publicados para conocer la redacción autorizada. ETSI EN 319 142-1 no está en el corpus de evidencia. Las afirmaciones estructurales sobre los niveles de línea base se anclan a las fuentes anteriores y se declaran tal como están implementadas en v3.x.

Core produce estructuras de firma B-B y B-T. La ruta de producción de B-LT y B-LTA, la custodia de claves por HSM y PKCS#11, y el perfil de política criptográfica FIPS 140-3 se incluyen en las ediciones Pro y Enterprise. Core resuelve el productor de validación a largo plazo en tiempo de ejecución. Por lo tanto, el motor de código abierto no incorpora ninguna dependencia comercial, y la API SignerInterface no cambia al actualizar.

  • Seguridad / Firma — la superficie de implementación para CMS, marca de tiempo, LTV, cadena de confianza y revocación.
  • Contratos / Firma — la SPI SignerInterface y sus niveles de estabilidad.
  • Seguridad — la superficie de implementación para cifrado y firma.
  • Conformidad — la aplicación de PDF/A y de perfiles asociada al archivado firmado.
  • PAdES · PAdES B-T · DSS · CAdES — términos del glosario.